13 releases
| 0.1.2 | Sep 17, 2022 |
|---|---|
| 0.1.1 | Mar 24, 2022 |
| 0.0.12 | Mar 11, 2022 |
| 0.0.9 | Mar 20, 2021 |
| 0.0.3 | Jul 19, 2017 |
#219 in Parser tooling
Used in ferro
64KB
1.5K
SLoC
Documentation
A library for evaluating math expressions.
Using the library
fn main() {
let input = "sin(0.2)^2 + cos(0.2)^2";
let expr = ShuntingParser::parse_str(input).unwrap();
let result = MathContext::new().eval(&expr).unwrap();
println!("{} = {}", expr, result);
}
A MathContext
MathContext allows keeping context across multiple invocations to parse and evaluate. You can do this via the setvar method.
The tool in the crate
The crate also ship with the tox binary with a math repl.
$ tox
>> 4!
24
>> a = sin(0.2)^2 + cos(0.2)^2
>> a
1
>> (-3)!
NaN
>> (84 % (5/2)) !
1.32934
>> pi * 2.1^2 / cbrt(-(6+3))
-6.660512
Dependencies
~1.5MB
~25K SLoC