# math

### dot() <sub>function</sub>

Compute the dot product between two numeric arrays, returning a scalar. Extra elements are ignored.

### project() <sub>function</sub>

Project one vector onto another, returning a new array of the same dimension.

### rotate() <sub>function</sub>

Rotate a 2D point (or array of length 2) by the given angle (in turns) around an optional pivot.

### midpoint() <sub>function</sub>

Compute the midpoint of two arrays of numbers. Only the first two entries are used if 2D is intended.

### reflect() <sub>function</sub>

Reflect a vector across a plane normal. Both arguments must be numeric arrays.

### distance() <sub>function</sub>

Compute the Euclidean distance between two numeric arrays of matching length.

### direction() <sub>function</sub>

Compute the normalized direction vector from the first array to the second.

### angle() <sub>function</sub>

Given a 2D vector, return its angle from the X-axis in radians or some chosen units.

### norm() <sub>function</sub>

Return a normalized copy of the given numeric array. For 2D/3D/4D or arbitrary length.

### angle_between() <sub>function</sub>

Compute the angle between two vectors (2D/3D/4D).

### lerp() <sub>function</sub>

Linear interpolation between two numbers: lerp(a, b, t).

### gcd() <sub>function</sub>

Compute the greatest common divisor of two integers.

### lcm() <sub>function</sub>

Compute the least common multiple of two integers.

### clamp() <sub>function</sub>

Clamp a number between low and high. clamp(value, low, high).

### angledist() <sub>function</sub>

Compute the signed distance between two angles in 'turn' units, e.g. 0..1 range.

### jitter() <sub>function</sub>

Apply a random +/- percentage noise to a number. Example: jitter(100, 0.05) -> ~95..105.

### mean() <sub>function</sub>

Compute the arithmetic mean of an array of numbers.

### sum() <sub>function</sub>

Sum all elements of an array of numbers.

### sigma() <sub>function</sub>

Compute standard deviation of an array of numbers.

### median() <sub>function</sub>

Compute the median of an array of numbers.

### length() <sub>function</sub>

Return the length of a vector (i.e. sqrt of sum of squares).

### from_to() <sub>function</sub>

Return an array of points from a start to an end, spaced out by a certain distance.

### rand() <sub>function</sub>

Return a random float in [0,1).

### randi() <sub>function</sub>

Return a random 32-bit integer.

### srand() <sub>function</sub>

Seed the random number generator with the given integer, or with current time if none.

### TAU <sub>number</sub>

### deg2rad(deg) <sub>function</sub>

### rad2deg(rad) <sub>function</sub>

### turn2rad(x) <sub>function</sub>

### rad2turn(x) <sub>function</sub>

### turn2deg(x) <sub>function</sub>

### deg2turn(x) <sub>function</sub>
