纯C中的符号计算库

时间:2012-07-30 03:44:43

标签: c math language-binding

是否存在编写纯C的符号计算库?符号计算在象征形式下操纵数学方程。

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

似乎他们需要这样一个象征性的数学图书馆。随着时间的推移,理想情况下,库可以在libgit2的类似庄园中构建,其中有一个项目的中央C实现,并且各种实现分支以创建与其他语言的绑定?

4 个答案:

答案 0 :(得分:5)

Mathomatic在C中实施,可能适合您的目的。

  

Mathomatic™是一种便携式命令行教育CAS和计算器软件,完全采用C编程语言编写。它是免费的开源软件(FOSS),根据GNU宽通用公共许可证(LGPL版本2.1)发布,自1986年以来一直在不断发展。该软件可以同时象征性地解决,简化,组合和比较代数方程根据需要执行广义标准,复数,模数和多项式算术。它做了一些微积分,很容易编译/安装,学习和使用。

来自developer's manual

  

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

答案 1 :(得分:5)

你看过GAP了吗?从其网站:

  

GAP是计算离散代数的系统,具体而言   强调计算群论。 GAP提供编程   语言,一个实现代数的数千个函数库   用GAP语言编写的算法以及大型数据库   代数对象。另请参阅概述和说明   数学能力。 GAP用于研究和教学   学习小组及其表示,环,向量空间,   代数,组合结构等。该系统包括   来源,自由发行。你可以学习并轻松修改或   扩展它以供您特殊使用。

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

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:2)

您可以从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。 / p>