Math Functions#
Elementary math functions allow you to complete calculations, such as determining the greatest common denominator, returning the value of pi, and finding the square root of your data.
These are the math functions in Spectrum:
ABS#
Syntax#
ABS(<number>)
Description#
Returns the absolute value of a number.
Examples
| Value | ABS() returns |
|---|---|
| 123.987 | 123.987 |
| -123.987 | 123.987 |
| 123 | 123 |
| -123 | 123 |
BIGDECIMAL#
Syntax#
BIGDECIMAL(<number>)
Description#
Converts the values of a column with a number data type to the big decimal data type.
Examples
| Field type | Number | BIGDECIMAL returns |
|---|---|---|
| Integer | 10 | 10 |
| Integer | -345352 | -345352 |
| Big Integer | 10,223,372,036,854,775,458,938,943 | 10,223,372,036,854,775,458,938,943 |
| Big Integer | -1,329,223,372,036,854,775,807,934 | -1,329,223,372,036,854,775,807,934 |
| Float | 10.3 | 10.3 |
| Float | 33.333333333 | 33.333333333 |
BIGINTEGER#
Syntax#
BIGINTEGER(<number>)
Description#
Converts the values of a column with a number data type to the big integer data type. If the number being converted has a value after the decimal, the result is rounded down.
Examples
| Field type | Number | BIGINTEGER returns |
|---|---|---|
| Integer | 10 | 10 |
| Integer | -345352 | -345352 |
| Big Float | 10.223,372,036,854,775,458,938,943 | 10 |
| Big Float | -9.329,223,372,036,854,775,807,934 | -10 |
| Float | 10.3 | 10 |
| Float | 33.999999 | 33 |
| Float | -2.6 | -3 |
BITAND#
Syntax#
BITAND(<integer>;<integer>; ...)
Description#
Bitwise AND operation on given integer arguments. The function converts the integers to binary and returns 1 in each bit position where all input arguments have a one in the corresponding position and zero in all others.
This function supports more than 255 arguments.
Examples
| Column1 | Column2 | Column3 | BITAND() returns |
|---|---|---|---|
| 2 | 3 | 6 | 2 |
| (0010) | (0011) | (0110) | = 0010 |
| Column1 | Column2 | Column3 | BITAND() returns |
|---|---|---|---|
| 4 | 8 | 12 | 0 |
| (0100) | (1000) | (1100) | = 0000 |
| Column1 | Column2 | Column3 | BITAND() returns |
|---|---|---|---|
| 23 | 8 | 109 | 5 |
| (0010111) | (0111101) | (1101101) | = 0000101 |
BITOR#
Syntax#
BITOR(<integer>, <integer>; ...)
Description#
Bitwise OR operation on given integer arguments. The function converts the integers to binary and returns 1 in each bit position where any input arguments have a one in the corresponding position and zero in all others.
This function supports more than 255 arguments.
Examples
| "Column1","Column2","Column3","BITAND() | returns" |
|---|---|
| "2","3","6","7" | |
| "(0010)","(0011)","(0110)","= | 0111" |
| " |
| "Column1","Column2","Column3","BITAND() | returns" |
|---|---|
| "4","8","12","12" | |
| "(0100)","(1000)","(1100)","= | 1100" |
| " |
| Column1 | Column2 | Column3 | BITAND() returns |
|---|---|---|---|
| 23 | 8 | 109 | 127 |
| (0010111) | (0111101) | (1101101) | = 1111111 |
CEILING#
Syntax#
CEILING(<number>;<number>)
Description#
Rounds a number up to the nearest integer or to the nearest multiple of significance.
Examples
| Value | CEILING() returns |
|---|---|
| 3 | 0 |
| 3.1 | 4 |
| 8.94 | 9 |
COMBIN#
Syntax#
COMBIN(<number>;<number>)
Description#
Returns the integer representation of possible combinations for a given number of objects.
Examples
| Set size | Number of objects | COMBIN() returns |
|---|---|---|
| 10 | 2 | 45 |
| 10 | 3 | 120 |
| 10 | 5 | 252 |
| 5 | 10 | <error> |
COMBIND#
Syntax#
COMBIND(<number>;<number>)
Description#
Returns the double (or float) representation of possible combinations for a given number of objects.
Examples
| Set size | Number of objects | COMBIND() returns |
|---|---|---|
| 10.5 | 8.3 | 45 |
| 123.45 | 12.34 | 14,383,566,047,438,588 |
| 12.38 | 15.56 | <error> |
CONVERT#
Syntax#
CONVERT(<number>;<string,measurement abbreviation>;<string,measurement abbreviation>)
Description#
Converts a number from one measurement to another measurement.
The following measurements are available for the CONVERT function:
| Measurement | Measurement abbreviation |
|---|---|
| Millisecond | ms |
| Second | s |
| Minute | m |
| Hour | h |
| Day | d |
| Year | y |
Examples
| Number | From | To | Returns |
|---|---|---|---|
| 1000 | ms | s | 1 |
| 1000 | h | m | 60000 |
| 1000 | d | y | 2.737850787132101 |
| 5000 | h | d | 208.3333333333334 |
DIFF#
Syntax#
DIFF(<number>;<number>)
Description#
Returns the difference of thx numbers. (First argument value must not be null.)
Examples
| Column1 | Column2 | DIFF() returns |
|---|---|---|
| 5 | 2 | 3 |
| 2 | 5 | -3 |
| 10.5 | 7 | 3.5 |
DIV#
Syntax#
DIV(<number>; <number>; ...)
Description#
Returns the quotient of the numbers. This function supports more than 255 arguments.
Examples
| Column1 | Column2 | DIV() returns |
|---|---|---|
| 6 | 3 | 2 |
| 3 | 6 | 0.5 |
| -6 | 2 | -3 |
| 2 | 0 | <error> |
E#
Syntax#
E()
Description#
Returns the value of the mathematical constant e. The numerical value of e truncated to 15 decimal places is 2.718281828459045.
Example
| E() returns |
|---|
| 2.718281828459045 |
EVEN#
Syntax#
EVEN(<number>)
Description#
Rounds a number up to the nearest even integer.
Examples
| Column1 | EVEN() returns |
|---|---|
| 4.5 | 6 |
| 5.5 | 6 |
| 6 | 6 |
| -7.33 | -8 |
EXP#
Syntax#
EXP(<number>)
Description#
Returns e raised to the power of a given number.
Examples
| Column1 | EXP() returns |
|---|---|
| 3 | [20.085536923187668] |
| 12 | [162,754.79141900392] |
| -5 | [0.006737946999085467 ] |
EXPLODE_RANGE#
Syntax#
EXPLODE_RANGE(<integer>;<integer>)\
EXPLODE_RANGE(<sting>;<string>)
Description#
Explodes a integer or IP address range into multiple rows. An IP address range is first converted to a range of integers. The range length is limited to 100000. All arguments must be of the same type.
Example
| Column1 | Column2 | EXPLODE_RANGE() returns |
|---|---|---|
| 1 | 5 | 1 |
| 7 | 3 | 2 |
| 3 | ||
| 4 | ||
| 5 | ||
| 7 | ||
| 6 | ||
| 5 | ||
| 4 | ||
| 3 |
FACT#
Syntax#
FACT(<number>)
Description#
Returns the factorial of a number (0 <= number < 21).
Examples
| Column1 | FACT() returns |
|---|---|
| 3 | 6 |
| 4 | 24 |
| 8 | [40,320] |
| 21 | <error> |
| -3 | <error> |
FACTD#
Syntax#
FACTD(<number>)
Description#
Returns the double factorial of a number (0 <= number < 21).
Examples
| Column1 | FACTD() returns |
|---|---|
| 3 | 6 |
| 4 | 24 |
| 8 | [40,320] |
| 21 | <error> |
| -3 | <error> |
FLOOR#
Syntax#
FLOOR(<number>;<number>)
Description#
Rounds a number down, toward 0 (zero). The second value is the significance.
Examples
| Column1 | FLOOR() returns |
|---|---|
| 123.45 | 123 |
| 37.888 | 37 |
| -5.5 | -6 |
Add a significance value to round down from a specific decimal position.
| Column1 | FLOOR(<column1>;3) |
|---|---|
| 123.456789 | 123.456 |
GCD#
Syntax#
GCD(<number>;<number>;...)
Description#
Returns the greatest common divisor, which is an integer that divides into all of the numbers without a remainder.
Examples
| Column1 | Column2 | GCD() returns |
|---|---|---|
| 5 | 2 | 1 |
| 24 | 36 | 12 |
| 20.8 | 12 | 4 |
| 20 | -30 | 5 |
GEOHASH_DEC_LAT#
Syntax#
GEOHASH_DEC_LAT(<string>)
Description#
Decodes the given geohash value into the latitude with a precision of six after the decimal place.
The purpose of the geohash.org service is to offer short URLs which uniquely identify positions on the Earth, so that referencing them in emails, forums, or websites is more convenient.
Example
| Column1 | GEOHASH_DEC_LAT() returns |
|---|---|
| u4pruydqqvj | 57.649111 |
GEOHASH_DEC_LONG#
Syntax#
GEOHASH_DEC_LONG(<string>)
Description#
Decodes the given geohash value into the longitude with a precision of 6 after the decimal place.
The purpose of the geohash.org service is to offer short URLs which uniquely identify positions on the Earth, so that referencing them in emails, forums, or websites is more convenient.
Example
| Column1 | GEOHASH_DEC_LONG returns |
|---|---|
| u4pruydqqvj | 10.40744 |
GEOHASH_ENC#
Syntax#
GEOHASH_ENC(<number>;<number>)
Description#
Encodes the given latitude and longitude into a geohash value with precision of 12 digits.
The purpose of the geohash.org service is to offer short URLs which uniquely identify positions on the Earth, so that referencing them in emails, forums, or websites is more convenient.
Example
| Column1 | GEOHASH_ENC() returns |
|---|---|
| 57.64911;10.40744 | u4pruydqqvj |
INT#
Syntax#
INT(<number, string, boolean, or date>)
Description#
Rounds a number down to the nearest integer. INT accepts null values.
Converts integers contained in a string, Boolean values, or dates into the integer data field type. When using Boolean values, true is converted into 1, and false is converted into 0. Dates are converted into milliseconds (returning the difference between the current time and midnight, January 1, 1970 UTC).
Examples
| Data field type | Column1 | INT() returns |
|---|---|---|
| float | 4.7 | 4 |
| float | -4.7 | -5 |
| string | 55 | 55 |
| string | 55.2 | <error> |
| Boolean | true | 1 |
| Boolean | false | 0 |
| date | Oct 15, 2010 04:34:34 AM | 1,287,110,074,000 |
| date | Sep 25, 2010 12:33:25 PM | 1,285,410,805,000 |
| big_integer | 9,999,999,999,999,999,999 | <error> |
LCM#
Syntax#
LCM(<number>;<number>;...)
Description#
Returns the least common multiple which is the smallest positive integer that is a multiple of all integer arguments. This function supports more than 255 arguments.
Examples
| Column1 | Column2 | LCM returns |
|---|---|---|
| 5 | 2 | 10 |
| 24 | 36 | 72 |
| 20.8 | 12 | 60 |
| 20 | -30 | 60 |
LN#
Syntax#
LN(<number>)
Description#
Returns the natural logarithm of a number. Natural logarithms are based on the constant e (2.71828182845904).
Example
| Column1 | LN() returns |
|---|---|
| 86 | 4.454347296253507 |
LOG#
Syntax#
LOG(<number>;<number>)
Description#
Returns the logarithm of a number to a specified base. The first number must be greater than zero and the second number is the optional base. If the base is not provided, the function uses base e (Euler's number).
Examples
| Column1 | LOG() returns |
|---|---|
| 20 | [2.995732273553991] |
| Column1 | LOG(<column1>;3) returns |
|---|---|
| 20 | [2.7268330278608417] |
LOG10#
Syntax#
LOG10(<number>)
Description#
Returns the base-10 logarithm of a number.
Example
| Column1 | LOG10() returns |
|---|---|
| 20 | 1.301029996 |
LSHIFT#
Syntax#
LSHIFT(<number>;<number>)
Description#
Shifts bits left by the given number of bits. Both values must be integers.
Example
| Column1 | Column2 | LSHIFT() returns |
|---|---|---|
| 20 | 3 | 160 |
MOD#
Syntax#
MOD(<number>;<number>;...)
Description#
Returns the modulo (remainder) of the arguments. Supports more than 255 arguments.
Examples
| Column1 | Column2 | MOD() returns |
|---|---|---|
| 19 | 17 | 2 |
| 34 | 17 | 0 |
MROUND#
Syntax#
MROUND(<number>;<number>)
Description#
Returns a number rounded to the desired multiple.
MROUND rounds up, away from zero, if the remainder of dividing number by multiple is greater than or equal to half the value of multiple.
Example
=MROUND(19.4445; 2) returns 20 because 19.4445 is closer to 20 than it is to 18.
=MROUND(0.7651; 1) returns 1 because 0.7651 is closer to 1 than it is to 0.
| Value | Rounding multiple | Result |
|---|---|---|
| 0.4 | 1 | 0 |
| 0.5 | 1 | 0 |
| 0.6 | 1 | 1 |
| 8 | 3 | 9 |
| 9 | 3 | 9 |
| 10 | 3 | 9 |
| 11 | 3 | 12 |
| 12 | 3 | 12 |
| 13 | 3 | 12 |
| 1234 | 100 | 1200 |
| 1250 | 100 | 1200 |
| 1251 | 100 | 1300 |
| 1299 | 100 | 1300 |
ODD#
Syntax#
ODD(<number>)
Description#
Rounds a number up to the nearest odd integer.
Examples
| Column1 | ODD() returns |
|---|---|
| 19.4445 | 21 |
| 21.21 | 23 |
| -6.5 | -7 |
PI#
Syntax#
PI()
Description#
Returns the value of π (Pi). The numerical value of π is 3.141592654...
Example
| PI() returns |
|---|
| 3.141592653589793 |
PLUS#
Syntax#
PLUS(<any>;<any>;...)
PLUS() doesn't accept the boolean field type.
Description#
Adds its arguments (or concatenates string values). Arguments must be of the same type. Supports more than 255 arguments.
Examples
| Data type | Column1 | Column2 | Returns |
|---|---|---|---|
| number | 1 | 2 | 3 |
| string | The | Best | TheBest |
| date | 11:12:54 | 10000 | 11:14:34 |
| list | [1, 2] | [3,4 ] | [1,2,3,4] |
POWER#
Syntax#
POWER(<number>;<number>)
Description#
Returns the result of a number raised to a power.
Examples
| Column1 (base) | Column2 (power) | POWER() returns |
|---|---|---|
| 3 | 4 | 81 |
| 3 | 4.5 | 140.2961154 |
| 3 | -4 | [0.012345679012345678 ] |
PRODUCT#
Syntax#
PRODUCT(<number>;<number>;...)
Description#
Multiplies the arguments. Supports more than 255 arguments.
Examples
| Column1 | Column2 | Column3 | PRODUCT() returns |
|---|---|---|---|
| 3 | 4 | 12 | |
| 3 | 4 | 4.5 | 54 |
| 3 | -4 | 4.5 | -54 |
QUOTIENT#
Syntax#
QUOTIENT(<number>;<number>)
Description#
Returns the integer portion of a division.
The returned value is the integer type. If the number exceeds the length of an integer an <error> is displayed.
Example
| Column1 | Column2 | QUOTIENT() returns |
|---|---|---|
| 9.516 | 4 | 2 |
RAND#
Syntax#
RAND()
Description#
Returns a random number between 0 (zero) and 1.
Examples
| RAND() returns |
|---|
| 0.46961970037566425 |
| [0.9695914655550188] |
| 0.9338627890583037 |
RANDBETWEEN#
Syntax#
RANDBETWEEN(<number>;<number>)
Description#
Returns a random number between the numbers that you specify.
Examples
| Column1 | Column2 | RANDBETWEEN() returns |
|---|---|---|
| 4 | 5 | [4.7091995504673365] |
| 5.52674167149901 | ||
| -1.1110290234600715 |
RANDGAUSSIAN#
Syntax#
RANDGAUSSIAN()
Description#
This function generates normal distributed random values with mean of 0 and standard deviation of 1.
For each line in the current worksheet, a normally distributed random number is returned based on the Gaussian function.
Example
Column A: fx=EXPLODE_RANGE(1;10000)
| A |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| ... 1000 |
Column B: fx=RANDGAUSSIAN()
| A | B |
|---|---|
| 1 | -0.016375461 |
| 2 | -0.474685504 |
| 3 | 1.2762378257 |
| 4 | 1.3304408702 |
| 5 | -0.172384979 |
| 6 | 1.5170906593 |
| 7 | 0.8719007714 |
| ....1000 | ... |
Histogram of results from Flip Side sheet.

ROUND#
Syntax#
ROUND(<number>)
Description#
Returns the closest integer to the argument.
Examples
| Column1 | ROUND() returns |
|---|---|
| 5.4 | 5 |
| 5.5 | 6 |
| -5.5 | -6 |
ROUNDDOWN#
Syntax#
ROUNDDOWN(<number>;<number>)
Description#
Rounds a number down toward the nearest whole number. The count is the number of digits where to start the rounding.
Examples
| Column1 | ROUNDDOWN() returns |
|---|---|
| 5.3 | 5 |
| 7.9345 | 7 |
| Column1 | Count | ROUNDDOWN(<Column1>;3) |
|---|---|---|
| 7.987654321 | 3 | 7.987 |
ROUNDUP#
Syntax#
ROUNDUP(<number>[;<number>])
Description#
Rounds a number up toward the nearest whole number. The count is the number of digits (defaults to 0).
Examples
| Column1 | ROUNDUP() returns |
|---|---|
| 5.3 | 6 |
| 7.9345 | 8 |
| Column1 | Count | ROUNDUP(\<Column1>;3) returns |
|---|---|---|
| 7.987654321 | 3 | 7.988 |
RSHIFT#
Syntax#
RSHIFT(<number>;<number>)
Description#
Shifts bits right by the given number of bits. Both values must be integers.
Examples
| Column1 | Column2 | RSHIFT() returns |
|---|---|---|
| 2000 | 3 | 250 |
| 500 | 7 | 3 |
SIGN#
Syntax#
SIGN(<number>)
Description#
Returns the sign of a number as integer.
Examples
| Column1 | SIGN() returns |
|---|---|
| 9.516 | 1 |
| 0 | 0 |
| -9.516 | -1 |
SQRT#
Syntax#
SQRT(<number>)
Description#
Returns the square root of number. Number must be positive.
Examples
| Column1 | SQRT() returns |
|---|---|
| 25 | |
| 33.6 | 5.796550698 |
| -49 | <error> |
SQRTPI#
Syntax#
SQRTPI(<number>)
Description#
Returns the square root of (number * π). Number must be positive.
Examples
| Column1 | SQRTPI() returns |
|---|---|
| 1.7724538509055159 | |
| 4.854064781389248 | |
| -7.5 | <error> |
SUBTRACT#
Syntax#
SUBTRACT(<number>;<number>;...)
Description#
Subtracts all values from the first argument.
Examples
| Column1 | Column2 | SUBTRACT() returns |
|---|---|---|
| 5 | 2 | 3 |
| 2 | 5 | -3 |
| -3 | -7 | 4 |
| Column1 | Column2 | Column3 | SUBTRACT() returns |
|---|---|---|---|
| 30 | 5 | 8 | 17 |
SUM#
Syntax#
SUM(<number>;<number>;...)
Description#
Adds the arguments.
Examples
| Column1 | Column2 | SUM() returns |
|---|---|---|
| 2 | 3 | 5 |
| 3.3 | 2.2 | 5.5 |
| -7 | 2 | -5 |
| Column1 | Column2 | Column3 | SUM() returns |
|---|---|---|---|
| 4 | 5 | 6 | 15 |
TRUNC#
Syntax#
TRUNC(<number>)
Description#
Truncates a number to an integer or truncates its decimal places.
Examples
| Column1 | TRUNC() returns |
|---|---|
| 9.516 | 9 |
| -9.516 | -9 |
URSHIFT#
Syntax#
URSHIFT(<number>;<number>)
Description#
The unsigned right shift operator shifts a zero into the leftmost position.
Examples
| Column1 | Column2 | URSHIFT returns |
|---|---|---|
| -1 | 2 | [4,611,686,018,427,387,903] |
| 5 | -20 | 0 |
| -20 | -10 | 1,023 |
| 32 | 3 | 4 |
| 5 | 28 | 0 |