2012-07-30 30 views
10

是否存在寫入純C的符號計算庫?符號計算就像操縱符號形式的數學方程一樣。純C符號計算庫C

我知道有MathematicaSympy。但是,我有興趣創建一個符號化計算庫的高性能純C實現,以綁定到腳本語言,特別是Ruby。

似乎他們是這樣一個象徵性的數學圖書館的需要。隨着時間的推移,理想情況下,圖書館可以以類似的方式構建到libgit2,其中項目的中央C實現以及爲創建與其他語言的綁定而分叉的各種實現?

+3

我不知道任何基於C的符號數學庫。然而,C++中有很多它們,所以你總是可以在它們周圍創建一個簡潔的C層。 – ipapadop 2012-07-30 03:51:30

+0

@ipapadop需要一個_pure C_實現...這就是說,你能夠指導我使用概括符號計算算法的資源嗎? – rudolph9 2012-07-30 13:38:14

+0

「概括符號計算」 - 抓住任何更大的[數學教科書](http://www.archive.org/stream/merrimantextbook00merrrich#page/n7/mode/2up)並嘗試提取數學規則並將其放入數學中表達分析儀。 – 2012-08-10 11:24:28

回答

5

你看過GAP嗎?來自其網站:

GAP是一個計算離散代數系統,特別是 強調計算羣理論。 GAP提供了一種編程語言,一個數千個函數庫,其中實現了用GAP語言編寫的代數算法以及代數對象的大數據庫 。另見數學功能的概述和 的描述。 GAP用於研究和教學 研究組及其表示,環,矢量空間, 代數,組合結構等。該系統包括 源代碼,是免費發佈的。您可以學習並輕鬆修改或擴展您的特殊用途。

根據它的Wikipedia page,GAP在C中實現,並且源代碼是免費可用的。

+0

[這裏](http://www.fachgruppe-computeralgebra.de/cms/tiki-index.php?page=Systeme)是我發現的鏈接GAP網站的計算機代數系統列表。 – rudolph9 2012-08-14 12:09:29

+0

Gap甚至有一個並行實現([ParGap](http://www.gap-system.org/Packages/pargap.html)),它建立在MPI之上。 – rudolph9 2012-08-14 12:12:17

+0

GAP的[packages](http://www.gap-system.org/Packages/packages.html)令人驚歎!這正是我一直在尋找的謝謝! – rudolph9 2012-08-14 12:19:59

4

請看公理 - 一個通用的計算機代數系統。你也可以使用Giac - Giac是一個免費的(GPL)C++庫,它是計算內核,它可以在其他C++程序中使用。

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

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

+0

我投你一票,這絕對是很好的知道,但我正在尋找一個純粹的C_實現,我不能接受你的答案...這就是說,你能夠指導我的資源,它概括了符號計算算法? – rudolph9 2012-07-30 13:35:43

2

您可以Maxima啓動和使用GCL將其從Common Lisp的

GCL是官方的Common Lisp的GNU項目轉化爲C.

。它的設計利用系統的C編譯器編譯爲本地目標代碼

確實有一個選項可以保留中間C源文件。

GCL當前編譯本身和主自由軟件Lisp的應用,千里馬,ACL2和公理,通過11個GNU/Linux的架構(X86的PowerPC S390 SPARC手臂阿爾法IA64 HPPA m68k的MIPS MIPSEL),Windows中,的Sparc Solaris和FreeBSD的。

5

Mathomatic在C中實現,可能適合您的目的。

Mathomatic™是一個可移植的命令行教育CAS和計算器軟件,完全用C編程語言編寫。它是GNU寬通用公共許可證(LGPL版本2.1)下發布的免費和開源軟件(FOSS),自1986年以來一直在不斷髮展。該軟件可以象徵性地解決,簡化,組合和比較代數方程,同時根據需要執行廣義標準,複數,模塊化和多項式算術。它做了一些微積分,並且非常容易編譯/安裝,學習和使用。

developer's manual

的Mathomatic源代碼也可以被編譯爲符號數學庫是從任何C兼容的程序可調用並主要獨立於操作系統。