## Arithmetic & Assignment Operators

 Operator Definition + Addition between x and y. (eg: x + y) – Subtraction between x and y. (eg: x – y) × Multiplication between x and y. (eg: x × y) / Division between x and y. (eg: x / y) % Modulus of x with respect to y. (eg: x % y) ^ x to the power of y. (eg: x ^ y) := Assign the value of x to y. Where y is either a variable or vector type. (eg: y := x) += Increment x by the value of the expression on the right and side. Where x is either a variable or vector type. (eg: x += abs(y – z)) -= Decrement x by the value of the expression on the right hand side. Where x is either a variable or vector type. (eg: x[i] -= abs(y + z)) *= Assign the multiplication of x by the value of the expression on the righthand side to x. Where x is either a variable or vector type. (eg: x *= abs(y / z)) /= Assign the division of x by the value of the expression on the right-hand side to x. Where x is either a variable or vector type. (eg: x[i + j] /= abs(y * z)) %= Assign x modulo the value of the expression on the right hand side to x. Where x is either a variable or vector type. (eg: x2 %= y ^ 2)

## Equalities & Inequalities

 Operator Definition = or == True only if x is strictly equal to y. (eg: x = y or x == y) <> or != True only if x does not equal y. (eg: x <> y or x != y) < True only if x is less than y. (eg: x < y) <= True only if x is less than or equal to y. (eg: x <= y) > True only if x is greater than y. (eg: x > y) >= True only if x greater than or equal to y. (eg: x >= y)

## Boolean Operations

 Operator Definition true True state or any value other than zero (typically 1). false False state, value of exactly zero. and Logical AND, True only if x and y are both true. (eg: x and y) mand Multi-input logical AND, True only if all inputs are true. Left to right short-circuiting of expressions. (eg: mand(x > y, z < w, u or v, w and x)) mor Multi-input logical OR, True if at least one of the inputs are true. Left to right short-circuiting of expressions. (eg: mor(x > y, z < w, u or v, w and x)) nand Logical NAND, True only if either x or y is false. (eg: x nand y) nor Logical NOR, True only if the result of x or y is false (eg: x nor y) not Logical NOT, Negate the logical sense of the input. (eg: not(x and y) == x nand y) or Logical OR, True if either x or y is true. (eg: x or y) xor Logical XOR, True only if the logical states of x and y differ. (eg: x xor y) xnor Logical XNOR, True iff the biconditional of x and y is satisfied. (eg: x xnor y) & Similar to AND but with left to right expression short circuiting optimisation. (eg: (x & y) == (y and x)) ❘ Similar to OR but with left to right expression short circuiting optimisation. (eg: (x ❘ y) == (y or x))

## General Purpose Functions

 Function Definition abs Absolute value of x. (eg: abs(x)) avg Average of all the inputs. (eg: avg(x,y,z,w,u,v) == (x + y + z + w + u + v) / 6) ceil Smallest integer that is greater than or equal to x. clamp Clamp x in range between r0 and r1, where r0 < r1. (eg: clamp(r0,x,r1)) equal Equality test between x and y using normalised epsilon erf Error function of x. (eg: erf(x)) erfc Complimentary error function of x. (eg: erfc(x)) exp e to the power of x. (eg: exp(x)) expm1 e to the power of x minus 1, where x is very small. (eg: expm1(x)) floor Largest integer that is less than or equal to x. (eg: floor(x)) frac Fractional portion of x. (eg: frac(x)) hypot Hypotenuse of x and y (eg: hypot(x,y) = sqrt(x*x + y*y)) iclamp Inverse-clamp x outside of the range r0 and r1. Where r0 < r1. If x is within the range it will snap to the closest bound. (eg: iclamp(r0,x,r1) inrange In-range returns ‘true’ when x is within the range r0 and r1. Where r0 < r1. (eg: inrange(r0,x,r1) log Natural logarithm of x. (eg: log(x)) log10 Base 10 logarithm of x. (eg: log10(x)) log1p Natural logarithm of 1 + x, where x is very small. (eg: log1p(x)) log2 Base 2 logarithm of x. (eg: log2(x)) logn Base N logarithm of x. where n is a positive integer. (eg: logn(x,8)) max Largest value of all the inputs. (eg: max(x,y,z,w,u,v)) min Smallest value of all the inputs. (eg: min(x,y,z,w,u)) mul Product of all the inputs. (eg: mul(x,y,z,w,u,v,t) == (x * y * z * w * u * v * t)) ncdf Normal cumulative distribution function. (eg: ncdf(x)) nequal Not-equal test between x and y using normalised epsilon pow x to the power of y. (eg: pow(x,y) == x ^ y) root Nth-Root of x. where n is a positive integer. (eg: root(x,3) == x^(1/3)) round Round x to the nearest integer. (eg: round(x)) roundn Round x to n decimal places (eg: roundn(x,3)) where n > 0 and is an integer. (eg: roundn(1.2345678,4) == 1.2346) sgn Sign of x, -1 where x < 0, +1 where x > 0, else zero. (eg: sgn(x)) sqrt Square root of x, where x >= 0. (eg: sqrt(x)) sum Sum of all the inputs. (eg: sum(x,y,z,w,u,v,t) == (x + y + z + w + u + v + t)) swap Swap the values of the variables x and y and return the <=> current value of y. (eg: swap(x,y) or x <=> y) trunc Integer portion of x. (eg: trunc(x))