math_parser 1.5.2
math_parser: ^1.5.2 copied to clipboard
Process math expressions, like formulas or parts of equations, convert them to machine-readable form, and calculate them.
1.5.2 #
- Added
MathComparison.evaluate()- by jersonal-com
1.5.1 #
- Increased upper SDK constraint to declare support for Dart 3
- Documentation fixes
1.5.0 #
1.4.0 #
Custom Functions #
- Define custom functions and redefine built-in functions when parsing an expression. See docs and example.
- Use
MathNodeExpression.getPotentialFunctionNames()to detect potentially used functions in a string. - Use period in the middle of custom variable and function names.
- Under-hood, functions now support multiple comma separated arguments, so you can supply multiple arguments to your custom function.
- Detect custom functions im math tree using
MathExpression.getUsedFreeformFunctions().
Breaking Changes #
MissingFunctionArgumentListExceptionrenamed toOutOfRangeFunctionArgumentListExceptionMathNodeExpression.fromString()may throw other errors besidesMathExceptionMathNodeExpression.getPotentialVariableNames()is replaced byMathNodeExpression.getPotentialDefinable()- Instead of
log[base](arg), you should passlog(base, arg)syntax now - Period is an allowed character in the middle of a variable name now
Misc. #
UnexpectedClosingBracketExceptionandBracketsNotClosedExceptioncan now tell where the problem probably happened.- New MathParseException's
InvalidFunctionNameException,DuplicateDeclarationException,InvalidFunctionArgumentsDeclaration.
1.3.1 #
- Variable validation fix
1.3.0 #
Math Tree #
- Important change:
MathNodeis now a class ofMathExpressioninterface. Compared to MathNode, MathExpression may return null incalc()method. - New:
getUsedVariables()method forMathExpressionandMathNode. This method goes down the math tree to find any uses ofMathVariableand returns names of all variables. - New:
MathExpressionobject family -MathComparison:MathComparisonEquation(=)MathComparisonGreater(>)MathComparisonLess(<)
Parsing #
- New:
MathNodeExpression.fromStringExtended()method allows you to interpret equations and comparisons. Compared tofromString, it returnsMathExpressioninstead ofMathNode, since comparisons can't guarantee result. - New:
MathNodeExpression.getPotentialVariableNames()analyzes given math expression string for possible use of variables. Refer to documentation for rough edges before using it. - New:
MathNodeExpression.builtInVariablesgives a list of built-in predefined variable names. - New:
MathNodeExpression.isVariableNameValid()lets you check if the parser can work with a given name.
Misc. #
- Changed input parameters type for
CantProcessExpressionException. - Small documentation fixes.
1.2.0 #
- Fix README.
- Moved integrating features to a separate package library
math_parser_integrate.
1.1.0 #
- Custom variables support.
MathFunctionXdeprecated.MathVariableintroduced.- You need to pass an instance of
MathVariableValuesinstead of a num to thecalc()function now.
1.0.0 #
- Initial version.