Numbers

The built-in numeric types are integers and floats, which are equivalent to Wrapping<i32> and f32 respectively.

Floats are "contagious". When an arithmetic function receives at least one float argument, the return value is usually a float, even when its other arguments are integers.

## Arithmetic

+

-

Subtraction or negation.

*

Multiplication.

/

Division or reciprocation.

%

Remainder.

div-euclid

Euclidean division.

rem-euclid

Euclidean remainder.

abs

Absolute value.

sign

Sign.

## Predicates

even?

Returns #t if its argument is even.

odd?

Returns #t if its argument is odd.

nat-int?

Returns #t if its argument is a natural integer (>= 0).

pos-int?

Returns #t if its argument is a positive integer (> 0).

neg-int?

Returns #t if its argument is a negative integer (< 0).

nan?

Returns #t if its argument is a NaN.

inf?

Returns #t if its argument is infinite.

## Comparisons

==

Numeric equality test.

<

Numeric less-than test.

<=

Numeric less-than-or-equal test.

>

Numeric greater-than test.

>=

Numeric greater-than-or-equal test.

ord

Numeric or lexicographic ordering.

min

Minimum.

max

Maximum.

clamp

Clamps a value to a numeric range.

## Mathematics

round

Round-to-nearest.

floor

Round down.

ceil

Round up.

sqrt

Square root.

cbrt

Cube root.

pow

Exponentiation.

log

Logarithm.

flo-sign

Floating-point sign bit.

trunc

Returns the integer part of a float, as a float.

fract

Returns the fractional part of a float.

sin

cos

tan

asin

acos

atan

## Bit Manipulation

bitand

Bitwise AND.

bitor

Bitwise inclusive OR.

bitxor

Bitwise exclusive OR.

bitnot

Bitwise NOT.

bitshl

Left shift.

bitshr

Logical right shift.

bitsar

Arithmetic right shift.

## Randomness

rand

Generates a random number.

chance?

Returns #t or #f in the given ratio.

rand-pick

Randomly selects one of its arguments.

rand-weighted

Randomly selects one item from a group, with unequal probability.

rand-reseed

Restarts the random number generator from a fixed seed.

## Miscellaneous

smoothstep

Smoothly interpolates between 0.0 and 1.0.

seek

Moves closer to a target value.

antiseek

Moves away from a target value.