Package edu.jas.structure
Interface MonoidElem<C extends MonoidElem<C>>
-
- Type Parameters:
C- element type
- All Superinterfaces:
java.lang.Comparable<C>,Element<C>,java.io.Serializable
- All Known Subinterfaces:
AlgebraElem<A,C>,FieldElem<C>,GcdRingElem<C>,NoncomRingElem<C>,Polynomial<C>,RegularRingElem<C>,RingElem<C>,StarRingElem<C>
- All Known Implementing Classes:
AlgebraicNumber,BigComplex,BigDecimal,BigDecimalComplex,BigInteger,BigOctonion,BigQuaternion,BigQuaternionInteger,BigRational,Complex,ComplexAlgebraicNumber,GenMatrix,GenPolynomial,GenSolvablePolynomial,GenWordPolynomial,Local,Local,LocalSolvablePolynomial,ModInt,ModInteger,ModLong,MultiVarPowerSeries,Product,QLRSolvablePolynomial,Quotient,Quotient,QuotSolvablePolynomial,RealAlgebraicNumber,RealAlgebraicNumber,RecSolvablePolynomial,RecSolvableWordPolynomial,Residue,Residue,ResidueSolvablePolynomial,ResidueSolvableWordPolynomial,SolvableLocal,SolvableLocalResidue,SolvableQuotient,SolvableResidue,UnivPowerSeries,Word,WordResidue
public interface MonoidElem<C extends MonoidElem<C>> extends Element<C>
Monoid element interface. Defines the multiplicative methods.- Author:
- Heinz Kredel
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Cdivide(C S)Divide this by S.Cinverse()Inverse of this.booleanisONE()Test if this is one.booleanisUnit()Test if this is a unit.default CleftDivide(C a)Left division.default CleftRemainder(C a)Left remainder.Cmultiply(C S)Multiply this with S.default Cpower(long n)Power of this to the n-th.default C[]quotientRemainder(C S)Quotient and remainder by division of this by S.Cremainder(C S)Remainder after division of this by S.default CrightDivide(C a)Right division.default CrightRemainder(C a)Right remainder.default C[]twosidedDivide(C a)Two-sided division.default CtwosidedRemainder(C a)Two-sided remainder.
-
-
-
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.
-
remainder
C remainder(C S)
Remainder after division of this by S.- Parameters:
S-- Returns:
- this - (this / S) * S.
-
quotientRemainder
default C[] quotientRemainder(C S)
Quotient and remainder by division of this by S.- Parameters:
S-- Returns:
- [this/S, this - (this/S)*S].
-
rightDivide
default C rightDivide(C a)
Right division. Returns commutative divide if not overwritten.- Parameters:
a- element.- Returns:
- right, with a * right = this
-
leftDivide
default C leftDivide(C a)
Left division. Returns commutative divide if not overwritten.- Parameters:
a- element.- Returns:
- left, with left * a = this
-
rightRemainder
default C rightRemainder(C a)
Right remainder. Returns commutative remainder if not overwritten.- Parameters:
a- element.- Returns:
- r = this - a * (1/right), where a * right = this.
-
leftRemainder
default C leftRemainder(C a)
Left remainder. Returns commutative remainder if not overwritten.- Parameters:
a- element.- Returns:
- r = this - (1/left) * a, where left * a = this.
-
twosidedDivide
default C[] twosidedDivide(C a)
Two-sided division. Returns commutative divide if not overwritten.- Parameters:
a- element.- Returns:
- [left,right], with left * a * right = this
-
twosidedRemainder
default C twosidedRemainder(C a)
Two-sided remainder. Returns commutative remainder if not overwritten.- Parameters:
a- element.- Returns:
- r = this - (a/left) * a * (a/right), where left * a * right = this.
-
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.
-
-