# 4.12.1 Operators and functions

The following table lists all the operators and functions you can use in formulae for the input data of a STEM model. Precedence and associativity of binary operators can be imposed with parentheses in the usual way. Note that STEM recognises the use of commas to format large numbers (e.g., 1,000,000) within expressions. For this reason, whenever you use commas to separate elements within a formula such as if(Input1, 1, 0) you must always follow each comma with a space. If you omit the space, STEM may treat two adjacent numbers as one. This requirement applies for all elements within a formula, not just numbers.

Binary Operators (in increasing order of precedence)
< <= == != >= > && || Relational and logical operators (&& for AND, || for OR)
* / Multiplication and division
^ Exponentiation
Unary Operators
! Logical NOT
Functions
sin(x) cos(x) tan(x)
asin(x) acos(x) atan(x) atan2(x)
pi()
Trigonometric functions, inverse functions and p
exp(x) ln(x) log(x) ex, natural logarithm and logarithm base 10
int(x)
ceil(x)
floor(x)
Make integral
Round up: ceil(2.3) = 3, ceil(–2.3) = –2
Round down: floor(2.3) = 2, floor(–2.3) = –3
abs(x) sqrt(x) Absolute value and square root
mean(x, y) min(x, y) max(x, y) Average, minimum and maximum
mod(x, y) Remainder of dividing x by y
sum(x, y, z, …) Sum of several arguments
if(x, y, z) Conditional: if x is non zero, then y, else z
and(x, y) or(x, y) not(x) Functional forms of logical AND, OR and NOT operators
isNaN(x)
notNaN(x, y)
Not-a-number function, e.g., to trap division by zero
Equivalent to if(isNaN(x), y, x)

Operators and functions