我正在寻找一个好的开源数学库,可以做以下事情:
有人知道这样的事吗?
答案 0 :(得分:7)
还有GNU libmatheval,它可以进行评估和区分。集成是一个很大的harder问题,即使对于看起来无辜的集成也是如此。
答案 1 :(得分:5)
Octave可以执行此操作,可以从within a C++ program调用。 您甚至可以使用SWIG轻松地从八度音调调用C ++代码来生成接口。
答案 2 :(得分:3)
我总是使用用C ++编写的muParser进行解析。你不会得到一个可以集成的库;没有一个严肃的重量级图书馆就太难了。存在Maxima,Octave等开源符号集成商,但它们很难与之接口,并且该功能不能轻易地与项目的其余部分分离。
答案 3 :(得分:2)
尝试使用基于Lua的ae库。另请参阅Evaluating Mathematical Expressions using Lua
答案 4 :(得分:1)
另一种方法是在您的应用中嵌入解释语言并使用该语言的数学解析器。
LUA越来越受欢迎 - 请参阅How to embed lua in c++ via SWIG
答案 5 :(得分:1)
我使用Shunting yard algorithm时有类似的编程需求。 像你一样解析infix notation很有用。
答案 6 :(得分:0)
有MathPresso库是解析器,也是数学表达式的JIT编译器,我在性能很重要时使用它。
一些测试: 评估表达式“x / y +(x * x * y + 18.243 * y)/ z” - 其中变量是双精度浮点数。