# Author: 小原功任 @ 金沢大学理学部計算科学教室 # URI: http://omega.s.kanazawa-u.ac.jp/ohara/ # $OpenXM: OpenXM/src/ox_math/documents/readme.jp,v 1.3 1999/11/06 21:33:42 ohara Exp $ ☆ Open Mathematica マニュアル 1) Open Mathematica って何? Mathematica を OpenXM のクライアントおよびサーバにするための wrapper です。 このプログラムは、Linux (kernel 2.0.36, 2.2.12) および Solaris 2.6 だけでテストされています。 対象にしている Mathematica の version は 3.0 です。 2) Linux における準備 Linux + glibc2 環境で動作させるには MathLink Library の version 3 release 6 以上が必要です。(私は release 7 でテストしています) 最新の MathLink Library は http://support.wolfram.com/MathLink/Updates/MLDK.html から入手できます。なお、RedHat 6 では http://support.wolfram.com/MathLink/Linux/libML.a を使った方がいいかもしれません。(環境がないのでテストはしてません) 3) このソースから何が生成されますか。 libox.a ライブラリ(このプログラム集以外では意味がないでしょう) bconv バイトコードエンコーダ testclient テスト用の小さなクライアント ox_math OpenMathematica Server math2ox Mathematica の外部プログラム. Mathematica を OX client にするのに必要。 ☆ Mathematica を OX のクライアントとして使おう。 In[1]:= Install["math2ox"] とすると、外部プログラムをロードし、 In[2] := OxStart["ox_sm1"] によって OpenXM サーバに接続する。接続先は ox_sm1 である。 CMO を送る場合には In[3] := OxParse["(CMO_DISTRIBUTED_POLYNOMIAL, (CMO_DMS_GENERIC), (CMO_ZERO))\n"] とすれば、正しい CMO であれば送信される。失敗した場合には何も起こらない. In[4] := OxClose[] とすると、接続が終了する。 ☆ Mathematica を OX のサーバとして使おう。 1) ox_math の制限事項。 control server からの SIGUSR1 は受け取るふりをするだけである。 実際は計算は中断されず、計算が全て終ってから処理される。 2) OpenMathematica は以下の CMO, SM をサポートする。 ☆ これから実装するべき機能 (1) SM_popString が来たときに、CMO_ERROR2 を返すようにする。 (注) ox_sm1 は、長さ0の文字列を返す。 (2) CMO_ERROR2 に SM_popString できない CMO 型の列を返す。 (3) ox の -insecure オプションに対応したクライアントの設計。(done) (4) bconv の逆向き変換。 (5) bconv で (CMO_DISTRIBUTED_POLYNOMIAL,(CMO_DMS_GENERIC),(CMO_ZERO)) が変換できるようにする。(done) (6) mathcap 新仕様への追随。(done) (7) ox_math スタックマシンの挙動を制御できるようにする。 例 executeStringByLocalParser(":indeterminate2string") (8) OxParse で スタックマシンコマンドを扱えるようにする。(done) (9) CMO_ERROR2 の実装に問題あり。 (10) Solaris で正しく走るようにする。(done)