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
,GenExteriorPolynomial
,GenMatrix
,GenPolynomial
,GenSolvablePolynomial
,GenWordPolynomial
,IndexList
,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 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.default C
leftDivide(C a)
Left division.default C
leftRemainder(C a)
Left remainder.C
multiply(C S)
Multiply this with S.default C
power(long n)
Power of this to the n-th.default C[]
quotientRemainder(C S)
Quotient and remainder by division of this by S.C
remainder(C S)
Remainder after division of this by S.default C
rightDivide(C a)
Right division.default C
rightRemainder(C a)
Right remainder.default C[]
twosidedDivide(C a)
Two-sided division.default C
twosidedRemainder(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.
-
-