Skip to content

High-performance algebraic expression evaluator for Rust

Notifications You must be signed in to change notification settings

boxbeam/crunch_eval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crunch_eval

High-performance algebraic expression evaluator.

Basic usage:

use crunch_eval::expr::Expr;
let expr = Expr::compile("1 + 1").unwrap();
let val: f64 = expr.evaluate_blank().unwrap();
assert_eq!(val, 2.0);

Benchmarks:

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

About

High-performance algebraic expression evaluator for Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages