Building Blocks

Formulize searches for formula by combining mathematical building-blocks (e.g. add, subtract, multiply, divide). The list below describes all of the standard building blocks available.

Arithmetic

Name Usage Comments
constant 1.234 Allows solutions to use real-valued constants
integer 7 Allows solutions to use integer constants
add x + y or add(x,y)
subtract x - y or sub(x,y)
multiply x * y or mul(x,y)
divide x / y or div(x,y) y must be non-zero
negation -x

Trigonometric

Name Usage Comments
sine sin(x) The angle is in radians
cosine cos(x) The angle is in radians
tangent tan(x) The angle is in radians

Exponential

Name Usage Comments
exponential exp(x) Returns e^x
logarithm log(x) This is the natural logaritm (base e)
factorial factorial(x) or x! Computes the real valued factorial as gamma(x+1)
power x ^ y or pow(x,y) x and y could be any expression
sqrt sqrt(x) x must be positive

History Functions

Name Usage Comments
Delayed Variable delay(x,num_rows) Returns the value of the x variable num_rows prior to the current row
Simple Moving Average smm(x,num_rows) Returns the average value of the last num_rows values of the x variable
Weighted Moving Average wma(x,num_rows) Returns the arithmetically weighted average value of the last num_rows values of the x variable
Modified Moving Average mma(x,num_rows) Returns the modified average value of the last num_rows values of the x variable
Simple Moving Median smm(x,num_rows) Returns the median value of the last num_rows values of the x variable

Squashing Functions

Name Usage Comments
logistic function logistic(x) This is a common sigmoid squashing function. Returns 1/(1+ exp(-x))
step function step(x) Returns 1 if x is positive, zero otherwise
sign function sgn(x) Returns -1 if x is negative, +1 if x is positive, and 0 if x is zero
gaussian function gauss(x) This is a bell-shaped squashing function. Returns exp(-x^2)
hyperbolic tangent tanh(x) This is a common squashing function. Returns a value between -1 and +1
Error Function erf(x) Integral of the normal distribution. Returns a value between -1 and +1
Error Function Compliment erfc(x) Returns 1.0 - erf(x)

Boolean

Name Usage Comments
equal to equal(x,y) Returns 1 if x equals y numerically, 0 otherwise
less than less(x,y) Returns 1 if x < y, 0 otherwise
less than or equal to less_or_equal(x,y) Returns 1 if x <= y, 0 otherwise
greater than greater(x,y) Returns 1 if x > y, 0 otherwise
greater than or equal to greater_or_equal(x,y) Returns 1 if x >= y, 0 otherwise
if-then-else if(x,y,z) Returns y if x is greater than 0, z otherwise
logical and and(x,y) Returns 1 if both x and y are greater than 0, 0 otherwise
logical or or(x,y) Returns 1 if either x or y are greater than 0, 0 otherwise
logical xor xor(x,y) Returns 1 if (x <= 0 and y > 0) or (x > 0 and y <= 0), 0 otherwise
logical not not(x) Returns 0 if x is greater than 0, 1 otherwise

Other

Name Usage Comments
minimum min(x,y) Returns the minimum (signed) result of x and y for the data point
maximum max(x,y) Returns the maximum (signed) result of x and y for the data point
modulo mod(x,y) Returns the remainder of x/y
floor floor(x) Returns an integer of x rounded down toward -infinity
ceiling ceil(x) Returns an integer of x rounded up toward +infinite
round round(x) Returns an integer of x rounded to the nearest integer
absolute value abs(x) Returns the positive value of x

Inverse Trigonometry

Name Usage Comments
Arcsine asin(x) The inverse of the sine function
Arccosine acos(x) The inverse of the cosine function
Arctangent atan(x) The inverse of the tangent function
Two-argument Arctangent atan2(x,y) The inverse of the tangent function