Overview | Package | Class | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## Package org.lsmp.djep.sjep

An advanced simplification/expansion/comparison algorithm.

See:
Description

Interface Summary
PNodeI | An element in a polynomial representation of an expression.

Class Summary
AbstractPNode | Default methods, when more specific methods do not work.
Monomial | Represents an imutable monomial a x^i * y^j * ... * z^k, a constant.
MutiableMonomial | A mutable monomial representing a * x^i * y^j * ... * z^k.
MutiablePolynomial | A mutable polynomial representing a + b + c.
PConstant | Represents a constant.
PFunction | Represents a function.
Polynomial | Represents a polynomial.
PolynomialCreator | Main entry point for simplification routines.
POperator | Represents an operator.
PVariable | Represents a variable.

## Package org.lsmp.djep.sjep Description

An advanced simplification/expansion/comparison algorithm. To use

    PolynomialCreator pc = new PolynomialCreator(jep);
    Node simp = pc.simplify(node);
    Node expand = pc.expand(node);
    boolean flag = pc.equals(node1,node2);
    int res = pc.compare(node1,node2);
    PNodeI poly = pc.createPoly(node);

## How it works

The basic idea is to reduce each equation to a canonical form based on a total ordering of the terms. For example a polynomial in `x` will always be in the form `a+b x+c x^2+d x^3.` This makes comparison of two polynomials easy as it is just necessary to compare term by term, whereas it is difficult to compare `x^2-1` with `(x+1)*(x-1)` without any simplification or reordering.

The precise total ordering is intentionally not defined as it may be later modified. As an illustration some of the rules for the ordering are `0<1<2`, `5<x`, `x<x^2<x^3`, `x<y`.

A polynomial is constructed from a set of monomials by arranging the monomials in order. Likewise a monomial is constructed from a set of variables by arranging the variables in name order.

The algorithm can also work with non-polynomial equations. Functions are order by the name of the function and the ordering of their arguments. Hence `cos(x)<sin(x)<sin(y)`.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

http://www.singularsys.com/jep Copyright © 2007 Singular Systems