Library
math
A library of math functions.
This library is an interface to the standard C math library, providing all of
its functions inside the math table.
Properties 7#
enumber | The value of Euler's number, e. |
hugenumber | Returns a value larger than or equal to any other numerical value (about 21024). |
nannumber | A NaN value, as defined by the IEEE 754 standard. |
phinumber | The value of the golden ratio. |
pinumber | The value of pi. |
sqrt2number | The value of the square root of 2. |
taunumber | The value of tau, which is defined as 2 * math.pi. |
e: number#
The value of Euler's number, e.
huge: number#
Returns a value larger than or equal to any other numerical value (about 21024). Dividing a positive number by zero yields this same value.
nan: number#
A NaN value, as defined by the IEEE 754 standard. Comparing directly to
math.nan will always return false; use math.isnan() instead.
phi: number#
The value of the golden ratio.
pi: number#
The value of pi.
sqrt2: number#
The value of the square root of 2.
tau: number#
The value of tau, which is defined as 2 * math.pi.
Functions 37#
| abs | Returns the absolute value of x. |
| acos | Returns the arc cosine of x. |
| asin | Returns the arc sine of x. |
| atan | Returns the arc tangent of x in radians. |
| atan2 | Returns the arc tangent of y/x (in radians) while using the signs of
both parameters to find the quadrant of the result. |
| ceil | Returns the smallest integer larger than or equal to x. |
| clamp | Returns a number between min and max, inclusive. |
| cos | Returns the cosine of x, assumed to be in radians. |
| cosh | Returns the hyperbolic cosine of x. |
| deg | Returns the angle x (given in radians) in degrees. |
| exp | Returns the value e^x. |
| floor | Returns the largest integer smaller than or equal to x. |
| fmod | Returns the remainder of the division of x by y that rounds the
quotient towards zero. |
| frexp | Returns m and e such that x = m*2^e. |
| isfinite | Returns true if x is a finite number. |
| isinf | Returns true if x is positive or negative infinity and false otherwise. |
| isnan | Returns true if x is not a number (NaN) and false otherwise. |
| ldexp | Returns x*2^e (e should be an integer). |
| lerp | Returns the linear interpolation between a and b. |
| log | Returns the logarithm of x using the given base. |
| log10 | Returns the base-10 logarithm of x. |
| map | Returns the value of x mapped from one range to another. |
| max | Returns the maximum value among the numbers passed to the function. |
| min | Returns the minimum value among the numbers passed to the function. |
| modf | Returns two numbers: the integral part of x and the fractional part of
x. |
| noise | Returns a Perlin noise value. |
| pow | Returns x^y. |
| rad | Returns the angle x (given in degrees) in radians. |
| random | Returns a random number within the range provided. |
| randomseed | Sets x as the seed for the pseudo-random generator. |
| round | Returns the integer with the smallest difference between it and the given number. |
| sign | Returns -1 if x is less than 0, 0 if x equals 0, or 1 if x
is greater than 0. |
| sin | Returns the sine of x, assumed to be in radians. |
| sinh | Returns the hyperbolic sine of x. |
| sqrt | Returns the square root of x. |
| tan | Returns the tangent of x, assumed to be in radians. |
| tanh | Returns the hyperbolic tangent of x. |
abs(x: number): number#
Returns the absolute value of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to return the absolute value of. |
Returns
number— The absolute value ofx.
acos(x: number): number#
Returns the arc cosine of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The cosine value, between -1 and 1. |
Returns
number— The angle in radians whose cosine isx, in the range[0, pi].
asin(x: number): number#
Returns the arc sine of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The sine value, between -1 and 1. |
Returns
number— The angle in radians whose sine isx, in the range[-pi/2, pi/2].
atan(x: number): number#
Returns the arc tangent of x in radians.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The value to compute the arc tangent of. |
Returns
number— The arc tangent ofxin radians, in the range[-pi/2, pi/2].
atan2(y: number, x: number): number#
Returns the arc tangent of y/x (in radians) while using the signs of
both parameters to find the quadrant of the result. It also handles
correctly the case of x being zero.
| Name | Type | Default | Description |
|---|---|---|---|
y | number | The Y coordinate. | |
x | number | The X coordinate. |
Returns
number— The arc tangent ofy/xin radians, in the range[-pi, pi].
ceil(x: number): int#
Returns the smallest integer larger than or equal to x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to round up. |
Returns
int— The smallest integer greater than or equal tox.
clamp(x: number, min: number, max: number): number#
Returns a number between min and max, inclusive.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to clamp. | |
min | number | The minimum value of the range. | |
max | number | The maximum value of the range; must be greater than or equal to
min. |
Returns
number—xconstrained to the range[min,max].
cos(x: number): number#
Returns the cosine of x, assumed to be in radians.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The angle in radians. |
Returns
number— The cosine ofx.
cosh(x: number): number#
Returns the hyperbolic cosine of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the hyperbolic cosine of. |
Returns
number— The hyperbolic cosine ofx.
deg(x: number): number#
Returns the angle x (given in radians) in degrees.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The angle in radians to convert. |
Returns
number— The anglexconverted to degrees.
exp(x: number): number#
Returns the value e^x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The exponent. |
Returns
number— The value oferaised to the powerx.
floor(x: number): int#
Returns the largest integer smaller than or equal to x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to round down. |
Returns
int— The largest integer less than or equal tox.
fmod(x: number, y: number): number#
Returns the remainder of the division of x by y that rounds the
quotient towards zero.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The dividend. | |
y | number | The divisor. |
Returns
number— The remainder of the division ofxbyy.
frexp(x: number): number, int#
Returns m and e such that x = m*2^e. e is an integer and
the absolute value of m is in the range of 0.5 to 1 (inclusive of
0.5 but exclusive of 1), or zero when x is zero.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to decompose into mantissa and exponent. |
Returns
number— The mantissam, a value whose absolute value is in[0.5, 1)or zero.int— The exponentesuch thatx = m * 2^e.
isfinite(x: number): boolean#
Returns true if x is a finite number, meaning it is neither NaN nor
positive or negative infinity (±math.huge).
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to test. |
Returns
boolean— True ifxis neither NaN nor infinity, false otherwise.
isinf(x: number): boolean#
Returns true if x is positive or negative infinity
(±math.huge) and false otherwise.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to test. |
Returns
boolean— True ifxis positive or negative infinity, false otherwise.
isnan(x: number): boolean#
Returns true if x is not a number (NaN) and false otherwise.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to test. |
Returns
boolean— True ifxis NaN, false otherwise.
ldexp(x: number, e: int): number#
Returns x*2^e (e should be an integer).
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The mantissa value. | |
e | int | The integer exponent. |
Returns
number— The valuex * 2^e.
lerp(a: number, b: number, t: number): number#
Returns the linear interpolation between a and b based on the factor
t.
This function uses the formula a+(b-a)*t. t is typically between
0 and 1 but values outside this range are acceptable.
| Name | Type | Default | Description |
|---|---|---|---|
a | number | The starting value. | |
b | number | The ending value. | |
t | number | The interpolation factor, typically between 0 and 1. |
Returns
number— The interpolated value betweenaandb.
log(x: number, base: number = 2.7182818): number#
Returns the logarithm of x using the given base, or the mathematical
constant e if no base is provided (natural logarithm).
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the logarithm of. | |
base | number | 2.7182818 | The base of the logarithm, the constant e by default. |
Returns
number— The logarithm ofxin the given base.
log10(x: number): number#
Returns the base-10 logarithm of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the base-10 logarithm of. |
Returns
number— The base-10 logarithm ofx.
map(x: number, inmin: number, inmax: number, outmin: number, outmax: number): number#
Returns a value that represents x mapped linearly from the input range
(inmin to inmax) to the output range (outmin to outmax). This is
achieved by determining the relative position of x within the input
range and applying that ratio to the output range.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to be mapped. | |
inmin | number | The lower bound of the input range. | |
inmax | number | The upper bound of the input range. | |
outmin | number | The lower bound of the output range. | |
outmax | number | The upper bound of the output range. |
Returns
number— The value ofxmapped to the output range.
max(x: number, ...: number): number#
Returns the maximum value among the numbers passed to the function.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The first number to compare. | |
... | number | Additional numbers to compare. |
Returns
number— The largest value among all arguments.
min(x: number, ...: number): number#
Returns the minimum value among the numbers passed to the function.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The first number to compare. | |
... | number | Additional numbers to compare. |
Returns
number— The smallest value among all arguments.
modf(x: number): number, number#
Returns two numbers: the integral part of x and the fractional part of
x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to split into integral and fractional parts. |
Returns
number— The integral part ofx.number— The fractional part ofx.
noise(x: number, y: number = 0, z: number = 0): number#
Returns a Perlin noise value. The returned value is most often between the
range of -1 to 1 (inclusive) but sometimes may be outside that range;
if the interval is critical to you, use Library.math.clamp(noise, -1, 1)
on the output.
If you leave arguments out, they will be interpreted as zero, so
Library.math.noise(1.158) is equivalent to
Library.math.noise(1.158, 0, 0) and Library.math.noise(1.158, 5.723)
is equivalent to Library.math.noise(1.158, 5.723, 0).
Note that this function uses a Perlin noise algorithm to assign fixed
values to coordinates. For example, Library.math.noise(1.158, 5.723)
will always return 0.48397532105446 and Library.math.noise(1.158, 6)
will always return 0.15315161645412.
If x, y, and z are all integers, the return value will be 0. For
fractional values of x, y, and z, the return value will gradually
fluctuate between -0.5 and 0.5. For coordinates that are close to each
other, the return values will also be close to each other.
The noise repeats with a period of 256 on each axis, so
Library.math.noise(x, y, z) and Library.math.noise(x + 256, y, z)
return identical values.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The X coordinate of the sample point. | |
y | number | 0 | The Y coordinate of the sample point. |
z | number | 0 | The Z coordinate of the sample point. |
Returns
number— A Perlin noise value, typically between-1and1.
pow(x: number, y: number): number#
Returns x^y (you can also use the expression x^y to compute this
value).
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The base value. | |
y | number | The exponent value. |
Returns
number— The valuexraised to the powery.
rad(x: number): number#
Returns the angle x (given in degrees) in radians.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The angle in degrees to convert. |
Returns
number— The anglexconverted to radians.
random(m: number = 0, n: number = 1): number#
When called without arguments, returns a uniform pseudo-random real number
in the range of 0 to 1 (inclusive of 0 but exclusive of 1).
When called with an integer number m, returns a uniform pseudo-random
integer in the range of 1 to m, inclusive.
When called with two integer numbers m and n, returns a uniform
pseudo-random integer in the range of m to n, inclusive.
Internally, this uses a 32-bit PCG (Permuted Congruential Generator) which achieves excellent statistical performance and makes its output hard to predict.
| Name | Type | Default | Description |
|---|---|---|---|
m | number | 0 | When used alone, the upper bound of the integer range (lower bound is
1). When used with n, the lower bound. |
n | number | 1 | The upper bound of the integer range. |
Returns
number— A pseudo-random number within the specified range.
randomseed(x: number): ()#
Sets x as the seed for the pseudo-random generator: equal seeds produce
equal sequences of numbers.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The seed value for the pseudo-random number generator. |
Returns
()
round(x: number): number#
Returns the integer with the smallest difference between it and the given
number. For example, the value 5.8 returns 6.
For values like 0.5 that are equidistant to two integers, the value with
the greater difference between it and zero is chosen. In other words, the
function "rounds away from zero" such that 0.5 rounds to 1 and -0.5
rounds to -1.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The value to be rounded. |
Returns
number— The nearest integer tox, rounding away from zero for midpoints.
sign(x: number): int#
Returns -1 if x is less than 0, 0 if x equals 0, or 1 if x
is greater than 0.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to determine the sign of. |
Returns
int—-1ifxis negative,0ifxis zero, or1ifxis positive.
sin(x: number): number#
Returns the sine of x, assumed to be in radians.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The angle in radians. |
Returns
number— The sine ofx.
sinh(x: number): number#
Returns the hyperbolic sine of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the hyperbolic sine of. |
Returns
number— The hyperbolic sine ofx.
sqrt(x: number): number#
Returns the square root of x. You can also use the expression x^0.5
to compute this value.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the square root of. |
Returns
number— The square root ofx.
tan(x: number): number#
Returns the tangent of x, assumed to be in radians.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The angle in radians. |
Returns
number— The tangent ofx.
tanh(x: number): number#
Returns the hyperbolic tangent of x.
| Name | Type | Default | Description |
|---|---|---|---|
x | number | The number to compute the hyperbolic tangent of. |
Returns
number— The hyperbolic tangent ofx.