Numeric Functions
Version 0.4.0

Numeric Operators

The table below shows the available mathematical operators for numeric types.

Operator Description Example Result
+ addition 2 + 3 5
- subtraction 2 - 3 -1
* multiplication 2 * 3 6
/ division 4 / 2 2
% modulo (remainder) 5 % 4 1
** exponent 3 ** 4 81
^ exponent (alias for **) 3 ^ 4 81
& bitwise AND 91 & 15 11
| bitwise OR 32 | 3 35
<< bitwise shift left 1 << 4 16
>> bitwise shift right 8 >> 2 2
! factorial of x. Computes the product of the current integer and all integers below it 4! 24

The modulo, bitwise, and factorial operators work only on integral data types, whereas the others are available for all numeric data types.

Numeric Functions

The table below shows the available mathematical functions.

Function Description Example Result
abs(x) absolute value abs(-17.4) 17.4
acos(x) computes the arccosine of x acos(0.5) 1.0471975511965976
asin(x) computes the arcsine of x asin(0.5) 0.5235987755982989
atan(x) computes the arctangent of x atan(0.5) 0.4636476090008061
atan2(x, y) computes the arctangent (x, y) atan2(0.5, 0.5) 0.7853981633974483
bit_count(x) returns the number of bits that are set bit_count(31) 5
cbrt(x) returns the cube root of the number cbrt(8) 2
ceil(x) rounds the number up ceil(17.4) 18
ceiling(x) rounds the number up. Alias of ceil. ceiling(17.4) 18
chr(x) returns a character which is corresponding the the ASCII code value or Unicode code point chr(65) A
cos(x) computes the cosine of x cos(90) -0.4480736161291701
cot(x) computes the cotangent of x cot(0.5) 1.830487721712452
degrees(x) converts radians to degrees degrees(pi()) 180
even(x) round to next even number by rounding away from zero. even(2.9) 4
factorial(x) See ! operator. Computes the product of the current integer and all integers below it factorial(4) 24
floor(x) rounds the number down floor(17.4) 17
gamma(x) interpolation of (x-1) factorial (so decimal inputs are allowed) gamma(5.5) 52.34277778455352
greatest(x1, x2, ...) selects the largest value greatest(3, 2, 4, 4) 4
isfinite(x) Returns true if the floating point value is finite, false otherwise isfinite(5.5) true
isinf(x) Returns true if the floating point value is infinite, false otherwise isinf(Infinity) true
isnan(x) Returns true if the floating point value is not a number, false otherwise isnan(NaN) true
least(x1, x2, ...) selects the smallest value least(3, 2, 4, 4) 2
lgamma(x) computes the log of the gamma function. lgamma(2) 0
ln(x) computes the natural logarithm of x ln(2) 0.693
log(x) computes the 10-log of x log(100) 2
log2(x) computes the 2-log of x log2(8) 3
log10(x) alias of log. computes the 10-log of x log10(1000) 3
nextafter(x, y) return the next floating point value after x in the direction of y nextafter(1::float, 2::float) 1.0000001
pi() returns the value of pi pi() 3.141592653589793
pow(x, y) computes x to the power of y pow(2, 3) 8
power(x, y) Alias of pow. computes x to the power of y power(2, 3) 8
radians(x) converts degrees to radians radians(90) 1.5707963267948966
random() returns a random number between 0 and 1 random() various
round(v numeric, s int) round to s decimal places round(42.4332, 2) 42.43
setseed(x) sets the seed to be used for the random function setseed(0.42)  
sin(x) computes the sin of x sin(90) 0.8939966636005579
sign(x) returns the sign of x as -1, 0 or 1 sign(-349) -1
sqrt(x) returns the square root of the number sqrt(9) 3
xor(x) bitwise XOR xor(17, 5) 20
tan(x) computes the tangent of x tan(90) -1.995200412208242
@ absolute value (parentheses optional if operating on a column) @(-2) 2