WebGLやCanvasの登場もあって、Webブラウザ上で複雑な計算処理を行うケースが増えています。もちろんJavaScript自体にも演算機能はありますが、複雑な処理を行うためにはコードも増えがちです。 そこで使ってみたいのがmath.jsです。数式を処理、表示するためのライブラリになります。

math.jsの使い方

複数の値を計算しています。文字列を解釈しているのがポイントです。

文字列をMathJaxを使って画像化しています。また、その計算結果も表示しています。

math.jsのデモコードです。

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

// expressions
math.eval('1.2 * (2 + 4.5)');     // 7.8
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
math.select(3)
    .add(4)
    .multiply(2)
    .done(); // 14

チェーンメソッドに対応しているのが面白いですね。また、evalを使って文字列を計算できるので、ユーザが自由に入力した文字を計算するといった使い方もできます。math.jsはnode、JavaScriptの両方に対応していますのでサーバサイドでもクライアントサイドでも利用できます。

math.jsはnode/JavaScript製、Apache License 2.0のオープンソース・ソフトウェアです。

math.js | an extensive math library for JavaScript and Node.js josdejong/mathjs