ブラウザで使える数式処理システムを作った

こんなの



昨日、OpenSearchから使える関数電卓を作ろうと思って、イロイロ考えているうちに数式も処理したくなって、イロイロ調べたところ、GiNaC is Not a CASというC++の数式処理ライブラリを使うとよいらしいのでコードを見たら、ginshという対話ツールにBisonで生成したparserが付いてて、コレ使ってライブラリ作れば一瞬でできるやんけと思ったので、朝からがんばって作ってみました。

http://cas.udp.jp/:title=
式を展開したり、簡略化したり、微分したり、連立方程式を解いたりできます。
まだ操作がアレですが、コレを使えるようにして、アイコンがMSYSと間違えるやすいMaximaをもう使わなくてもいいようにしたい。

やったことは、

  1. ginshの入出力をバッファで指定できる + 出力フォーマットいじれるようなライブラリを作成して共有ライブラリにした(libgineval)
  2. 1のライブラリを使ってWeb APIを作った
  3. 2のAPIを使った操作画面をjQueryとMathJax等を使って作った
  4. OpenSearchに対応した

くらいです。ガンバッタ