13 个版本

0.1.2 2022年9月17日
0.1.1 2022年3月24日
0.0.12 2022年3月11日
0.0.9 2021年3月20日
0.0.3 2017年7月19日

#11#math-parser


用于 ferro

MIT 许可证

64KB
1.5K SLoC

文档

一个用于评估数学表达式的库。

使用库

fn main() {
  let input = "sin(0.2)^2 + cos(0.2)^2";
  let expr = ShuntingParser::parse_str(input).unwrap();
  let result = MathContext::new().eval(&expr).unwrap();
  println!("{} = {}", expr, result);
}

MathContext

MathContext 允许在多次调用中保持解析和评估的上下文。您可以通过 setvar 方法实现这一点。

crate 中的工具

该 crate 还包含一个带有数学交互式命令行的 tox 二进制文件。

$ tox
>> 4!
24
>> a = sin(0.2)^2 + cos(0.2)^2
>> a
1
>> (-3)!
NaN
>> (84 % (5/2)) !
1.32934
>> pi * 2.1^2 / cbrt(-(6+3))
-6.660512

依赖项

~1MB
~21K SLoC