Nontrivial mathematics in the browser. 100% pure JavaScript. For modern mathematical physicists and their ilk. Use the links on the left for details of special functions and common mathematical operations.

All mathematical functions are exposed in the global context for ease of use. While this is contrary to most JavaScript development, it makes life much simpler for the end user. This library is not intended to be sliced and diced by Node users, so please do not complain to me about namespace pollution. The current behavior is intended: mathematics is a global phenomenon.

Complex numbers are supported as dictionaries with real and imaginary attributes. Fully complex functions include exponentials, logarithms, circular and hyperbolic functions, all implemented with built-in JavaScript functions. Also available on the entire complex plane are the gamma and beta functions, implemented with the Lanczos approximation.

Hypergeometric functions _{0}*F*_{1},
_{1}*F*_{1} and _{2}*F*_{1} of real or
complex arguments are supported as power series. These make available Bessel
*J*, *Y*, *I* and *K* functions on the complex plane, as
well as Airy Ai and Bi functions and Hankel functions. Elliptic integrals and
elliptic functions of real or complex arguments are available using Carlson
symmetric integrals and Jacobi theta function power series. Weierstrass elliptic
functions and related support functions are available. Hermite, Laguerre,
Legendre and Chebyshev polynomials as well as spherical harmonics are
supported.

Supported operations include numerical differentiation and integration of complex functions, integration of ordinary differential equations for real values, eigensystems of real symmetric matrices, real or complex root finding, multidimensional real root finding, real cubic splines and Fourier analysis.