edu.jas.structure
Interface MonoidElem<C extends MonoidElem<C>>

Type Parameters:
C - element type
All Superinterfaces:
java.lang.Cloneable, java.lang.Comparable<C>, Element<C>, java.io.Serializable
All Known Subinterfaces:
AlgebraElem<A,C>, FieldElem<C>, GcdRingElem<C>, Polynomial<C>, RegularRingElem<C>, RingElem<C>, StarRingElem<C>
All Known Implementing Classes:
AlgebraicNumber, BigComplex, BigDecimal, BigInteger, BigOctonion, BigQuaternion, BigRational, Complex, ComplexAlgebraicNumber, GenMatrix, GenPolynomial, GenSolvablePolynomial, Local, Local, ModInteger, ModLong, MultiVarPowerSeries, Product, Quotient, Quotient, RealAlgebraicNumber, RealAlgebraicNumber, Residue, Residue, UnivPowerSeries

public interface MonoidElem<C extends MonoidElem<C>>
extends Element<C>

Monoid element interface. Defines the multiplicative methods.

Author:
Heinz Kredel

Method Summary
 C divide(C S)
          Divide this by S.
 C inverse()
          Inverse of this.
 boolean isONE()
          Test if this is one.
 boolean isUnit()
          Test if this is a unit.
 C multiply(C S)
          Multiply this with S.
 C remainder(C S)
          Remainder after division of this by S.
 
Methods inherited from interface edu.jas.structure.Element
compareTo, equals, factory, hashCode, toScript, toScriptFactory
 

Method Detail

isONE

boolean isONE()
Test if this is one.

Returns:
true if this is 1, else false.

isUnit

boolean isUnit()
Test if this is a unit. I.e. there exists x with this.multiply(x).isONE() == true.

Returns:
true if this is a unit, else false.

multiply

C multiply(C S)
Multiply this with S.

Parameters:
S -
Returns:
this * S.

divide

C divide(C S)
Divide this by S.

Parameters:
S -
Returns:
this / S.

remainder

C remainder(C S)
Remainder after division of this by S.

Parameters:
S -
Returns:
this - (this / S) * S.

inverse

C inverse()
Inverse of this. Some implementing classes will throw NotInvertibleException if the element is not invertible.

Returns:
x with this * x = 1, if it exists.