Math Functions and Operators
Math Operators
Ocient® supports addition, subtraction, multiplication, and division between any two numeric types. Division involving two integral types always results in an integral type.
Decimal Precision
These rules determine the precision p and scale s for the result of a specified expression that involves decimals d1 and d2, with precisions p1 and p2, and scales s1 and s2:
For division, the resulting precision is the minimum necessary to hold the whole number portion of the result. If that portion does not exist because the absolute value of the result is less than one, the resulting precision is one greater than the scale. For other operations, the result might still have a lower precision (but the same scale) than specified by these rules when the result would otherwise have a leading insignificant zero.
If the resulting precision exceeds 31, the database decreases both precision and scale until the precision is 31, except in division, where the minimal scale is always six. If the resulting precision still exceeds 31, the database truncates it to 31. The database returns an overflow error when the result exceeds the available integral portion of the result. When the database decreases the resulting scale, it truncates the excess fractional digits in the result.
Math Operators for Time Intervals
Ocient supports math operators for time interval values (hour, minute, second, etc.), including when used with time-series data types such as TIME, TIMESTAMP, and DATE. You can use addition, subtraction, multiplication, and division on time intervals like any other numeric value.
Division operations can produce inaccurate results because the system truncates the precision of the result to a whole number. For details, see Decimal Precision.
Examples
Add Interval Value to Timestamp
This example uses the MINUTES cast function to add six minutes to the TIMESTAMP value returned from the TIMESTAMP cast function of the '2023-04-05 12:15:05' string.
Output: 2023-04-05 12:21:05.000
Add Fractional Interval Value to Timestamp
This example shows how division can produce an inaccurate result. The division operation in the example must produce a whole number. In other words, the system calculates two minutes as 5 / 2 = 2 instead of two and a half minutes as 5 / 2 = 2.5.
Output: 2023-04-05 12:17:05.000
Math Functions
These scalar math functions operate on a single value and return a single value. They can appear anywhere where an ordinary value or condition can appear.
For a list of common math symbols supported in Ocient, see Math Operators.
ABS
Returns the absolute value of a specified floating-point number.
Syntax
Example
Output: 250.5
ACOS
Returns the inverse cosine of a specified floating-point number.
Syntax
Example
Output: 1.318116071652818
ACOSH
Returns the hyperbolic arc-cosine of a specified floating-point number.
Syntax
Example
Output: 1.3169578969248166
ASIN
Returns the inverse sine of a specified floating-point number.
Syntax
Example
Output: 0.25268025514207865
ASINH
Returns the hyperbolic arc-sine of a specified floating-point number.
Syntax
Example
Output: 1.4436354751788103
ATAN
Returns the inverse tangent of a specified floating-point number.
Syntax
Example
Output: 0.24497866312686414
ATAN2
Returns the inverse tangent of two numeric, floating-point values.
Syntax
Example
Output: 0.4636476090008061
ATANH
Returns the hyperbolic arc-tangent of a specified floating-point number.
Syntax
Example
Output: 0.25541281188299536
BICDF
The cumulative distribution function of the standard bivariate normal distribution, which returns the probability that a random sample of (A, B) is less than x and less than y (A <= x and B <= y). The correlation is set to 0 in the case where you specify two arguments only.
You can specify an optional rho coefficient to calculate the correlation.
For details, see the bivariate cumulative distribution function.
Syntax
Example
Output: 0.8222040420815764
BIPDF
The probability density function of the standard bivariate normal distribution returns the relative likelihood that a random sample would equal the specified values. The correlation is set to 0 in the case where you specify two arguments only.
You can specify an optional rho coefficient to calculate the correlation.
For details, see the bivariate probability density function.
Syntax
Example
Output: 0.013064233284684893
BITFUNC
Performs a variety of bit operations.
The char_func can be any of these string literals: 'AND', 'OR', or 'XOR'. This argument determines the bitwise operation that is performed on arguments x and y.
Syntax
Example
Output: 8
Example
Output: 15
Example
Output: 7
BITAND
Alias for the BITFUNC syntax BITFUNC('AND', x, y).
BITNOT
Returns the bitwise negation of integral_x.
Syntax
Example
Output: -2
BITOR
Alias for the BITFUNC syntax BITFUNC('OR', x, y).
BITXOR
Alias for the BITFUNC syntax BITFUNC('XOR', x, y).
BOOLFUNC
Performs a Boolean logical evaluation on arguments x and y. Numbers equal to 0 evaluate to false, and numbers not equal to 0 evaluate to true.
Syntax
Example
Output: false
Example
Output: true
Example
Output: true
BOOLAND
Alias for the BOOLFUNC syntax BOOLFUNC('AND', x, y).
BOOLNOT
Returns the logical negation of the BOOLFUNC function. Numbers equal to 0 evaluate to true, and numbers not equal to 0 evaluate to false.
Syntax
Example
Output: true
BOOLOR
Alias for the BOOLFUNC syntax BOOLFUNC('OR', x, y).
BOOLXOR
Alias for the BOOLFUNC syntax BOOLFUNC('XOR', x, y).
CBRT
Returns the cube root of the numeric value x.
Syntax
Example
Output: 4.0
CDF
The cumulative distribution function of the standard normal distribution. Returns the probability that a random sample is less than or equal to the specified value.
For details about the cumulative distribution function, see Cumulative distribution function.
Syntax
Example
Output: 0.9331927987311419
CEIL
Returns the nearest integer greater than or equal to x.
Syntax
Example
Output: 24.0
CEILING
Alias for CEIL.
COS
Returns the cosine of x.
Syntax
Example
Output: -0.4161468365471424
COSH
Returns the hyperbolic cosine of x.
Syntax
Example
Output: 3.7621956910836314
COT
Returns the cotangent of x.
Syntax
Example
Output: -0.45765755436028577
DEGREES
Returns the corresponding angle in degrees for x in radians.
Syntax
Example
Output: 85.94366926962348
DIV
Returns the result of x divided by y. If y is zero, returns NULL.
Syntax
Example
Output: 5
ERF
The error function is used for measurements that follow a normal distribution. Use this function to find the probability that the error of a single measurement lies between [-a, a]. For details about the error function, see Error function.
Syntax
Example
Output: 1.0
ERFC
The complement of the error function. ERFC(x) = 1 - ERF(x).
Syntax
Example
Output: 1.1224297172982928E-29
EXP
Returns the exponential of x (e raised to the power of x).
Syntax
Example
Output: 2.718281828459045
FLOOR
Returns the nearest integer less than or equal to x.
Syntax
Example
Output: 22.0
GAMMA
Compute the gamma function of the specified value. For details about the gamma function, see the Gamma function.
Syntax
Example
Output: 40319.99999999999
HEXBINX
Returns the x-coordinate of the center of the nearest hexagonal bin to the point (x, y). Hexagonal bins have a side length of 1.
Syntax
Example
Output: 4.5
HEXBINY
Returns the y-coordinate of the center of the nearest hexagonal bin to the point (x, y). Hexagonal bins have a side length of 1.
Syntax
Example
Output: 7.794
IERF
The inverse of the ERF error function.
Syntax
Example
Output: 0.0
IERFC
The inverse of the complement of the error function.
Syntax
Example
Output: 0.0
LEAKYRELU
Returns the leaky rectified linear unit function of x.
If unspecified, the optional numeric_value_slope argument defaults to 0.01.
Syntax
Example
Output: -0.4
LEFT_SHIFT
Returns x shifted to the left by y bits. If y is less than 0, then x shifts to the right by the absolute value. The function throws an out-of-range error if you attempt a shift into the sign bit.
Syntax
Example
Output: 4
LN
Returns the natural logarithm of x (base e or 2.171828…).
Syntax
Example
Output: 0.6931471805599453
LOG2
Returns the base 2 logarithm of x.
Syntax
Example
Output: 1.0
LOG
Returns the base 10 logarithm of x.
The optional base argument specifies the numeral system to use. If unspecified, the function defaults to base 10.
Syntax
Example
Output: 0.3010299956639812
LOG_GAMMA
The natural logarithm of the absolute value of the gamma function.
Syntax
Example
Output: 12.80182748008147
MOD
Returns the remainder from x divided by y.
Syntax
Example
Output: 2
PI
Returns the constant value of π.
Syntax
Example
Output: 3.141592653589793
PMOD
Returns the smallest non-negative equivalence class of x % y.
Syntax
Example
Output: 2
POWER
Returns x raised to the power of y. The return type FLOAT is returned for a FLOAT input, DECIMAL for DOUBLE input, and BIGINT otherwise.
Syntax
Example
Output: 16
PROBIT
The inverse of the cumulative distribution function. The function accepts only decimal values between 0 and 1.
For details about the probit function, see the Probit model.
Syntax
Example
Output: -0.2533471031357998
RADIANS
Returns the corresponding angle in radians for x in degrees.
Syntax
Example
Output: 0.03490658503988659
RAND
Takes no argument and returns a random DOUBLE value in the range [0, 1).
Syntax
Example
Output: 0.6053105024272647
RELU
Returns the rectified linear unit function of x.
Syntax
Example
Output: 0.0
RIGHT_SHIFT
Returns x shifted to the right by y bits. If y is less than 0, then x shifts to the left by the absolute value of y in bits. The function throws an out-of-range error if you attempt a shift into the sign bit.
Syntax
Example
Output: 2
ROUND
Returns x rounded to the nearest integer.
Syntax
Example
Output: 12.0
SIGN
Returns the positive (+1), zero (0), or negative (-1) sign of x.
Syntax
Example
Output: 1
Example
Output: 0
Example
Output: -1
SIN
Returns the sine of x.
Syntax
Example
Output: 0.9092974268256817
SINH
Returns the hyperbolic sine of x.
Syntax
Example
Output: 3.626860407847019
SQRT
Returns the square root of x.
Syntax
Example
Output: 9
SQUARE
Returns the square of x.
Syntax
Example
Output: 49
TAN
Returns the tangent of x.
Syntax
Example
Output: -5.52037992250933
TANH
Returns the hyperbolic tangent of x.
Syntax
Example
Output: 0.9413755384972874
TO_BASE
Converts an integer value to its string representation in a specified base (radix).
Syntax
Examples
Convert to Binary (Base 2)
This example converts the decimal value 7 to its binary representation.
Output: 111
Convert to Octal (Base 8)
This example converts the decimal value 64 to its octal representation.
Output: 100
TRUNC
Returns x truncated to y decimal places.
Syntax
Example
Output: 1.234
TRUNCATE
Alias for TRUNC.
Related Links
[Array Functions and Operators](Array Functions and Operators)
Matrix Functions and Operators
[Tuple Functions and Operators](Tuple Functions and Operators)

