Article · Wikipedia archive · Last revised Jun 2, 2026

Exp4j

exp4j is a small Java library for evaluation of mathematical expressions. It implements Dijkstra's Shunting-yard algorithm to translate expressions from infix notation to Reverse Polish notation and calculates the result using a simple Stack algorithm.

Last revised
Jun 2, 2026
Read time
≈ 1 min
Length
159 w
Citations
1
Source
exp4j
Stable release
0.4.3 / 2014-10-10
Written inJava
TypeMath
LicenseApache License 2.0
Websitewww.objecthunter.net/exp4j/
Repository

exp4j is a small Java library for evaluation of mathematical expressions.1 It implements Dijkstra's Shunting-yard algorithm to translate expressions from infix notation to Reverse Polish notation and calculates the result using a simple Stack algorithm.

Features

  • Variables can be used in expressions
  • exp4j comes with a set of common built-in functions
  • Users can create and use their own custom operators
  • Users can create and use their own custom functions

License terms

exp4j is released under the terms of the Apache License 2.0

Examples of usage

Calculating the result of 3 sin ( π ) 2 e {\displaystyle 3*{\frac {\sin {(\pi )}-2}{e}}} can be done in the following way:

Expression e = new ExpressionBuilder("3 * (sin(pi) - 2 )/ e")
        .variables("pi", "e")
        .build()
        .setVariable("pi", Math.PI)
        .setVariable("e", Math.E);
double result = e.evaluate();
See also

See also

  • mXparser - Mathematical Expressions Parser / Evaluator
References

References

  1. "Maven Central Repository Search". search.maven.org. Retrieved 2022-03-16.