Release Notes: This release fixes expressions like a*(-2) which were not parsed correctly and improves results for ExpressionExporter with expressions like +a (which are now exported as "a" rather than "+a") and expressions like a*(b) (which are now exported as "a * b" rather than "a * (b)").
Release Notes: Internally expressions obtained through add, substract, multiply, or divide methods are now simplified in the ExpressionCombiner. A bug where value types would be mistakenly defined as DYNAMIC for constants was fixed. Incorrect export of expressions like -e or +e (ADD or SUB without first expression) was fixed.
Release Notes: This release adds several new methods in ExpressionCombiner to allow adding, substracting, multipling, and dividing two expressions easily. It fixes a bug which could appear in some cases in ExpressionExporter.
Release Notes: This release ensures that the Variable.getValue() method will never throw a NullPointerException, even if the Variable has no value yet.
Release Notes: This release avoids a StackTrace exception in the expression combiner if the sub expression is equal to the expression to combine.
Release Notes: This release fixes exporting expressions with associative operations with enclosed parenthesis. For example, the export of 1 + 2 + 3 is 1 + 2 + 3 (which is expected) and not (1 + 2) + 3 (which was correct but uselessly complex). It fixes the jar building keeping some HTML files.
Release Notes: This release adds utility methods in the util package to detect if an Expression is a Constant or a Variable. It adds new simplification patterns: now if two constants are combined in a numeric expression, the resulting Constant result is returned rather than the expression.
Release Notes: All unit tests now pass, and the performance boost in the same scenarios seem to be 50% - 100% compared to version 0.7.
Release Notes: It is now possible to use any expression in functions, even custom functions. For example, "function(a+1)" or "function2(a, c - function3(a, b * sin(a)))" are allowed.
Release Notes: Some cases where the export of an ary expression under an unary operator did not enclose the expression under parenthesis were fixed.