Panda Noir

JavaScript の限界を究めるブログです。

文字列で表された数式を計算するライブラリ作りました

コードの90%くらいは操車場アルゴリズムの実装と数式を項に分けるのに費やされています。

機能

任意の関数を追加できます。任意の定数を追加できます。かっこがあっても計算できます。

ちなみに 3*-2 のように数学的に正しくない(と数学の先生が言ってた)数式は正しく処理されません。3*(-2)のようにしてください。

標準でサポートしている関数はsin,cos,tan,asin,acos,atan,log.fib,log2(底が2の対数),log10(底が10の対数),loge(底がeの対数),ln(自然対数),log(底省略不可),root,floor,ceiling,exp,pow,random(0から引数の範囲で乱数を生成します),absです。

標準でサポートしている定数はe,pi,π,infinity,inf,∞,phi(黄金比),φ(黄金比)です。

関数の追加は、calc.addFunction(name,function)となります。例えばf(x)=x^xを追加するならcalc.addFunction('f',function(x){return Math.pow(x,x);});となります。

定数の追加はcalc.addConst(name,value)となります。説明不要ですね

使用方法

calculate.jsをダウンロードして任意のディレクトリに入れて使用してください。calc.calculate('sin(3pi)')というふうに書くと計算結果が返ってきます。

終わりに

どこで使うのかイマイチわかりませんが、需要ありそうだったのでライブラリにしました。