A java infix evaluator based on "Shunting Yard" algorithm.
Evaluate an arithmetic expression is as simple as:
Double result = new DoubleEvaluator().evaluate("(e^3-1)*sin(pi/4)*ln(pi^2)").
But Javaluator provides you with much more ...
- Functions support, including variable argument count.
- Constants support: e, pi, etc ...
- Variables support: Example sin(x) for x = pi/4.
- Highly configurable: Reduce the built-in operator or function sets, define your own brackets.
- Extensible: Define your own grammar, or extends the existing one.
- Localizable: Define localized names for functions or constants.
- Syntax check
- Small footprint: <16kB, no additionnal library required.
- Fully documented
Please visit the project site to learn more : http://javaluator.sourceforge.net
If you use Javaluator in your product, we will be happy to add a link to your product in the Javaluator web site. Send an email to firstname.lastname@example.org.
If you think Javaluator is valuable, vote up below.
The Wikipedia page about operator precedence explains Javaluator uses the standard operator precedence (-2^2=-4). Excel or bash shell script use another convention where -2^2=4. This can be set using the DoubleEvaluator.Style class in version 1.2.1. Support is available through the tickets and the discussion tabs.
Works great, but it is hard to get help. Maby the javaluator should have had a forum? Minor bug however: -2^2 = -4 (-2)^2 = 4