Crates.io | crunch_eval |
lib.rs | crunch_eval |
version | 0.1.1 |
source | src |
created_at | 2023-01-15 17:37:48.757786 |
updated_at | 2023-01-15 17:49:36.218338 |
description | A high-performance expression evaluator |
homepage | |
repository | https://github.com/Redempt/crunch_eval |
max_upload_size | |
id | 759587 |
size | 44,644 |
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 |