* Update and fix JS docs This could really use some automation, atleast for API reference There are TypeScript definitions and typedocs, we don't need to be monkeys copying and reformatting this to API reference by hand * Fix bugged character * JS: Fix Number.toString() with decimals * Fix * Forgot this one * docs: mention per-view child format * Added @portasynthinca3 to docs' codeowners * Updated CODEOWNERS --------- Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com> Co-authored-by: hedger <hedger@nanode.su> Co-authored-by: hedger <hedger@users.noreply.github.com>
7.3 KiB
Math module
The module contains mathematical methods and constants. Call the require
function to load the module before first using its methods:
let math = require("math");
Constants
PI
The number π = 3.14159265358979323846264338327950288.
E
The number e (Euler's number) = 2.71828182845904523536028747135266250.
EPSILON
The smallest number that satisfies the condition: 1.0 + EPSILON != 1.0. EPSILON = 2.2204460492503131e-16.
Methods
abs()
Return the absolute value of a number.
Parameters
- x: A number
Returns
The absolute value of x
. If x
is negative (including -0), returns -x
. Otherwise, returns x
. The result is therefore always a positive number or 0.
Example
math.abs(-5); // 5
acos()
Return the inverse cosine (in radians) of a number.
Parameters
- x: A number between -1 and 1, inclusive, representing the angle's cosine value
Returns
The inverse cosine (angle in radians between 0 and π, inclusive) of x
. If x
is less than -1 or greater than 1, returns NaN
.
Example
math.acos(-1); // 3.141592653589793
acosh()
Return the inverse hyperbolic cosine of a number.
Parameters
- x: A number greater than or equal to 1
Returns
The inverse hyperbolic cosine of x
.
Example
math.acosh(1); // 0
asin()
Return the inverse sine (in radians) of a number.
Parameters
- x: A number between -1 and 1, inclusive, representing the angle's sine value
Returns
The inverse sine (angle in radians between -𝜋/2 and 𝜋/2, inclusive) of x
.
Example
math.asin(0.5); // 0.5235987755982989
asinh()
Return the inverse hyperbolic sine of a number.
Parameters
- x: A number
Returns
The inverse hyperbolic sine of x
.
Example
math.asinh(1); // 0.881373587019543
atan()
Return the inverse tangent (in radians) of a number.
Parameters
- x: A number
Returns
The inverse tangent (angle in radians between -𝜋/2 and 𝜋/2, inclusive) of x
.
Example
math.atan(1); // 0.7853981633974483
atan2()
Return the angle in the plane (in radians) between the positive x-axis and the ray from (0, 0) to the point (x, y), for math.atan2(y, x).
Parameters
- y: The y coordinate of the point
- x: The x coordinate of the point
Returns
The angle in radians (between -π and π, inclusive) between the positive x-axis and the ray from (0, 0) to the point (x, y).
Example
math.atan2(90, 15); // 1.4056476493802699
atanh()
The method returns the inverse hyperbolic tangent of a number.
Parameters
- x: A number between -1 and 1, inclusive
Returns
The inverse hyperbolic tangent of x
.
Example
math.atanh(0.5); // 0.5493061443340548
cbrt()
Return the cube root of a number.
Parameters
- x: A number
Returns
The cube root of x
.
Example
math.cbrt(2); // 1.2599210498948732
ceil()
Round up and return the smallest integer greater than or equal to a given number.
Parameters
- x: A number
Returns
The smallest integer greater than or equal to x
. It's the same value as -math.floor(-x)
.
Example
math.ceil(-7.004); // -7
math.ceil(7.004); // 8
clz32()
Return the number of leading zero bits in the 32-bit binary representation of a number.
Parameters
- x: A number
Returns
The number of leading zero bits in the 32-bit binary representation of x
.
Example
math.clz32(1); // 31
math.clz32(1000); // 22
cos()
Return the cosine of a number in radians.
Parameters
- x: A number representing an angle in radians
Returns
The cosine of x
, between -1 and 1, inclusive.
Example
math.cos(math.PI); // -1
exp()
Return e raised to the power of a number.
Parameters
- x: A number
Returns
A nonnegative number representing e^x
, where e
is the base of the natural logarithm.
Example
math.exp(0); // 1
math.exp(1); // 2.718281828459045
floor()
Round down and return the largest integer less than or equal to a given number.
Parameters
- x: A number
Returns
The largest integer smaller than or equal to x
. It's the same value as -math.ceil(-x)
.
Example
math.floor(-45.95); // -46
math.floor(-45.05); // -46
math.floor(-0); // -0
math.floor(0); // 0
math.floor(45.05); // 45
math.floor(45.95); // 45
log()
Return the natural logarithm of x.
Parameters
- x: A number
Returns
The natural logarithm of x
, as in ln(x)
where e
is the base of the natural logarithm.
Example
math.log(1); // 0
math.log(3); // 1.0986122886681098
isEqual()
Return true if the difference between numbers a
and b
is less than the specified tolerance
.
Parameters
- a: A number a
- b: A number b
- tolerance: How much difference is allowed between the numbers to be considered equal
Returns
True if the difference between numbers a
and b
is less than the specified parameter e
. Otherwise, false.
Example
math.isEqual(1.4, 1.6, 0.2); // false
math.isEqual(3.556, 3.555, 0.01); // true
max()
Return the largest of two numbers given as input parameters.
Parameters
- a: A number a
- b: A number b
Returns
The largest of the given numbers.
Example
math.max(10, 20); // 20
math.max(-10, -20); // -10
min()
Return the smallest of two numbers given as input parameters.
Parameters
- a: A number a
- b: A number b
Returns
The smallest of the given numbers.
Example
math.min(10, 20); // 10
math.min(-10, -20); // -20
pow()
Return the value of a base raised to a power.
Parameters
- base: The base number
- exponent: The exponent number
Returns
A number representing base taken to the power of exponent.
Example
math.pow(7, 2); // 49
math.pow(7, 3); // 343
math.pow(2, 10); // 1024
random()
Return a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range.
Returns
A floating-point, pseudo-random number between 0 (inclusive) and 1 (exclusive).
Example
let num = math.random();
sign()
Return 1 or -1, indicating the sign of the number passed as argument.
Parameters
- x: A number
Returns
-1 if the number is less than 0, and 1 otherwise.
Example
math.sign(3); // 1
math.sign(0); // 1
math.sign(-3); // -1
sin()
Return the sine of a number in radians.
Parameters
- x: A number representing an angle in radians
Returns
The sine of x
, between -1 and 1, inclusive.
Example
math.sin(math.PI / 2); // 1
sqrt()
Return the square root of a number.
Parameters
- x: A number greater than or equal to 0
Returns
The square root of x
, a nonnegative number. If x
< 0, script will fail with an error.
Example
math.sqrt(25); // 5
trunc()
Return the integer part of a number by removing any fractional digits.
Parameters
- x: A number
Returns
The integer part of x
.
Example
math.trunc(-1.123); // -1
math.trunc(0.123); // 0
math.trunc(13.37); // 13
math.trunc(42.84); // 42