Function reference #

Core functions #

Function Description
math.config(config: Object): Object Set configuration options for math.
math.import(object, override) Import functions from an object or a module.
math.typed(name, signatures) : function Create a typed-function which checks the types of the arguments and can match them against multiple provided signatures.

Construction functions #

Function Description
math.bignumber(x) Create a BigNumber, which can store numbers with arbitrary precision.
math.boolean(x) Create a boolean or convert a string or number to a boolean.
math.chain(value) Wrap any value in a chain, allowing to perform chained operations on the value.
math.complex(re, im) Create a complex value or convert a value to a complex value.
math.createUnit(units) Create a user-defined unit and register it with the Unit type.
math.fraction(numerator, denominator) Create a fraction convert a value to a fraction.
math.index(range1, range2, …) Create an index.
math.matrix(x) Create a Matrix.
math.number(value) Create a number or convert a string, boolean, or unit to a number.
math.sparse(x) Create a Sparse Matrix.
math.splitUnit(unit, parts) Split a unit in an array of units whose sum is equal to the original unit.
math.string(value) Create a string or convert any object into a string.
math.unit(x) Create a unit.

Expression functions #

Function Description
math.compile(expr) Parse and compile an expression.
math.eval(expr [, scope]) Evaluate an expression.
math.help(search) Retrieve help on a function or data type.
math.parse(expr [, scope]) Parse an expression.
math.parser() Create a parser.

Algebra functions #

Function Description
math.lsolve(L, b) Solves the linear equation system by forwards substitution.
math.lup(A) Calculate the Matrix LU decomposition with partial pivoting.
math.lusolve(A, b) Solves the linear system A * x = b where A is an [n x n] matrix and b is a [n] column vector.
math.slu(A, order, threshold) Calculate the Sparse Matrix LU decomposition with full pivoting.
math.usolve(U, b) Solves the linear equation system by backward substitution.

Arithmetic functions #

Function Description
math.abs(x) Calculate the absolute value of a number.
math.add(x, y) Add two or more values, x + y.
math.cbrt(x [, allRoots]) Calculate the cubic root of a value.
math.ceil(x) Round a value towards plus infinity If x is complex, both real and imaginary part are rounded towards plus infinity.
math.cube(x) Compute the cube of a value, x * x * x.
math.divide(x, y) Divide two values, x / y.
math.dotDivide(x, y) Divide two matrices element wise.
math.dotMultiply(x, y) Multiply two matrices element wise.
math.dotPow(x, y) Calculates the power of x to y element wise.
math.exp(x) Calculate the exponent of a value.
math.fix(x) Round a value towards zero.
math.floor(x) Round a value towards minus infinity.
math.gcd(a, b) Calculate the greatest common divisor for two or more values or arrays.
math.hypot(a, b, …) Calculate the hypotenusa of a list with values.
math.lcm(a, b) Calculate the least common multiple for two or more values or arrays.
math.log(x [, base]) Calculate the logarithm of a value.
math.log10(x) Calculate the 10-base logarithm of a value.
math.mod(x, y) Calculates the modulus, the remainder of an integer division.
math.multiply(x, y) Multiply two or more values, x * y.
math.norm(x [, p]) Calculate the norm of a number, vector or matrix.
math.nthRoot(a) Calculate the nth root of a value.
math.pow(x, y) Calculates the power of x to y, x ^ y.
math.round(x [, n]) Round a value towards the nearest integer.
math.sign(x) Compute the sign of a value.
math.sqrt(x) Calculate the square root of a value.
math.square(x) Compute the square of a value, x * x.
math.subtract(x, y) Subtract two values, x - y.
math.unaryMinus(x) Inverse the sign of a value, apply a unary minus operation.
math.unaryPlus(x) Unary plus operation.
math.xgcd(a, b) Calculate the extended greatest common divisor for two values.

Bitwise functions #

Function Description
math.bitAnd(x, y) Bitwise AND two values, x & y.
math.bitNot(x) Bitwise NOT value, ~x.
math.bitOr(x, y) Bitwise OR two values, x | y.
math.bitXor(x, y) Bitwise XOR two values, x ^ y.
math.leftShift(x, y) Bitwise left logical shift of a value x by y number of bits, x << y.
math.rightArithShift(x, y) Bitwise right arithmetic shift of a value x by y number of bits, x >> y.
math.rightLogShift(x, y) Bitwise right logical shift of value x by y number of bits, x >>> y.

