2 个不稳定版本
0.2.0 | 2023年7月3日 |
---|---|
0.1.0 | 2023年7月3日 |
#255 in #expression
23KB
342 行
Rust数学引擎
这个crate旨在提供使用Rust语法和习惯用法定义可修改、可解析、可评估数学表达式的工具。
lib.rs
:
解析和操作数学表达式的工具
Math-engine是一套用于操作数学表达式的工具。这些表达式可能包含各种操作和变量。该crate定义了构建、评估和操作此类表达式的工具。
示例
Math-engine允许您构建变量表达式,并在上下文中评估它们,即一组每个变量的值。
let expr = Expression::parse("1.0 + 3.0 * (4.0 - x)").unwrap();
let ctx = Context:new().with_variable("x", 3.0);
let eval = expr.eval_with_context(&ctx).unwrap();
assert!(eval, 4.0);
实现了基本运算符,以实现易于使用的构建
let e1 = Expression::constant(3.0);
let e2 = Expression::variable("x");
let e = e1 + e2;
println!("{}", e);
此外,还提供了一些有用的操作来操作表达式,例如通过常数传播进行微分和简化
let e1 = Expression("1.0 * y + 2.0 * x").unwrap();
let deriv = e1.derivate("x");
println!("{}", deriv);
let simp = deriv.constant_propagation().unwrap();
println!("{}", simp);
依赖关系
~2MB
~41K SLoC