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) 
+ –

Addition and subtraction 
* / 
Multiplication and division 
^ 
Exponentiation 
Unary Operators 
– 
Sign inversion 
! 
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) 
e^{x}, 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) 
Notanumber function, e.g., to trap division by zero Equivalent to if(isNaN(x), y, x) 
Operators and functions