Releases: bertiqwerty/exmex
Releases · bertiqwerty/exmex
Fix panic with custom number literals
Fixed Issue #18. The bug was spotted by fuzzing.
Constants
- Added constants in terms of constant operators
- Default operators now contain π as
PI
and Euler's number asE
. - BREAKING - interface of
Operator
changed - Fixed compilation of
x-1+2
.
Traits and serializable custom operators
- BREAKING the interface all over the place
- Expressions
FlatEx
andOwnedFlatEx
now implement the traitExpress
and can be created in a unified way. - Custom operators can be serialized with
serde
. To this end we introduced an operator-factory-trait and a macro for reduced boilerplate. Operator factories are used as generic parameters of the expression types. - Parsing functions refactored
Hotfix missing trait implementations
Dervied standard trait implementations for OwnedFlatEx
.
Owned expression
Added a new expression type that takes longer during parsing but does not need a lifetime parameter.
Basic serde support
- Added basic serde support via un-parsing/re-parsing.
- Fixed panic where both operators are
None
. - Removed some duplicate checks after checking pre-conditions.
Bugfix outer derivative of -
Partial Derivatives
- Partial derivatives of expressions can be computed.
- BREAKING CHANGE! Variables' values now have to be passed to
FlatEx::eval
according to the alphatical order of the variable names instead of the order of occurence in the string to be parsed. - Fixed
panic
s triggered by garbage-in with the help of fuzzing
Hotfix 32 nodes
Fixed that flat expressions with more than 32 nodes panick, see Issue #6.
Display unparsed expression
- implemented
unparse
that transforms expressions, i.e., instances ofFlatEx
, into a string, see also discussion in #1 - implemented display in terms of unparse