com.singularsys.extensions.polynomials

## Class Monomial

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

```public class Monomial
extends AbstractPNode```
Represents an immutable monomial a x^i * y^j * ... * z^k, a constant.
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.
`int` `compareTo(PNodeI node)`
Compare this to argument. x < y 2 x < 3 x x < x^2 x^2 < x^3 x < x y TODO x y < x^2
`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
`PConstant` `getCoeff()`
`int` `getNVars()`
`PNodeI` `getPower(int i)`
Returns the i-th power
`PNodeI` `getVar(int i)`
Returns the i-th variable
`PNodeI` `invert()`
inverts node i.e. 1/x
`PNodeI` `mul(PNodeI node)`
Multiplies this by the argument.
`PNodeI` `negate()`
negates node i.e.
`PNodeI` `pow(PNodeI pow)`
Raise this to the argument.
`PNodeI` `sub(PNodeI node)`
Subtracts the argument from this.
`Node` `toCompactNode()`
Converts to a more efficient Jep 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, PConstant c, PNodeI v)```
`static PNodeI` ```valueOf(PolynomialCreator pc, PConstant coefficient, PNodeI[] terms, PNodeI[] pows)```
`static PNodeI` ```valueOf(PolynomialCreator pc, PConstant c, PNodeI node, PNodeI power)```
• ### Methods inherited from class com.singularsys.extensions.polynomials.AbstractPNode

`isOne, isZero`
• ### 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,
PConstant c,
PNodeI v)```
• #### valueOf

```public static PNodeI valueOf(PolynomialCreator pc,
PConstant c,
PNodeI node,
PNodeI power)```
• #### valueOf

```public static PNodeI valueOf(PolynomialCreator pc,
PConstant coefficient,
PNodeI[] terms,
PNodeI[] pows)```
• #### 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`
• #### pow

```public PNodeI pow(PNodeI pow)
throws ParseException```
Description copied from interface: `PNodeI`
Raise this to the argument.
Specified by:
`pow` in interface `PNodeI`
Overrides:
`pow` in class `AbstractPNode`
Throws:
`ParseException`
• #### negate

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

```public PNodeI invert()
throws ParseException```
Description copied from interface: `PNodeI`
inverts node i.e. 1/x
Specified by:
`invert` in interface `PNodeI`
Overrides:
`invert` in class `AbstractPNode`
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`
• #### 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)`
Compare this to argument. x < y 2 x < 3 x x < x^2 x^2 < x^3 x < x y TODO x y < x^2
Specified by:
`compareTo` in interface `PNodeI`
Specified by:
`compareTo` in interface `java.lang.Comparable<PNodeI>`
Overrides:
`compareTo` in class `AbstractPNode`
Returns:
-1,0,1
• #### 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```
Description copied from interface: `PNodeI`
Converts to a more efficient Jep representation. Exploits the feature of the Add and Multiply operators which allow the operators to work as n-ary operators. Order of elements is altered to make for more efficient operation.
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`
• #### getCoeff

`public PConstant getCoeff()`
Returns:
Returns the coefficient.
• #### getNVars

`public int getNVars()`
Returns:
return the number of variables.
• #### getVar

`public PNodeI getVar(int i)`
Returns the i-th variable
Parameters:
`i` -
Returns:
PNodeI for the i-th variable in product
• #### getPower

`public PNodeI getPower(int i)`
Returns the i-th power
Parameters:
`i` -
Returns:
PNodeI for the power of the i-th variable in product
• #### 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`