# Module math

The math package provides access to some useful math functions and constants.

## Functions

### `define abs(x: Integer): Integer`

Calculates the absolute value of an integer.

### `define acos(x: Double): Double`

Calculates the arc cosine of a double in radians.

### `define asin(x: Double): Double`

Calculates the arc sine of a double in radians.

### `define atan(x: Double): Double`

Calculates the arc tangent of a double in radians.

### `define ceil(x: Double): Double`

Round a double up to the nearest integer.

### `define cos(x: Double): Double`

Calculate the cosine of a double in radians.

### `define cosh(x: Double): Double`

Calculate the hyperbolic cosine of a double in radians.

Calculate e^x.

### `define fabs(x: Double): Double`

Calculates the absolute value of a double.

### `define floor(x: Double): Double`

Round a double down to the nearest integer.

### `define fmod(x: Double, y: Double): Double`

Calculate the remainder of x/y.

### `define is_infinity(x: Double): Boolean`

Check if a number is infinity

### `define is_nan(x: Double): Boolean`

Check if a number is nan since if x = nan, then x == nan is false

### `define ldexp(x: Double, y: Integer): Double`

Calculate x * 2^y.

### `define log(x: Double): Double`

Calculate the log of a double with base e.

### `define log10(x: Double): Double`

Calculate the log of a double with base 10.

### `define modf(x: Double): Tuple[Double, Double]`

Split a double into an integer and a fractional part <[ipart, fpart]>.

Calculate x^y.

### `define sin(x: Double): Double`

Calculate the sine of a double in radians.

### `define sinh(x: Double): Double`

Calculate the hyperbolic sine of a double in radians.

### `define sqrt(x: Double): Double`

Calculate the square root of a double.

### `define tan(x: Double): Double`

Calculate the tangent of a double in radians.

### `define tanh(x: Double): Double`

Calculate the hyperbolic tangent of a double in radians.

### `define to_deg(x: Double): Double`

Convert a double in radians to degrees.

### `define to_rad(x: Double): Double`

Convert a double in degrees to radians.

## Vars

### `var huge: Double`

Value used as an error returned by math functions. +infinity on systems supporting IEEE Std 754-1985.

### `var infinity: Double`

Value representing unsigned infinity

### `var nan: Double`

Value representing not a number

Value of pi