Fetching contributors…
Cannot retrieve contributors at this time
114 lines (81 sloc) 2.62 KB

Getting Started

This getting started describes how to install, load, and use math.js.


Math.js can be installed using various package managers like npm and bower, or by just downloading the library from the website:

To install via npm, run:

npm install mathjs

Other ways to install math.js are described on the website.


Math.js can be used in node.js and in the browser. The library must be loaded and instantiated. When creating an instance, one can optionally provide configuration options as described in Configuration.


Load math.js in node.js:

// load math.js
var math = require('mathjs');

// use math.js
math.sqrt(-4); // 2i


Math.js can be loaded as a regular JavaScript file in the browser:

  <script src="math.js" type="text/javascript"></script>
  <script type="text/javascript">
    // use math.js
    math.sqrt(-4); // 2i

If support for old browsers (Internet Explorer 8 and older) is required, the es5-shim library must be loaded as well.


Load math.js in the browser using require.js:

  paths: {
    mathjs: 'path/to/mathjs',
require(['mathjs'], function (math) {
  // use math.js
  math.sqrt(-4); // 2i


Math.js can be used similar to JavaScript's built-in Math library. Besides that, math.js can evaluate expressions (see Expressions) and supports chaining (see Chaining).

The example code below shows how to use math.js. More examples can be found in the section Examples.

// functions and constants
math.round(math.e, 3);            // 2.718
math.atan2(3, -3) / math.pi;      // 0.75
math.log(1000, 10);               // 3
math.sqrt(-4);                    // 2i
math.pow([[-1, 2], [3, 1]], 2);   // [[7, 0], [0, 7]]

// expressions
math.eval('12 / (2.3 + 0.7)');    // 4
math.eval('5.08 cm to inch');     // 2 inch
math.eval('sin(45 deg) ^ 2');     // 0.5
math.eval('9 / 3 + 2i');          // 3 + 2i
math.eval('det([-1, 2; 3, 1])');  // -7

// chained operations
    .done(); // 14


To learn more about math.js, check out the available documentation and examples: