14

是否存在用纯 C 编写的符号计算库?符号计算,如以符号形式处理数学方程。

我知道有MathematicaSympy。但是,我有兴趣创建符号计算库的高性能纯 C 实现以绑定到脚本语言,特别是 Ruby 启动。

他们似乎需要这样一个符号数学库。随着时间的推移,理想情况下,该库可以以与libgit2类似的方式构建,其中有一个项目的中央 C 实现,并且为了创建与其他语言的绑定而分支了各种实现?

4

4 回答 4

7

Mathomatic是用 C 语言实现的,可能适合您的目的。

Mathomatic™ 是一个可移植的、命令行的、教育性的 CAS 和计算器软件,完全用 C 编程语言编写。它是免费和开源软件 (FOSS),根据 GNU 宽通用公共许可证(LGPL 版本 2.1)发布,自 1986 年以来一直在持续开发中。该软件可以同时对代数方程进行符号求解、简化、组合和比较根据需要执行广义标准、复数、模数和多项式算术。它做了一些计算,并且非常容易编译/安装、学习和使用。

开发人员手册

Mathomatic 源代码也可以编译为符号数学库,可从任何 C 兼容程序调用,并且大部分与操作系统无关。


不幸的是,这个包的作者已经去世,这个软件不再被维护。最新版本存档在 GitHub 中,上面的链接已经更新。

于 2012-08-10T09:57:56.713 回答
5

你看过GAP吗?从其网站:

GAP 是一个计算离散代数系统,特别强调计算群论。GAP 提供了一种编程语言、一个由数千个函数组成的库,这些函数实现了用 GAP 语言编写的代数算法以及代数对象的大型数据库。另请参阅数学功能的概述和描述。GAP 用于研究和教学,以研究组及其表示、环、向量空间、代数、组合结构等。该系统,包括源代码,是免费分发的。您可以学习并轻松修改或扩展它以供您特殊使用。

根据其Wikipedia 页面,GAP 是用 C 实现的,源代码是免费提供的。

于 2012-08-11T15:12:01.940 回答
4

请看 Axiom——一个通用的计算机代数系统。你也可以使用 Giac——Giac 是一个免费的 (GPL) C++ 库,它是计算内核,它可以在其他 C++ 程序中使用。

http://www.axiom-developer.org/

http://www-fourier.ujf-grenoble.fr/~parisse/giac.html

于 2012-07-30T03:59:19.293 回答
3

你可以从Maxima开始,使用GCL将其从 Common Lisp 翻译成 C。

GCL 是 GNU 项目的官方 Common Lisp。它的设计利用系统的 C 编译器来编译为本机目标代码

肯定有保留中间 C 源文件的选项。

GCL 目前在 11 个 GNU/Linux 架构(x86 powerpc s390 sparc arm alpha ia64 hppa m68k mips mipsel)、Windows、Sparc Solaris 和 FreeBSD 上编译自己和主要的自由软件 Lisp 应用程序 Maxima、ACL2 和 Axiom。

于 2012-08-09T19:59:08.180 回答