The math
library provides a number of useful math functions as well as special functions for Base64, and hashing and digests. More are added as needed. To make your own contributions, see the page Pico Engine welcoming your contributions for step-by-step guidance.
abs(<num>)
- absolute value of <num>
n = math:abs(-12); // n = 12 |
ceiling(<num>)
- the smallest integer not less than <num>
n = math:ceiling(2.78); // n = 3 |
floor(<num>) - the largest integer not greater than <num>
n = math:floor(2.78); // n = 2 |
int(<num>)
- the integer value of <num>
n = math:int(2.999); // n = 2 |
Only numbers are valid arguments to int
. To coerce a string, use the Universal operator as().
To obtain a random number, please use a function from the random library
round(<num>)
- convert <num>
to the nearest integer.
n = math:round(2.1); // n = 2 m = math:round(2.7); // m = 3 |
round
can take an optional second argument, the number of decimal places, which extends to negative values in an intuitive way.
math:round(4066.123,2) // 4066.12 math:round(4066.123,0) // 4066 math:round(4066.123,-2) // 4100 |
Given a utf8 string, str, return the base64 string
Decode the given base64 string, str, return the utf8 string
An array of available hash algorithm names (strings)
math:hashAlgorithms.klog() // ["sha256", "sha512", "DSA", ...] |
Return the hash for the str using the given algorithm. Optionally specify the encoding "hex" (default) and "base64"
math:hash("sha256", "hello") // "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" math:hash("sha256", "hello", "base64") // "LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=" |
Return an hmac string of message from the given hash algorithm and secret key. Optionally specify the encoding "hex" (default) and "base64"
math:hmac("sha256", "a secret", "some message") // "86de43245b44531ac38b6a6a691996287d932a8dea03bc69b193b90caf48ff53" math:hmac("sha256", "a secret", "some message", "base64") // "ht5DJFtEUxrDi2pqaRmWKH2TKo3qA7xpsZO5DK9I/1M=" |
Everything after this note is not supported at this time. |
exp(<num>)
- return e (natural logrithm) raised to the <num>th power
n = math:exp(2); |
log(<num>)
- natural log of <num>
n = math:log(2); |
sqrt(<num>)
- square root of <num>
n = math:sqrt(2); |
power(<num1>,<num1>)
- <num1> to the <num2>th power.
n = math:power(2,3); // n = 8 |
See the page (Classic) math from the classic KRE.