Mathematica和GAP:有接口吗?

时间:2011-12-17 13:04:16

标签: interface wolfram-mathematica gap-system

尽管抽象代数附加组件对于Mathematica来说是一个很好的包,但是没有什么能比GAP更好,至少不适用于群论。几年前,当我看着Sage的时候,我发现据说它与Mma有一个接口,但当我仔细观察它时,它变得有点原始(但是可操作)。我知道埃因霍温技术大学(OpenMath)在一个集成/连接主要数学工具的平台上已经完成了工作,我甚至开始研究它。但那项工作迷失了。现在问我的问题:

GAP和Mathematica之间是否存在,是否有人愿意分享GAP和Mathematica之间的界面?

2 个答案:

答案 0 :(得分:6)

GAP FAQ似乎对此非常悲观:

  

8.1:我可以从其他程序调用GAP函数吗?

     

答案简短。从本质上讲,更充分地解释一下   GAP系统的所有代数功能都写在了   GAP语言等需要GAP解释器才能运行。口译员   是用C语言编写的,但不能与其他代码快乐地共存   同样的过程有很多原因,所以没有明智的方法   将GAP链接到C,Java或其他程序作为子例程库。

但是有一些希望:

  

您可以做什么是在子进程中运行GAP并与之通信   它使用管道,伪ttys,UNIX FIFO或一些类似的设备。我们   已经在许多项目中成功完成了这项工作,你可以   如果您想去,请联系支持列表以获取更详细的建议   走这条路。

<强>更新

常见问题解答现在也是:

  

最近,一些SAGE开发人员已经生成了libGAP,它允许将整个GAP系统嵌入为C库。一个人仍然不能自己嵌入单独的函数,并且第一次调用libGAP仍然需要调用完整的GAP启动序列。

     

或者,有许多方法可以将GAP作为服务器进程运行,并从C ++程序中调用它。请参阅GAP方面的SCSCP包。有几个C和C ++库实现了客户端。

答案 1 :(得分:4)

一种选择是使用Sage作为中间人。 Sage可以与MathematicaGAP进行交互 我认为Sage通过以下方式与两个程序接口:
a)使用pexpect在后台运行其控制台界面 b)知道如何将大部分GAP和Mathematica语法翻译成其原生语法。

请注意,之前我已经完成了几次并且它运行正常 - 但这意味着您无法使用Mathematica笔记本界面....

一个非常有用的工具是将Mathematica挂钩到expect(或pexpect),以便可以为Mathematica编写与控制台程序类似的接口。这基本上是Sjoerd的答案中的第二个引语所暗示的。