com.singularsys.extensions.polynomials

## Class Polynomial

• All Implemented Interfaces:
PNodeI, java.lang.Comparable<PNodeI>

```public class Polynomial
extends AbstractPNode```
Represents a polynomial. i.e. a sum of terms which are typically `Monomial`s, but can be any `AbstractPNode`. The order of the terms is specified by the total ordering.
Author:
Rich Morris Created on 14-Dec-2004

• ### Fields inherited from class com.singularsys.extensions.polynomials.AbstractPNode

`pc`
• ### Method Summary

All Methods
Modifier and Type Method and Description
`PNodeI` `add(PNodeI node)`
Adds a node to this one.
`PNodeI` `add(Polynomial p)`
`int` `compareTo(PNodeI node)`
Compares this expression to argument.
`int` `compareTo(Polynomial p)`
`void` ```convertToPolyArray(java.lang.String var, java.util.Map<java.lang.Integer,PNodeI> polyArray)```
Internal method for extracting coefficients
`PNodeI` `div(PNodeI node)`
Divides this by the argument.
`boolean` `equalsPNode(PNodeI node)`
True is nodes represent the same parse trees
`PNodeI` `expand()`
complete expansion. (1+x)^2 --> 1+2*x+x^2
`int` `getNTerms()`
The number of terms which make up the polynomial.
`PNodeI` `getTerm(int i)`
Get the n-th term
`PNodeI` `mul(PNodeI node)`
Multiplies this by the argument.
`PNodeI` `negate()`
negates node i.e.
`PNodeI` `sub(PNodeI node)`
Subtracts the argument from this.
`PNodeI` `sub(Polynomial p)`
`Node` `toCompactNode()`
A more efficient representation.
`Node` `toNode()`
Converts the node to standard Jep format.
`java.lang.String` `toString()`
Produces a string representation of the argument.
`static PNodeI` ```valueOf(PolynomialCreator pc, PNodeI[] terms)```
• ### Methods inherited from class com.singularsys.extensions.polynomials.AbstractPNode

`invert, isOne, isZero, pow`
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface com.singularsys.extensions.polynomials.PNodeI

`equals`
• ### Method Detail

• #### valueOf

```public static PNodeI valueOf(PolynomialCreator pc,
PNodeI[] terms)
throws ParseException```
Throws:
`ParseException`

```public PNodeI add(PNodeI node)
throws ParseException```
Description copied from interface: `PNodeI`
Adds a node to this one.
Specified by:
`add` in interface `PNodeI`
Overrides:
`add` in class `AbstractPNode`
Throws:
`ParseException`
• #### sub

```public PNodeI sub(PNodeI node)
throws ParseException```
Description copied from interface: `PNodeI`
Subtracts the argument from this.
Specified by:
`sub` in interface `PNodeI`
Overrides:
`sub` in class `AbstractPNode`
Throws:
`ParseException`

```public PNodeI add(Polynomial p)
throws ParseException```
Throws:
`ParseException`
• #### sub

```public PNodeI sub(Polynomial p)
throws ParseException```
Throws:
`ParseException`
• #### negate

```public PNodeI negate()
throws ParseException```
Description copied from interface: `PNodeI`
negates node i.e. -x
Throws:
`ParseException`
• #### mul

```public PNodeI mul(PNodeI node)
throws ParseException```
Description copied from interface: `PNodeI`
Multiplies this by the argument.
Specified by:
`mul` in interface `PNodeI`
Overrides:
`mul` in class `AbstractPNode`
Throws:
`ParseException`
• #### div

```public PNodeI div(PNodeI node)
throws ParseException```
Description copied from interface: `PNodeI`
Divides this by the argument.
Specified by:
`div` in interface `PNodeI`
Overrides:
`div` in class `AbstractPNode`
Throws:
`ParseException`
• #### equalsPNode

`public boolean equalsPNode(PNodeI node)`
Description copied from interface: `PNodeI`
True is nodes represent the same parse trees
Specified by:
`equalsPNode` in interface `PNodeI`
Overrides:
`equalsPNode` in class `AbstractPNode`
• #### compareTo

`public int compareTo(PNodeI node)`
Description copied from interface: `PNodeI`
Compares this expression to argument. Uses a total ordering of expressions. Returns positive if this node comes after the argument.
Specified by:
`compareTo` in interface `PNodeI`
Specified by:
`compareTo` in interface `java.lang.Comparable<PNodeI>`
Overrides:
`compareTo` in class `AbstractPNode`
• #### compareTo

`public int compareTo(Polynomial p)`
• #### toString

`public java.lang.String toString()`
Description copied from interface: `PNodeI`
Produces a string representation of the argument.
Specified by:
`toString` in interface `PNodeI`
Overrides:
`toString` in class `java.lang.Object`
• #### toNode

```public Node toNode()
throws ParseException```
Description copied from interface: `PNodeI`
Converts the node to standard Jep format.
Throws:
`ParseException`
• #### toCompactNode

```public Node toCompactNode()
throws ParseException```
A more efficient representation. Uses the
Returns:
Throws:
`ParseException`
• #### expand

```public PNodeI expand()
throws ParseException```
Description copied from interface: `PNodeI`
complete expansion. (1+x)^2 --> 1+2*x+x^2
Throws:
`ParseException`
• #### getNTerms

`public int getNTerms()`
The number of terms which make up the polynomial.
Returns:
the number of terms
• #### getTerm

`public PNodeI getTerm(int i)`
Get the n-th term
Parameters:
`i` - index of terms
Returns:
PNodeI for that term.
• #### convertToPolyArray

```public void convertToPolyArray(java.lang.String var,
java.util.Map<java.lang.Integer,PNodeI> polyArray)
throws ParseException```
Description copied from interface: `PNodeI`
Internal method for extracting coefficients
Parameters:
`var` - variable name
`polyArray` - results added to this map
Throws:
`ParseException`