- JavaDoc

# JEP

- Introduction
- Basic Usage
- Variables
- Data types
- Operators
- Functions
- BigDecimal
- FAQ
- Migration
- Version History

# Advanced Features

- Manipulating Expressions
- Components
- Configurable Parser
- Serialization
- Grammar

# Extensions - Overview

The JEP Extensions offer a number of additional features to the standard JEP package:

- Printing: equations can be easily printed or converted to strings with intelligent handling of brackets.
- Simplification: equations like `2.0*x^1.0*1.0+0.0` equations can be simplified to produce `2.0*x`
- Differentiation: equations can be differentiated, these can be specified either programtically or in the equations themselves.
- Vectors and Matrices: Full support for vector and matrix operations.
- Utilities for working with parse trees a number of utilities are available for programtically creating and copying and working with the parse trees.
- Groups Exact arithmetic over integers rationals and other groups.
- Fast Evaluation Evaluation routines for calculations over doubles. Can be up to 10 times as fast.

These facilities are offered by packages in the org.lsmp.djep tree.

Feature | Package (Javadoc)
Printing | org.lsmp.djep.xjep.*
Simplification | org.lsmp.djep.xjep.*, and org.lsmp.djep.sjep.*
re-entrant parser | org.lsmp.djep.xjep.*
Variables with equations | org.lsmp.djep.xjep.*
Macro Functions (functions defined by an equation) | org.lsmp.djep.xjep.*
Utilities for examining and modifying the parse trees | org.lsmp.djep.xjep.*
Differentiation | org.lsmp.djep.djep.* (1)
Basic Vectors and Matrices | org.lsmp.djep.vectorJep.*
Advanced Vectors and Matrices | org.lsmp.djep.matrixJep.* (2)
Calculation over arbitrary groups including exact arithmetic over integers and rationals. | org.lsmp.djep.groupJep.*
Fast evaluation | Single valued org.lsmp.djep.rpe.* Matrix and vectors org.lsmp.djep.mrpe.*

Notes: (1) requires the org.lsmp.djep.xjep.* package.
(2) requires the org.lsmp.djep.xjep.*, org.lsmp.djep.djep.* org.lsmp.djep.vectorJep.* packages.

## Example applications

A number of example applications can be found in the org.lsmp.djepExamples.* package. Theres fall into two types AssignmentExample, XJepExample, PrintExample, DiffExample, VectorExample, VectorPrint, and MatrixSpeed are simple applications which give examples of different features. The other types of examples are console applications which allow equations to be typed in, these are DJepConsole, VectorConsole, MatrixConsole and GroupConsole.

Some JUnit test are available in the org.lsmp.djepJUnit.* package. These test many features of the packages and illustrate some of the features.

## Web pages

- DJep home page
- Example applets JEP, XJep, DJep, VectorJep, MatrixJep, GroupJep.
- JEP home page
- Sourceforge project page includes a help forum
- Javadoc