Built in Functions

There are a number of built-in functions, that usually just map with the corresponding java.util.Math methods (so all of the same restrictions apply), this functions are:

Trigonometric Functions:

  • sin(x): Sine of an angle expressed in radians
  • cos(x): Cosine of an angle expressed in radians
  • tan(x): Tangent of an angle expressed in radians

Inverse Trigonometric:

  • asin(x): Arc sine in the range [-π/2, π/2)
  • acos(x): Arc cosine in the range [0, π)
  • atan(x): Arc tangent in the range [-π/2, π/2)

Hyperbolic Functions:

  • sinh(x): Hyperbolic sine (e^x - e^(-x)) / 2
  • cosh(x): Hyperbolic cosine (e^x + e^(-x)) / 2
  • tanh(x): Hyperbolic tangent (e^x - e^(-x)) / (e^x + e^(-x))


  • log(x): Base 10 logarithm of x
  • log1p(x): Base 10 logarithm of (x + 1)
  • log10(x): Base 10 logarithm of x
  • log2(x): Base 2 logarithm of x


  • pow(b, e): b to the power of e
  • sqrt(x): Square root of x
  • cbrt(x): Cube root of x
  • exp(x): e to the power of x
  • expm1(x): e to the power of x minus 1 (e^x - 1)
  • signum(x):Note Signum of x (-1, 0, 1 for < 0, = 0 and > 0 respectively)
  • abs(x): Absolute value of x
  • ceil(x): First integer closest to negative infinity greater than or equal x
  • floor(x): First integer closest to positive infinity less than or equal x


  • pi(): Ratio of the circumference of a circle to its diameter 3.14159265358979323846
  • e(): Base of the natural logarithm 2.7182818284590452354

Disabling built-in functions

Since version 0.6-riddler (28c731ea) you can disable all built-in functions like this:

    Expression e = new ExpressionBuilder("x + 3")
                      .disableBuiltInFunctions() //<--

Remember that since constants are also defined as functions this will also disable them.


The code for the functions is here.

Updated by Federico Vera almost 2 years ago · 10 revisions

Go to top