> For the complete documentation index, see [llms.txt](https://docs.bcbi.brown.edu/codiac-for-health/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bcbi.brown.edu/codiac-for-health/computing/julia/numbers-and-math.md).

# Numbers and Math

This page provides syntax for using numbers and mathematic operations in Julia. Each section includes an example to demonstrate the described syntax and operations.

## Types of Numbers <a href="#types_of_numbers" id="types_of_numbers"></a>

* Integer (positive and negative counting number) - e.g., -3, -2, -1, 0, 1, 2, and 3
  * Signed: `Int8, Int16, Int32, Int64, and Int128`
  * Unsigned: `UInt8, UInt16, UInt32, UInt64, and UInt128`
  * Boolean: `Bool` (0 = False and 1 = True)
* Float (real or floating point numbers) - e.g., `-2.14, 0.0, and 3.777`
  * `Float16, Float32, Float64`

Use `typeof()` function to determine type

Input:

```julia
# Define two variables x and y
x = 100
y = 3.14

# Print out the variable types for each
println(typeof(x))
println(typeof(y))
```

Output:

```julia
Int64
Float64
```

## Arithmetic Operators <a href="#arithmetic_operators" id="arithmetic_operators"></a>

| Operator            | Example |
| ------------------- | ------- |
| Addition            | x + y   |
| Subtraction         | x - y   |
| Multiplication      | x \* y  |
| Division            | x / y   |
| Power (Exponent)    | x ^ y   |
| Remainder (Modulo)  | x % y   |
| Negation (for Bool) | !x      |

Input:

```julia
# Demonstrates different math operations
using Printf

n1 = 7    # First number
n2 = 3    # Second number
 
# Output results of different math operations
println("$n1 + $n2 = $(n1 + n2)")             # Addition 
println("$n1 - $n2 = $(n1 - n2)")             # Subtraction 
println("$n1 * $n2 = $(n1 * n2)")             # Multiplication 
println("$n1 / $n2 = $(n1 / n2)")             # Division 
@printf("%d / %d = %.2f\n", n1, n2, n1 / n2)  # Print to 2 decimal places
println("$n1 ^ $n2 = $(n1 ^ n2)")             # Power/Exponent
println("$n1 % $n2 = $(n1 % n2)")             # Modulo/Remainder
```

Output:

```julia
7 + 3 = 10
7 - 3 = 4
7 * 3 = 21
7 / 3 = 2.3333333333333335
7 / 3 = 2.33
7 ^ 3 = 343
7 % 3 = 1
```

## Comparison Operators and Functions <a href="#comparison_operators_and_functions" id="comparison_operators_and_functions"></a>

Input:

| Operator                 | Example                   |
| ------------------------ | ------------------------- |
| Equality                 | x == y or isequal(x, y)   |
| Inequality               | x != y or !isequal (x, y) |
| Less than                | x < y                     |
| Less than or equal to    | x <= y                    |
| Greater than             | x > y                     |
| Greater than or equal to | x >= y                    |

```julia
# compare.jl                                                                                                 
# Demonstrate comparison operators                                                                               

# Assign values to variables using parallel assignment                                                           
c1, c2, c3, c4 = 25, 50, 75, 50
println("c1 = $(c1), c2 = $(c2), c3 = $(c3), c4 = $(c4)")

# Output results of different comparison operations                                                             
 
# Testing equality                                                                                               
println("  c1 = c3 is $(c1 == c3)")
println("  c2 = c4 is $(isequal(c2, c4))")

# Changing values using abbreviated assignment operators                                                        
c1 *= 3    	# Shorthand for c1 = c1 * 3                                                                       
c4 += 1    	# Shorthand for c4 = c4 + 1                                                                       

println("c1 = $(c1), c2 = $(c2), c3 = $(c3), c4 = $(c4)")
 
# Testing less than and greater than
println("  c1 < c2 is $(c1 < c2)")
println("  c4 <= c2 is $(c4 <= c2)")
println("  c1 > c2 is $(c1 > c2)")
println("  c3 >= c2 is $(c3 >= c2)")
```

Output:

```julia
c1 = 25, c2 = 50, c3 = 75, c4 = 50
  c1 = c3 is false
  c2 = c4 is true
c1 = 75, c2 = 50, c3 = 75, c4 = 51
  c1 < c2 is false
  c4 <= c2 is false
  c1 > c2 is true
  c3 >= c2 is true
```

## Exercises

* Create a Health Calculator Using Julia - *<mark style="color:purple;">Forthcoming!</mark>*

## Resources

* Julia Documentation: [Integers and Floating Point Numbers](https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/)
* Julia Documentation: [Mathematical Operations and Elementary Functions](https://docs.julialang.org/en/v1/manual/mathematical-operations/)
* Julia Documentation: [Numbers](https://docs.julialang.org/en/v1/base/numbers/)
* Julia Documentation: [Mathematics](https://docs.julialang.org/en/v1/base/math/)
* Think Julia: [Chapter 1 - The Way of the Program](https://benlauwens.github.io/ThinkJulia.jl/latest/book.html#chap01)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bcbi.brown.edu/codiac-for-health/computing/julia/numbers-and-math.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
