Skip to content
Mathematical Functions

Mathematical Functions

Mathematical Functions

This page summarizes mathematical functions in Machbase.

Function Matrix

FunctionSyntaxReturn typeArgumentsBehavior
PIPI()DOUBLENo argumentsReturns π constant (3.141592653589793).
SQRTSQRT(n)DOUBLE1 numeric argumentReturns the square root of n.
POWERPOWER(base, exponent)DOUBLE2 numeric argumentsReturns base raised to exponent.
POWPOW(base, exponent)DOUBLE2 numeric argumentsAlias of POWER.
LOGLOG(n)DOUBLE1 numeric argumentReturns natural logarithm ln(n).
LOGLOG(base, n)DOUBLE2 numeric argumentsReturns logarithm with base and argument, log_base(n).
LNLN(n)DOUBLE1 numeric argumentReturns natural logarithm ln(n).
EXPEXP(n)DOUBLE1 numeric argumentReturns e^n.
FLOORFLOOR(n)DOUBLE1 numeric argumentRounds down toward negative infinity.
CEILCEIL(n)DOUBLE1 numeric argumentRounds up toward positive infinity.
SINSIN(radian)DOUBLE1 numeric argumentReturns sine (argument is in radians).
COSCOS(radian)DOUBLE1 numeric argumentReturns cosine (argument is in radians).
TANTAN(radian)DOUBLE1 numeric argumentReturns tangent (argument is in radians).
MODMOD(dividend, divisor)DOUBLE2 numeric argumentsReturns remainder using truncation toward zero of quotient.
RANDRAND()DOUBLENo argumentsPseudo random in range [0, 1), stateful per session.
RANDRAND(seed)DOUBLE1 integer argumentDeterministic pseudo random in [0, 1) for a given seed.

Function List

PI()

SELECT PI() FROM m$sys_users WHERE name = 'SYS';

Returns a DOUBLE value. Passing arguments is not allowed.

SQRT()

SELECT SQRT(9)
FROM m$sys_users WHERE name = 'SYS';

FLOOR()

SELECT FLOOR(3.2), FLOOR(-1.2)
FROM m$sys_users WHERE name = 'SYS';

CEIL()

SELECT CEIL(3.2), CEIL(-1.2)
FROM m$sys_users WHERE name = 'SYS';

SIN()

SELECT SIN(PI()/2), SIN(0)
FROM m$sys_users WHERE name = 'SYS';

COS()

SELECT COS(0), COS(PI())
FROM m$sys_users WHERE name = 'SYS';

TAN()

SELECT TAN(0), TAN(PI()/4)
FROM m$sys_users WHERE name = 'SYS';

LN()

SELECT LN(2), LN(10)
FROM m$sys_users WHERE name = 'SYS';

EXP()

SELECT EXP(2), EXP(-1)
FROM m$sys_users WHERE name = 'SYS';

All trigonometric and logarithmic/exponential functions require numeric input and return DOUBLE.

SELECT SQRT(9), LN(2), EXP(2), SIN(PI()/2)
FROM m$sys_users WHERE name = 'SYS';

POWER()

POWER and POW are identical.

SELECT POWER(3, 4), POW(2, -1) FROM m$sys_users WHERE name = 'SYS';

POW()

Alias of POWER().

SELECT POW(2, 3)
FROM m$sys_users WHERE name = 'SYS';

LOG()

  • LOG(n) is equivalent to LN(n).
  • LOG(base, n) uses change-of-base: log_base(n).
SELECT LOG(2, 8), LOG(100) FROM m$sys_users WHERE name = 'SYS';

MOD()

For negative values, quotient truncation uses zero-centered truncation.

SELECT MOD(-10, 3), MOD(10, -3), MOD(-10, -3)
FROM m$sys_users WHERE name = 'SYS';

RAND()

  • RAND(seed) requires an integer seed. Passing the same seed repeatedly returns the same value.
  • RAND() uses internal state, so successive calls in one statement return different values.
  • Output is DOUBLE in [0, 1).
SELECT RAND(), RAND(), RAND(5), RAND(5), RAND() FROM m$sys_users WHERE name = 'SYS';

Error handling

Error kindError codeTriggered when
Argument type mismatchERR-02036 / ERR-02037PI with arguments, or any numeric-function input is non-numeric.
Execution failureERR-02317Domain/range error while calculating value, for example negative input to SQRT, zero in MOD divisor, invalid LOG base, or overflow in EXP/POWER.

When an argument is NULL, the result is NULL.

Last updated on