【发布时间】:2011-07-15 19:05:55
【问题描述】:
我正在寻找一个使用变量、自定义运算符和用户定义函数的 .NET 数学解析器... 从今天开始,我一直在使用 muParser(有一个用于 .NET 的打包版本),但我发现它太慢了!
有人知道另一个运行良好的数学解析器(免费!)吗?
我试过 NCalc,但它没有变量,所以它失败了..
【问题讨论】:
我正在寻找一个使用变量、自定义运算符和用户定义函数的 .NET 数学解析器... 从今天开始,我一直在使用 muParser(有一个用于 .NET 的打包版本),但我发现它太慢了!
有人知道另一个运行良好的数学解析器(免费!)吗?
我试过 NCalc,但它没有变量,所以它失败了..
【问题讨论】:
我使用IronPython 作为表达式评估器。
【讨论】:
我今天发现这三个,都支持变量和用户定义的函数,但是似乎只有 muParser 支持自定义运算符:
对于我的小玩具项目,我选择了Math Parser .NET,因为它支持^ 的幂,而 NCalc 不支持,而且 muParser 不知何故对我没有那么大的吸引力。还有另一个好处:Math Parser .NET 支持将本机 C# 委托作为自定义函数!其他库提供的解决方案看起来并不那么优雅。
【讨论】:
您可以尝试 Mathos Parser (https://mathosparser.codeplex.com/),它允许您添加自定义运算符、自定义变量和自定义函数。它支持来自 Math 命名空间的几乎所有操作,并具有一组预构建的操作符。由于解析器没有那么多依赖项,因此只需将源代码粘贴到您的项目中就很容易(不到 500 行代码)!
【讨论】:
试试讽刺 (http://irony.codeplex.com)。它允许你解析表达式,你可以用它做任何事情:构建一个用于极快计算的委托,突出显示语法,或者像我的项目中一样,转换为 Latex 并在数学公式中显示它的表示。
【讨论】:
您应该看看 Jace.NET。 Jace 是高性能 c# 数学解析器,支持所有数学运算、变量、(自定义)函数...它支持 Microsoft 的所有主要 .NET 平台:.NET 4.x、Windows Phone 7 和 8、Windows Store。
【讨论】: