2012-07-30 39 views
10

¿Existe una biblioteca de cálculo simbólico escrita en C puro? Cálculo simbólico como en la manipulación de ecuaciones matemáticas en forma simbólica.Biblioteca de cálculo simbólico en C

sé que no es Mathematica, y sympy. Pero, estoy interesado en crear una implementación C pura de alto rendimiento de una biblioteca de computación simbólica para vincularla a un lenguaje de scripting, específicamente Ruby para comenzar.

Parecería que existe la necesidad de una biblioteca de matemática simbólica como esta. Con el tiempo, idealmente, la biblioteca podría construirse de manera similar al libgit2 donde hay una implementación C central del proyecto y varias implementaciones ramificadas con el propósito de crear enlaces a otros lenguajes.

+3

No conozco ninguna biblioteca de matemática simbólica basada en C. Sin embargo, hay una cantidad de ellos en C++, por lo que siempre puedes crear una delgada capa C a su alrededor. – ipapadop

+0

@ipapadop necesita una implementación _pure C_ ... Dicho esto, ¿podría dirigirme a recursos que generalicen los algoritmos de cálculo simbólico? – rudolph9

+0

"generaliza el cómputo simbólico" eh - toma más grande [libro de texto de matemáticas] (http://www.archive.org/stream/merrimantextbook00merrrich#page/n7/mode/2up) y trata de extraer las reglas de matemáticas y ponerlas en tus cálculos analizador de expresión –

Respuesta

5

¿Has echado un vistazo a GAP?Desde su sitio web:

GAP es un sistema para el álgebra discreta computacional, con especial énfasis en Computational Group Theory. GAP proporciona un lenguaje de programación , una biblioteca de miles de funciones que implementan algoritmos algebraicos escritos en el lenguaje GAP, así como grandes bibliotecas de datos de objetos algebraicos. Consulte también la descripción general y la descripción de las capacidades matemáticas . GAP se utiliza en investigación y enseñanza para estudiando grupos y sus representaciones, anillos, espacios vectoriales, álgebras , estructuras combinatorias, y más. El sistema, incluida la fuente , se distribuye libremente. Puede estudiar y modificar fácilmente o extenderlo para su uso especial.

De acuerdo con Wikipedia page, GAP se implementa en C, y el código fuente está disponible libremente.

+0

[Aquí] (http://www.fachgruppe-computeralgebra.de/cms/tiki-index.php?page=Systeme) es una lista de sistemas de álgebra computacional que encuentro vinculada al sitio web de GAP. – rudolph9

+0

Gap incluso tiene una implementación paralela ([ParGap] (http://www.gap-system.org/Packages/pargap.html)) construyendo MPI. – rudolph9

+0

Los [paquetes] (http://www.gap-system.org/Packages/packages.html) para GAP son increíbles. y esto es exactamente lo que he estado buscando gracias! – rudolph9

4

Mire Axiom - un sistema de Álgebra computacional de propósito general. También puede usar Giac - Giac es una biblioteca C++ gratuita (GPL), es el kernel de cálculo, puede usarse dentro de otros programas C++.

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

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

+0

Lo voté, definitivamente es bueno saberlo, pero estoy buscando una implementación _pure C_ y no puedo aceptar su respuesta ... Dicho esto, ¿podría dirigirme a recursos que generalicen algoritmos de cálculo simbólico? ? – rudolph9

2

Puede comenzar con Maxima y utilizar GCL a traducirlo del Common Lisp a C.

GCL es el oficial Lisp Común para el proyecto GNU. Su diseño hace uso del compilador de C del sistema para compilar el código de objeto nativo

Seguramente existe la opción de conservar los archivos fuente C intermedios.

GCL actualmente compila en sí y las aplicaciones de Lisp de software libre de primaria, Maxima, ACL2 y axioma, en once arquitecturas de GNU/Linux (x86 MIPS PowerPC s390 SPARC brazo alfa IA64 hppa m68k mipsel), Windows, Solaris Sparc, y FreeBSD.

5

Mathomatic se implementa en C, y puede adaptarse a sus propósitos.

Mathomatic ™ es un software CAS educativo y de calculadora educativo, de línea de comandos, escrito enteramente en el lenguaje de programación C. Es un software libre y de código abierto (FOSS), publicado bajo la Licencia Pública General Reducida de GNU (LGPL versión 2.1), y ha estado en desarrollo continuo desde 1986. El software puede resolver, simplificar, combinar y comparar simbólicamente las ecuaciones algebraicas de forma simbólica realizando aritmética estándar estándar, de números complejos, modular y polinomial, según sea necesario. Hace algunos cálculos y es muy fácil de compilar/instalar, aprender y usar.

Desde el developer's manual:

El código fuente Mathomatic también puede ser compilado como una biblioteca matemática simbólica que se puede llamar desde cualquier programa compatible con C y está mayormente independiente del sistema operativo.