2012-02-24 27 views
15

Tôi có một biểu thức tùy ý trong một chuỗi. Giả sử: y = 12 * x + 34 Tôi sẽ có x hoặc y và tôi cần giải quyết cho người khác. muParser thực hiện một công việc tuyệt vời để giải quyết biểu mẫu đầu tiên cho x nhưng nó và tất cả các trình phân tích cú pháp toán học khác mà tôi đã tìm thấy không thể thực hiện bất kỳ thao tác nào để biến biểu thức thành: x = (y-34)/12 có thể được giải quyết nếu tôi có y thay vì x.Thư viện nào có thể phân tích và giải một biểu thức toán đơn giản trong C++

Có thư viện C/C++ nào ở đó không phải GNU được mã hóa có thể được sử dụng để giải quyết vấn đề này không?

+0

Bạn có thể kiểm tra hướng dẫn về cách tạo trình biên dịch riêng với LLVM. Về cơ bản, nó chỉ thực hiện điều này, iirc. Bạn có thể phải mở rộng nó rất nhiều, mặc dù. Xem tại đây: http://llvm.org/docs/tutorial/LangImpl1.html – zerm

Trả lời

0

Dường như bạn muốn nhúng CAS thích hợp. Hãy thử GiNaC, nếu nó không đủ mạnh, hãy nghĩ đến việc nhúng Maxima hoặc Axiom (cả hai đều rất nặng và chạy trên đỉnh của Common Lisp).

+0

Thật không may GiNaC là GNU encumbered. – hsikcah

+0

@hsikcah, sau đó có lẽ đặt cược tốt nhất của bạn là sử dụng một CAS nặng (giấy phép không quan trọng) sinh ra trong một quá trình riêng biệt, và giao tiếp với nó thông qua một ổ cắm hoặc một đường ống. –

+0

Tôi hy vọng sẽ tìm thấy một số CAS đơn giản nhẹ để thực hiện công việc. Trong trường hợp của tôi nó là đại số khá đơn giản - sự cần thiết cho một gói xử lý toán học 100MB có khả năng đưa một người đàn ông trên sao Hỏa nghe như một chút quá mức cần thiết. – hsikcah

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