Combinatorics functions #

Function Description
math.bellNumbers(n) The Bell Numbers count the number of partitions of a set.
math.catalan(n) The Catalan Numbers enumerate combinatorial structures of many different types.
math.composition(n, k) The composition counts of n into k parts.
math.stirlingS2(n, k) The Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets.

Complex functions #

Function Description
math.arg(x) Compute the argument of a complex value.
math.conj(x) Compute the complex conjugate of a complex value.
math.im(x) Get the imaginary part of a complex number.
math.re(x) Get the real part of a complex number.

Geometry functions #

Function Description
math.distance([x1, y1], [x2, y2]) Calculates: The eucledian distance between two points in 2 and 3 dimensional spaces.
math.intersect(endPoint1Line1, endPoint2Line1, endPoint1Line2, endPoint2Line2) Calculates the point of intersection of two lines in two or three dimensions and of a line and a plane in three dimensions.

Logical functions #

Function Description
math.and(x, y) Logical and.
math.not(x) Logical not.
math.or(x, y) Logical or.
math.xor(x, y) Logical xor.

Matrix functions #

Function Description
math.concat(a, b, c, … [, dim]) Concatenate two or more matrices.
math.cross(x, y) Calculate the cross product for two vectors in three dimensional space.
math.det(x) Calculate the determinant of a matrix.
math.diag(X) Create a diagonal matrix or retrieve the diagonal of a matrix When x is a vector, a matrix with vector x on the diagonal will be returned.
math.dot(x, y) Calculate the dot product of two vectors.
math.eye(n) Create a 2-dimensional identity matrix with size m x n or n x n.
math.filter(x, test) Filter the items in an array or one dimensional matrix.
math.flatten(x) Flatten a multi dimensional matrix into a single dimensional matrix.
math.forEach(x, callback) Iterate over all elements of a matrix/array, and executes the given callback function.
math.inv(x) Calculate the inverse of a square matrix.
math.map(x, callback) Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.
math.ones(m, n, p, …) Create a matrix filled with ones.
math.partitionSelect(x, k) Partition-based selection of an array or 1D matrix.
math.range(start, end [, step]) Create an array from a range.
math.resize(x, size [, defaultValue]) Resize a matrix.
math.size(x) Calculate the size of a matrix or scalar.
math.sort(x) Sort the items in a matrix.
math.squeeze(x) Squeeze a matrix, remove inner and outer singleton dimensions from a matrix.
math.subset(x, index [, replacement]) Get or set a subset of a matrix or string.
math.trace(x) Calculate the trace of a matrix: the sum of the elements on the main diagonal of a square matrix.
math.transpose(x) Transpose a matrix.
math.zeros(m, n, p, …) Create a matrix filled with zeros.

Probability functions #

Function Description
math.combinations(n, k) Compute the number of ways of picking k unordered outcomes from n possibilities.
math.factorial(n) Compute the factorial of a value Factorial only supports an integer value as argument.
math.gamma(n) Compute the gamma function of a value using Lanczos approximation for small values, and an extended Stirling approximation for large values.
math.kldivergence(x, y) Calculate the Kullback-Leibler (KL) divergence between two distributions.
math.multinomial(a) Multinomial Coefficients compute the number of ways of picking a1, a2, .
math.permutations(n [, k]) Compute the number of ways of obtaining an ordered subset of k elements from a set of n elements.
math.pickRandom(array) Random pick one or more values from a one dimensional array.
math.random([min, max]) Return a random number larger or equal to min and smaller than max using a uniform distribution.
math.randomInt([min, max]) Return a random integer number larger or equal to min and smaller than max using a uniform distribution.

Relational functions #

Function Description
math.compare(x, y) Compare two values.
math.deepEqual(x, y) Test element wise whether two matrices are equal.
math.equal(x, y) Test whether two values are equal.
math.larger(x, y) Test whether value x is larger than y.
math.largerEq(x, y) Test whether value x is larger or equal to y.
math.smaller(x, y) Test whether value x is smaller than y.
math.smallerEq(x, y) Test whether value x is smaller or equal to y.
math.unequal(x, y) Test whether two values are unequal.

Special functions #

Function Description
math.erf(x) Compute the erf function of a value using a rational Chebyshev approximations for different intervals of x.

Statistics functions #

