High-performance algebraic expression evaluator.
use crunch_eval::expr::Expr;
let expr = Expr::compile("1 + 1").unwrap();
let val: f64 = expr.evaluate_blank().unwrap();
assert_eq!(val, 2.0);
Expression: 6.5*7.8^2.3 + (3.5^3+7/2)^3 -(5*4/(2-3))*4 + 6.5*7.8^2.3 + (3.5^3+7/2)^3 -(5*4/(2-3))*4 + 6.5*7.8^2.3 + (3.5^3+7/2)^3 -(5*4/(2-3))*4 + 6.5*7.8^2.3 + (3.5^3+7/2)^3 -(5*4/(2-3))*4
Time to compile long expression:
compile | time/op (µs) |
---|---|
crunch_eval | 13.56 |
evalexpr | 32.36 |
Time to evaluate long expression:
eval | time/op (ns) |
---|---|
crunch_eval | 2.97 |
evalexpr | 5.96 |
Expression: double(x + 1)
Time to evaluate expression with variable and function:
eval | time/op (ns) |
---|---|
crunch_eval | 48.46 |
evalexpr | 341.83 |