2012-07-30 49 views
10

Có tồn tại một thư viện tính toán biểu tượng được viết thuần túy C không? Tính toán biểu tượng như trong thao tác các phương trình toán học dưới dạng biểu tượng.Thư viện tính toán tượng trưng trong tinh khiết C

Tôi biết có MathematicaSympy. Nhưng, tôi quan tâm đến việc tạo ra trong một thực hiện C tinh khiết hiệu suất cao của một thư viện tính toán biểu tượng để liên kết với một ngôn ngữ kịch bản, đặc biệt là Ruby để bắt đầu.

Dường như là nhu cầu của họ đối với thư viện toán học mang tính biểu tượng như thế này. Theo thời gian, lý tưởng là thư viện có thể được xây dựng trong một trang viên tương tự như libgit2 nơi có một triển khai C trung tâm của dự án và các triển khai khác nhau được phân nhánh cho mục đích tạo liên kết với các ngôn ngữ khác?

+3

Tôi không biết về bất kỳ thư viện toán học biểu tượng nào dựa trên C. Tuy nhiên, có một số trong C++, vì vậy bạn luôn có thể tạo một lớp C mỏng xung quanh chúng. – ipapadop

+0

@ipapadop cần triển khai __ure C_ ... Điều đó nói rằng, bạn có thể hướng tôi đến các tài nguyên tổng quát hóa các thuật toán tính toán biểu tượng không? – rudolph9

+0

"tổng quát tính toán biểu tượng" huh - lấy bất kỳ [sách giáo khoa toán học] nào lớn hơn (http://www.archive.org/stream/merrimantextbook00merrrich#page/n7/mode/2up) và cố gắng trích xuất các quy tắc toán học và đưa chúng vào toán học của bạn bộ phân tích biểu thức. –

Trả lời

5

Bạn đã xem GAP chưa?Từ trang web của trang web:

GAP là hệ thống cho đại số rời rạc tính toán, cụ thể là nhấn mạnh vào Lý thuyết nhóm tính toán. GAP cung cấp một ngôn ngữ lập trình , một thư viện gồm hàng ngàn hàm thực hiện các thuật toán đại số được viết bằng ngôn ngữ GAP cũng như các thư viện dữ liệu lớn của các đối tượng đại số. Xem thêm tổng quan và mô tả về khả năng toán học của . GAP được sử dụng trong nghiên cứu và giảng dạy cho nghiên cứu các nhóm và đại diện, nhẫn, không gian vectơ của chúng, đại số, cấu trúc tổ hợp và hơn thế nữa. Hệ thống, bao gồm nguồn, được phân phối tự do. Bạn có thể nghiên cứu và dễ dàng sửa đổi hoặc mở rộng nó để sử dụng đặc biệt của bạn.

Theo số Wikipedia page, GAP được triển khai trong C và mã nguồn có sẵn tự do.

+0

[Ở đây] (http://www.fachgruppe-computeralgebra.de/cms/tiki-index.php?page=Systeme) là danh sách các hệ thống đại số máy tính tôi đã tìm thấy liên kết với trang web GAP. – rudolph9

+0

Khoảng cách thậm chí có triển khai song song ([ParGap] (http://www.gap-system.org/Packages/pargap.html)) xây dựng MPI. – rudolph9

+0

[gói] (http://www.gap-system.org/Packages/packages.html) cho GAP thật tuyệt vời! và đây là chính xác những gì tôi đã tìm kiếm cảm ơn bạn !! – rudolph9

4

Hãy xem Axiom - một mục đích chung của Hệ thống đại số máy tính. Ngoài ra bạn có thể sử dụng Giac - Giac là một thư viện C++ miễn phí (GPL), nó là hạt nhân tính toán, nó có thể được sử dụng bên trong các chương trình C++ khác.

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

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

+0

Tôi đã bỏ phiếu cho bạn, điều này chắc chắn là tốt, nhưng tôi đang tìm một triển khai _pure C_ và tôi không thể chấp nhận câu trả lời của bạn ... Điều đó nói rằng, bạn có thể hướng tôi đến các tài nguyên tổng quát hóa các thuật toán tính toán biểu tượng không ? – rudolph9

2

Bạn có thể bắt đầu với Maxima và sử dụng GCL để dịch nó từ Common Lisp để C.

GCL là Common Lisp chính thức cho dự án GNU. Thiết kế của nó sử dụng trình biên dịch C của hệ thống để biên dịch thành mã đối tượng gốc

Chắc chắn có một tùy chọn để bảo toàn các tệp nguồn C trung gian.

GCL hiện biên dịch riêng của mình và các ứng dụng phần mềm miễn phí chính Lisp, Maxima, ACL2 và Axiom, trên mười một kiến ​​trúc GNU/Linux (x86 mips powerpc s390 sparc cánh tay alpha ia64 hppa m68k mipsel), Windows, Sparc Solaris, và FreeBSD.

5

Mathomatic được triển khai trong C và có thể phù hợp với mục đích của bạn.

Mathomatic ™ là phần mềm CAS và máy tính xách tay, dòng lệnh, giáo dục và phần mềm máy tính, được viết hoàn toàn bằng ngôn ngữ lập trình C. Nó là phần mềm tự do nguồn mở (FOSS), được xuất bản theo Giấy phép Công cộng Ít hơn GNU (LGPL phiên bản 2.1) và đã được phát triển liên tục từ năm 1986. Phần mềm này có thể giải quyết, đơn giản, kết hợp và so sánh các phương trình đại số thực hiện tiêu chuẩn tổng quát, số phức, mô đun và đa thức số học, khi cần thiết. Nó thực hiện một số phép tính và rất dễ biên dịch/cài đặt, tìm hiểu và sử dụng.

Từ developer's manual:

Mã nguồn Mathomatic cũng có thể được biên soạn như một thư viện toán học mang tính biểu tượng đó là callable từ bất kỳ chương trình C tương thích và được chủ yếu là hệ điều hành độc lập.

Các vấn đề liên quan