Jep Examples

Extensions examples

Singular Systems

Arbitary Field Console

This console can perform calculations using various different fields including integers, fractions, decimals with a specific number of decimal places. Use

Note that changing the field resets all variables. The JavaScript versions may not always give the same results as the Java version as JavaScript has different ways of representing numbers.


The factorial(x) function can be used to test the range of the various types. In a webbrowser with the javascript version:

Integer factorials upto 21 can be calculated:
> setfield integer
Setting field INTEGER
> factorial(10)
> factorial(20)
> factorial(21)
> factorial(22)
Doubles work the same
> setfield double
Setting field DOUBLE
> factorial(21)
> factorial(22)
BigIntegers allow much larger values
> setfield bigint
Setting field BIGINT
> factorial(20)
> factorial(30)
> factorial(40)
> factorial(50)

Calculations with fractions

Setting field RATIONAL
> 1/6+1/2
> 1/6*2/5

Jep Extensions

The arbitaty fields are part of Jep Extensions a set of add-ons for the Jep mathematical expression parser. They include

Structured programming Allows block style programming, such as for, while and do loops, as well as java-style if-else blocks.
Fast Evaluation Allows very fast evaluation for double precision, typically 4-5 times faster. This is used by the Implicit plotter applet. It can evaluating (x^2+y^2)^3-4 x^2 y^2 for 250K points in 0.064 seconds, i.e. 220 nano-seconds per evaluation.
MathmlConversion to/from presentation MathML
Simplification removes redundant parts of expression like adding zero or multiplying by 1.
Polynomial Conversion to polynomials. Can be used to compare two polynomials.
Matrices Allows vectors and matrices to be used. Includes a range of vector and matrix functions like determinant and dot product.
Statistical A range of statistical functions
Differentiation Symbolic differentiation of expressions
Fields Allow calculations over specific fields such as the rationals.