Releases: bertiqwerty/exmex
Releases · bertiqwerty/exmex
Updated dependencies
nth partial and log
- New functions for the n-th partial derivative
partial_nth
andpartial_iter
- Added
ln
for natural logarithm. We have nowlog2
,log10
,log
, andln
where the latter 2 are identical. - [BREAKING]
e
is an additional way to write Euler's constant in addition toE
. eval_relaxed
does not complain if more variables are passed than parsed.
τ
[Breaking] τ = 2π is now a constant and cannot be used as variable anymore.
One owning expression type
- BREAKING, removed
OwnedFlatEx
and madeFlatEx
owning since parsing time differences are negligible. - Fixed
if
/else
operators forvalue
. - BREAKING,
from_str
is no longer a method ofExpress
. Instead,FlatEx
implementsFromStr
. - BREAKING,
partial
is now a feature to compute partial derivatives that is not activated by default. - BREAKING, fixed de-serialization of traits with custom operand/number literals. A new trait
MatchLiteral
can be used to implement custom operands in a serializable way.
Hotfix operator next to binary operator
The case where a operator is on the left of a binary operator lead to a panic and is now handled as error.
Faster Parsing
- Parsing is signifantly faster, almost factor 2
- Breaking
ExError::from_str
->ExError::new
- Breaking field
prio
ofOperator
is nowi64
instead ofi32
. - Uncompiled expressions accessible via public interface
Display
shows the original string
Value type
- introduced value type feature that allows to combine booleans, floats, and ints in one expression
- Breaking, renamed
DefaultOpsFactory
toFloatOpsFactory
- Added interface for pre-compiled regexes for number literals
Clone for data types sufficient
For the "numeric" data type it is sufficient to implement Clone
. Before, Copy
was required.
Check partial out of bounds
- Added a check if the demanded partial derivative is valid. Before, it would just return 0, since the expression obviously does not depend on it.
- Exposed number of variables to the public interface.
Unicode
Unicode input strings are now supported.