maths
import "maths" as maths
The full implementation, from
stdlib/maths/init.ar:
let abs(num) = do
if (num<0) return -num
return num
let int(num) = do
if (num<0) return -((-num)//1)
return num//1
let floor(num) = do
let i = int(num)
if (num < 0 && num != i) do
return i - 1
return i
let ceil(num) = do
let i = int(num)
if (num > 0 && num != i) do
return i + 1
return i
let round(num, precision=1) = do
num = num/precision
if (num >= 0) do
return floor(num + 0.5)*precision
else do
return ceil(num - 0.5)*precision
let max(*nums) = do
let biggest = null
for (num in nums) do
if (biggest == null || num > biggest) do
biggest = num
return biggest
let min(*nums) = do
let smallest = null
for (num in nums) do
if (smallest == null || num < smallest) do
smallest = num
return smallest
Reference
| Function | Description |
|---|---|
maths.abs(num) |
absolute value |
maths.int(num) |
truncate towards zero |
maths.floor(num) |
round down |
maths.ceil(num) |
round up |
maths.round(num, precision=1) |
round to the nearest multiple of precision |
maths.max(*nums) |
largest of any number of arguments |
maths.min(*nums) |
smallest of any number of arguments |
term.log(maths.abs(-5)) # 5
term.log(maths.floor(1.7)) # 1
term.log(maths.ceil(1.2)) # 2
term.log(maths.round(1.25, 0.5))
term.log(maths.max(3, 7, 2)) # 7
term.log(maths.min(3, 7, 2)) # 2
Note maths.max/maths.min take a variadic list of arguments (*nums), not an array —
see Functions: variadic arguments.