Function Description
math.mad(a, b, c, …) Compute the median absolute deviation of a matrix or a list with values.
math.max(a, b, c, …) Compute the maximum value of a matrix or a list with values.
math.mean(a, b, c, …) Compute the mean value of matrix or a list with values.
math.median(a, b, c, …) Compute the median of a matrix or a list with values.
math.min(a, b, c, …) Compute the maximum value of a matrix or a list of values.
math.mode(a, b, c, …) Computes the mode of a set of numbers or a list with values(numbers or characters).
math.prod(a, b, c, …) Compute the product of a matrix or a list with values.
math.quantileSeq(A, prob[, sorted]) Compute the prob order quantile of a matrix or a list with values.
math.std(a, b, c, …) Compute the standard deviation of a matrix or a list with values.
math.sum(a, b, c, …) Compute the sum of a matrix or a list with values.
math.var(a, b, c, …) Compute the variance of a matrix or a list with values.

String functions #

Function Description
math.format(value [, precision]) Format a value of any type into a string.
math.print(template, values [, precision]) Interpolate values into a string template.

Trigonometry functions #

Function Description
math.acos(x) Calculate the inverse cosine of a value.
math.acosh(x) Calculate the hyperbolic arccos of a value, defined as acosh(x) = ln(sqrt(x^2 - 1) + x).
math.acot(x) Calculate the inverse cotangent of a value, defined as acot(x) = atan(1/x).
math.acoth(x) Calculate the hyperbolic arccotangent of a value, defined as acoth(x) = atanh(1/x) = (ln((x+1)/x) + ln(x/(x-1))) / 2.
math.acsc(x) Calculate the inverse cosecant of a value, defined as acsc(x) = asin(1/x).
math.acsch(x) Calculate the hyperbolic arccosecant of a value, defined as acsch(x) = asinh(1/x) = ln(1/x + sqrt(1/x^2 + 1)).
math.asec(x) Calculate the inverse secant of a value.
math.asech(x) Calculate the hyperbolic arcsecant of a value, defined as asech(x) = acosh(1/x) = ln(sqrt(1/x^2 - 1) + 1/x).
math.asin(x) Calculate the inverse sine of a value.
math.asinh(x) Calculate the hyperbolic arcsine of a value, defined as asinh(x) = ln(x + sqrt(x^2 + 1)).
math.atan(x) Calculate the inverse tangent of a value.
math.atan2(y, x) Calculate the inverse tangent function with two arguments, y/x.
math.atanh(x) Calculate the hyperbolic arctangent of a value, defined as atanh(x) = ln((1 + x)/(1 - x)) / 2.
math.cos(x) Calculate the cosine of a value.
math.cosh(x) Calculate the hyperbolic cosine of a value, defined as cosh(x) = 1/2 * (exp(x) + exp(-x)).
math.cot(x) Calculate the cotangent of a value.
math.coth(x) Calculate the hyperbolic cotangent of a value, defined as coth(x) = 1 / tanh(x).
math.csc(x) Calculate the cosecant of a value, defined as csc(x) = 1/sin(x).
math.csch(x) Calculate the hyperbolic cosecant of a value, defined as csch(x) = 1 / sinh(x).
math.sec(x) Calculate the secant of a value, defined as sec(x) = 1/cos(x).
math.sech(x) Calculate the hyperbolic secant of a value, defined as sech(x) = 1 / cosh(x).
math.sin(x) Calculate the sine of a value.
math.sinh(x) Calculate the hyperbolic sine of a value, defined as sinh(x) = 1/2 * (exp(x) - exp(-x)).
math.tan(x) Calculate the tangent of a value.
math.tanh(x) Calculate the hyperbolic tangent of a value, defined as tanh(x) = (exp(2 * x) - 1) / (exp(2 * x) + 1).

Unit functions #

Function Description
math.to(x, unit) Change the unit of a value.

Utils functions #

Function Description
math.clone(x) Clone an object.
math.isInteger(x) Test whether a value is an integer number.
math.isNaN(x) Test whether a value is NaN (not a number).
math.isNegative(x) Test whether a value is negative: smaller than zero.
math.isNumeric(x) Test whether a value is an numeric value.
math.isPositive(x) Test whether a value is positive: larger than zero.
math.isPrime(x) Test whether a value is prime: has no divisors other than itself and one.
math.isZero(x) Test whether a value is zero.
math.typeof(x) Determine the type of a variable.
Fork me on GitHub