Символическая библиотека вычислений в чистом C

Существует ли символическая библиотека вычислений, написанная чистым C? Символическое вычисление, как при манипулировании математическими уравнениями в символической форме.

Я знаю, что есть Mathematica и Sympy. Но я заинтересован в создании в высокой производительности чистой реализации C библиотеки символических вычислений для привязки к языку сценариев, в частности, для запуска Ruby.

Казалось бы, для них нужна такая символическая библиотека математики. Со временем, в идеале, библиотека могла бы быть построена в аналогичной усадьбе libgit2, где есть центральная реализация C проекта и различные реализации разветвленный с целью создания привязок к другим языкам?

Ответ 1

Вы взглянули на GAP? На своем веб-сайте:

GAP - это система для дискретной дискретной алгебры, с особым акцент на теории вычислительных групп. GAP обеспечивает программирование язык, библиотека тысяч функций, реализующих алгебраические алгоритмы, написанные на языке GAP, а также большие библиотеки данных алгебраических объектов. См. Также обзор и описание математических возможностей. GAP используется в исследованиях и обучении для изучающие группы и их представления, кольца, векторные пространства, алгебр, комбинаторных структур и т.д. Система, включая источник, распространяется свободно. Вы можете изучать и легко изменять или расширьте его для специального использования.

В соответствии со своей страницей Wikipedia GAP реализован на языке C, а исходный код свободно доступен.

Ответ 2

Mathomatic реализован на языке C и может соответствовать вашим целям.

Mathomatic ™ - это портативное программное обеспечение CAS и калькулятор для командной строки, написанное полностью на языке программирования C. Это бесплатное программное обеспечение с открытым исходным кодом (FOSS), опубликованное под лицензией GNU Lesser General Public License (LGPL версии 2.1) и с 1986 года находится в постоянном развитии. Программное обеспечение может символически решать, упрощать, объединять и сравнивать алгебраические уравнения одновременно выполняя обобщенный стандарт, комплексное число, модульную и полиномиальную арифметику, по мере необходимости. Он выполняет некоторые исчисления и очень легко компилирует/устанавливает, учит и использует.

В руководство разработчика:

Исходный код Mathomatic также может быть скомпилирован как символическая математическая библиотека, которая может быть вызвана любой совместимой с C программой и в основном независима от операционной системы.

Ответ 3

Посмотрите на Axiom - универсальную компьютерную алгебраическую систему. Также вы можете использовать Giac - Giac - свободная (GPL) библиотека С++, это ядро ​​вычисления, оно может использоваться внутри других программ на С++.

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

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

Ответ 4

Вы можете начать с Maxima и использовать GCL, чтобы перевести его из Common Lisp в C.

GCL является официальным Common Lisp для проекта GNU. В его конструкции используется компилятор системы C для компиляции в собственный код объекта

Конечно, есть возможность сохранить промежуточные исходные файлы C.

В настоящее время GCL компилирует себя и основные приложения для бесплатного программного обеспечения Lisp, Maxima, ACL2 и Axiom, на одиннадцать архитектур GNU/Linux (x86 powerpc s390 sparc arm alpha ia64 hppa m68k mips mipsel), Windows, Sparc Solaris и FreeBSD.