2011-12-17 9 views
6

抽象代数アドオンはMathematicaにとっては美しいパッケージですが、少なくともGroup Theoryではなく、GAPを打つものはありません。数年前に私がSageを見たとき、私はMmaとのインターフェースを持っていると分かりましたが、それをもっと見ると、いくらか原始的でした(しかし操作上)ことが判明しました。私は、主要な数学ツールを統合/インターフェースするためのプラットフォーム上で、アイントホーフェン工科大学(OpenMath)で作業が行われていることを知っています。しかし、その仕事は失われました。今私の質問に:MathematicaとGAP:インターフェースはありますか?

GAPとMathematicaの間のインターフェイスを誰も共有したいと思いますか?

+1

@Sjoerd nice edit私はしばらく前に作った。 <: - o –

+0

@ mr.wizard今夜は遅かったです。私が遅く見えたら私を許してください。あなたはどの編集を参照していますか? –

+0

修正した文法上のエラーが発生しました。記事全体の編集履歴をご覧ください。 –

答えて

4

1つのオプションは、Sageを中間として使用することです。 SageはMathematicaGAPの両方に接続できます。a)はそのネイティブ構文にGAPやMathematicaの構文のほとんどを変換する方法を知っている)pexpect
Bを使用して、バックグラウンドで自分のコンソールインタフェースを実行している

私はで両方のプログラムでそのセイジ・インタフェースと信じています。

私は数回前にこれをやったし、それがうまく動作注 - しかし、それはあなたがMathematicaノートブック・インターフェースを使用して取得しないことを意味....

A本当に便利なツールになりますMathematicaをコンソールプログラムと同様のインタフェースがMathematica用に書くことができるようにMathematicaをexpect(またはpexpect)までフックする。これは、基本的にSjoerdの答えの第2の引用が示唆しているものです。

+0

私はすでにhttp://www.openmath.org/software/index.htmlでこの問題で行われている作業を見つけましたが、プロジェクトが終了したと思います。多分私はそこから追求すべきです。 –

+1

@nilo Pythonとのインターフェイスのための[Pythonika](http://code.google.com/p/pythonika/)があります。 pexpectを使いやすくするかもしれない。先日、Pythonikaがどのように動作するかを見てきましたが、それは信頼を促すものではありません(例えば、Global'変数を使用して削除し、一般的に乱雑に見えます)。また、pexpectはUnix専用のようです。 – Szabolcs

+0

ありがとうございます。 @サイモンと(ザボリックス)。来年はGroup Theoryで別のコースをやっていきますので、Mathematica/GAPインターフェイスで自分自身で作業するかもしれませんので、さらに調査します。あなたの専門家のアドバイスがあれば、これは実行可能でなければなりません。 –

6

GAP FAQは、このことについてかなり悲観的であるように思わ:

8.1:私は別のプログラムからGAPの関数を呼び出すことができますか?

短い答えはいいえです。本質的にもう少し詳しく説明すると、 GAPシステムのすべての代数機能は GAP言語で書かれているため、実行するにはGAPインタープリタが必要です。インタプリタ はC言語で書かれていますが、多くの理由で同じプロセスの の他のコードとうまく共存することはありません。 GAPをサブルーチンライブラリとしてC、Javaまたは他のプログラムにリンクする賢明な方法はありません。

は、しかし、いくつかの希望があります:

あなたはは、子プロセスでGAPを実行し、その配管、擬似ttysの、UNIXのFIFOのか、いくつかの類似したを使用して と通信することで何ができますかデバイス。 をこのルートの下に移動したい場合は、 が多くのプロジェクトでこれを成功裏に完了しました。 サポートリストに連絡して詳細なアドバイスを受けることができます。

更新

FAQは今も読み出し:

は比較的最近、SAGEの開発者の一部は、全体GAPシステムはCライブラリとして埋め込むことを可能にするlibGAPを生産しています。しかし、個々の関数をそれ自身で埋め込むことはできません。また、libGAPへの最初の呼び出しでも、完全なGAP起動シーケンスを呼び出さなければなりません。

また、GAPをサーバープロセスとして実行し、CのC++プログラムから呼び出す方法はいくつかあります。 GAP側のSCSCPパッケージを参照してください。クライアント側を実装するCおよびC++ライブラリがいくつかあります。

+0

私はそれまで、数年前に来ました。私は仲介者としてJavaプログラムを使用しました。 (コードは修理が必要なPC上にあります)GAPからGAPまで、文字列の読み書きしかできません。 http://www.openmath.org/software/index.htmlはこの問題について多くの作業をしましたが、私はプロジェクトが亡くなったと思います。 –

+0

OpenMathのアイデアは、[SCIEnceプロジェクト](http://www.symcomp.org/)でさらに使用されています。リンクされたページにはSCSCPプロトコルをサポートするシステムのリストがあり、GAPとMathematicaの両方の実装があります。 –

+0

その間、答えに引用されたGAP FAQは少し更新されました:[here](http://www.gap-system.org/Faq/faq.html#8.1)をご覧ください。 @alexander @ –

関連する問題