### 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 |

#**60** in Parser tooling

**113** downloads per month

Used in ferro

**MIT**license

63KB

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

allows keeping context across multiple invocations to parse and evaluate. You can do this via the `MathContext`

method.`setvar`

## The tool in the crate

The crate also ship with the

binary with a math repl.`tox`

`$`` 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

~1MB

~21K SLoC