适用于 Windows Phone 的 .Net 数学表达式编译器

本文关键字:表达式 编译器 Net Windows Phone 适用于 | 更新日期: 2023-09-27 18:36:11

我正在为Windows Phone制作一个函数绘图应用程序,用户可以在其中输入一个函数供应用程序绘制。我需要一个快速(这里我的意思是最快的)表达式计算器。我见过很多数学解析器,但似乎它们都不允许单独编译和评估。我需要这个,因为我需要以 1000 甚至更好的 30fps 计算大量数据点 (60+)。我发现的所有这些都采用一个字符串并同时解析它+评估。由于我正在为 Windows Phone 制作此代码,由于限制,我无法直接编译 c# 代码

它应该能够做这样的事情:2^2*sin(x/20)+abs(x)/log(x, 2)

解决:

真的很生自己的气,因为我无法用谷歌搜索这个,当我在这里问一个问题时,我自己找到了答案。

这起到了作用:

http://nicoschertler.wordpress.com/2011/09/22/math-parser-using-lambda-expressions/

它是如此之好,以至于 1.5GHz 双核手机可以在 1fps 下以 4/60 像素精度运行它!!

适用于 Windows Phone 的 .Net 数学表达式编译器

很奇怪,因为有很多解析器生成器,作为回报,它们为您提供了随时可用的解析器。这是在解析时定义评估,还是只是构建数学表达式以供以后评估,则由您决定。

通用

解析器生成器的一个缺点是,它是通用的,所以它比你要求的要多。另一方面,当需要时很容易添加一些东西(我不敢碰你链接的代码中的任何内容)。

我自己的框架(即解析器生成器)包含非常简单的计算器(因此它进行数学表达式解析),有两种形式 - 编写为 C# 代码(慢)并生成到操作表(快速 - 当然可能会更快)。

http://sourceforge.net/projects/naivelangtools/