Mathematical Functions
The math
module bundles various mathematical and trigonometrical functions.
Functions can be individually imported and directly accessed using the named import syntax:
import { pow, rand } from 'math';
let x = pow(2, 5);
let y = rand();
Alternatively, the module namespace can be imported using a wildcard import statement:
import * as math from 'math';
let x = math.pow(2, 5);
let y = math.rand();
Additionally, the math module namespace may also be imported by invoking the ucode
interpreter with the -lmath
switch.
- Source
Methods
abs(number) → {number}
Returns the absolute value of the given numeric value.
Name | Type | Description |
---|---|---|
number | * | The number to return the absolute value for. |
Returns the absolute value or NaN
if the given argument could not be converted to a number.
- Source
atan2(y, x) → {number}
Calculates the principal value of the arc tangent of y
/x
, using the signs of the two arguments to determine the quadrant of the result.
On success, this function returns the principal value of the arc tangent of y
/x
in radians; the return value is in the range [-pi, pi].
- If
y
is +0 (-0) andx
is less than 0, +pi (-pi) is returned. - If
y
is +0 (-0) andx
is greater than 0, +0 (-0) is returned. - If
y
is less than 0 andx
is +0 or -0, -pi/2 is returned. - If
y
is greater than 0 andx
is +0 or -0, pi/2 is returned. - If either
x
ory
is NaN, a NaN is returned. - If
y
is +0 (-0) andx
is -0, +pi (-pi) is returned. - If
y
is +0 (-0) andx
is +0, +0 (-0) is returned. - If
y
is a finite value greater (less) than 0, andx
is negative infinity, +pi (-pi) is returned. - If
y
is a finite value greater (less) than 0, andx
is positive infinity, +0 (-0) is returned. - If
y
is positive infinity (negative infinity), andx
is finite, pi/2 (-pi/2) is returned. - If
y
is positive infinity (negative infinity) andx
is negative infinity, +3pi/4 (-3pi/4) is returned. - If
y
is positive infinity (negative infinity) andx
is positive infinity, +pi/4 (-pi/4) is returned.
When either x
or y
can't be converted to a numeric value, NaN
is returned.
Name | Type | Description |
---|---|---|
y | * | The |
x | * | The |
- Source
cos(x) → {number}
Calculates the cosine of x
, where x
is given in radians.
Returns the resulting consine value.
Returns NaN
if the x
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | Radians value to calculate cosine for. |
- Source
exp(x) → {number}
Calculates the value of e
(the base of natural logarithms) raised to the power of x
.
On success, returns the exponential value of x
.
- If
x
is positive infinity, positive infinity is returned. - If
x
is negative infinity,+0
is returned. - If the result underflows, a range error occurs, and zero is returned.
- If the result overflows, a range error occurs, and
Infinity
is returned.
Returns NaN
if the x
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | Power to raise |
- Source
isnan(x) → {boolean}
Tests whether x
is a NaN
double.
This functions checks whether the given argument is of type double
with a NaN
(not a number) value.
Returns true
if the value is NaN
, otherwise false.
Note that a value can also be checked for NaN
with the expression x !== x
which only evaluates to true
if x
is NaN
.
Name | Type | Description |
---|---|---|
x | number | The value to test. |
- Source
log(x) → {number}
Calculates the natural logarithm of x
.
On success, returns the natural logarithm of x
.
- If
x
is1
, the result is+0
. - If
x
is positive nfinity, positive infinity is returned. - If
x
is zero, then a pole error occurs, and the function returns negative infinity. - If
x
is negative (including negative infinity), then a domain error occurs, andNaN
is returned.
Returns NaN
if the x
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | Value to calulate natural logarithm of. |
- Source
pow(x, y) → {number}
Calculates the value of x
raised to the power of y
.
On success, returns the value of x
raised to the power of y
.
- If the result overflows, a range error occurs, and the function returns
Infinity
. - If result underflows, and is not representable, a range error occurs, and
0.0
with the appropriate sign is returned. - If
x
is+0
or-0
, andy
is an odd integer less than0
, a pole error occursInfinity
is returned, with the same sign asx
. - If
x
is+0
or-0
, andy
is less than0
and not an odd integer, a pole error occurs andInfinity
is returned. - If
x
is+0
(-0
), andy
is an odd integer greater than0
, the result is+0
(-0
). - If
x
is0
, andy
greater than0
and not an odd integer, the result is+0
. - If
x
is-1
, andy
is positive infinity or negative infinity, the result is1.0
. - If
x
is+1
, the result is1.0
(even ify
isNaN
). - If
y
is0
, the result is1.0
(even ifx
isNaN
). - If
x
is a finite value less than0
, andy
is a finite noninteger, a domain error occurs, andNaN
is returned. - If the absolute value of
x
is less than1
, andy
is negative infinity, the result is positive infinity. - If the absolute value of
x
is greater than1
, andy
is negative infinity, the result is+0
. - If the absolute value of
x
is less than1
, andy
is positive infinity, the result is+0
. - If the absolute value of
x
is greater than1
, andy
is positive infinity, the result is positive infinity. - If
x
is negative infinity, andy
is an odd integer less than0
, the result is-0
. - If
x
is negative infinity, andy
less than0
and not an odd integer, the result is+0
. - If
x
is negative infinity, andy
is an odd integer greater than0
, the result is negative infinity. - If
x
is negative infinity, andy
greater than0
and not an odd integer, the result is positive infinity. - If
x
is positive infinity, andy
less than0
, the result is+0
. - If
x
is positive infinity, andy
greater than0
, the result is positive infinity.
Returns NaN
if either the x
or y
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | The base value. |
y | number | The power value. |
- Source
rand() → {number}
Produces a pseudo-random positive integer.
Returns the calculated pseuo-random value. The value is within the range 0
to RAND_MAX
inclusive where RAND_MAX
is a platform specific value guaranteed to be at least 32767
.
The srand()
function sets its argument as the seed for a new sequence of pseudo-random integers to be returned by rand()
. These sequences are repeatable by calling srand()
with the same seed value.
If no seed value is explicitly set by calling srand()
prior to the first call to rand()
, the math module will automatically seed the PRNG once, using the current time of day in milliseconds as seed value.
- Source
sin(x) → {number}
Calculates the sine of x
, where x
is given in radians.
Returns the resulting sine value.
- When
x
is positive or negative infinity, a domain error occurs andNaN
is returned.
Returns NaN
if the x
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | Radians value to calculate sine for. |
- Source
sqrt(x) → {number}
Calculates the nonnegative square root of x
.
Returns the resulting square root value.
- If
x
is+0
(-0
) then+0
(-0
) is returned. - If
x
is positive infinity, positive infinity is returned. - If
x
is less than-0
, a domain error occurs, andNaN
is returned.
Returns NaN
if the x
value can't be converted to a number.
Name | Type | Description |
---|---|---|
x | number | Value to calculate square root for. |
- Source
srand(seed)
Seeds the pseudo-random number generator.
This functions seeds the PRNG with the given value and thus affects the pseudo-random integer sequence produced by subsequent calls to rand()
.
Setting the same seed value will result in the same pseudo-random numbers produced by rand()
.
Name | Type | Description |
---|---|---|
seed | number | The seed value. |
- Source