| Crates.io | crunch_eval |
| lib.rs | crunch_eval |
| version | 0.1.1 |
| created_at | 2023-01-15 17:37:48.757786+00 |
| updated_at | 2023-01-15 17:49:36.218338+00 |
| 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 |