Package edu.jas.application
Class WordResidue<C extends GcdRingElem<C>>
java.lang.Object
edu.jas.application.WordResidue<C>
- All Implemented Interfaces:
AbelianGroupElem<WordResidue<C>>
,Element<WordResidue<C>>
,GcdRingElem<WordResidue<C>>
,MonoidElem<WordResidue<C>>
,NoncomRingElem<WordResidue<C>>
,QuotPair<GenWordPolynomial<C>>
,RingElem<WordResidue<C>>
,Value<GenWordPolynomial<C>>
,Serializable
,Comparable<WordResidue<C>>
public class WordResidue<C extends GcdRingElem<C>>
extends Object
implements GcdRingElem<WordResidue<C>>, NoncomRingElem<WordResidue<C>>, QuotPair<GenWordPolynomial<C>>, Value<GenWordPolynomial<C>>
WordResidue ring element based on GenWordPolynomial with GcdRingElem
interface. Objects of this class are immutable.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
Flag to remember if this residue element is a unit.final WordResidueRing
<C> WordResidue class factory data structure.final GenWordPolynomial
<C> Value part of the element data structure. -
Constructor Summary
ConstructorsConstructorDescriptionThe constructor creates a WordResidue object from a ring factory.WordResidue
(WordResidueRing<C> r, GenWordPolynomial<C> a) The constructor creates a WordResidue object from a ring factory and a polynomial.WordResidue
(WordResidueRing<C> r, GenWordPolynomial<C> a, int u) The constructor creates a WordResidue object from a ring factory, a polynomial and an indicator if a is a unit. -
Method Summary
Modifier and TypeMethodDescriptionabs()
WordResidue absolute value.int
compareTo
(WordResidue<C> b) WordResidue comparison.copy()
Clone this.Denominator.divide
(WordResidue<C> S) WordResidue left division.WordResidue<C>[]
egcd
(WordResidue<C> b) Extended greatest common divisor.boolean
Comparison with any other object.factory()
Get the corresponding element factory.gcd
(WordResidue<C> b) Greatest common divisor.int
hashCode()
Hash code for this residue.inverse()
WordResidue inverse.boolean
Is WordResidue a constant.boolean
isONE()
Is WordResidue one.boolean
isUnit()
Is WordResidue unit.boolean
isZERO()
Is WordResidue zero.monic()
WordResidue monic.multiply
(WordResidue<C> S) WordResidue multiplication.WordResidue multiplication.WordResidue multiplication.negate()
WordResidue negate.Numerator.remainder
(WordResidue<C> S) WordResidue remainder.rightDivide
(WordResidue<C> S) WordResidue right division.WordResidue right remainder.int
signum()
WordResidue signum.subtract
(WordResidue<C> S) WordResidue subtraction.sum
(WordResidue<C> S) WordResidue summation.toScript()
Get a scripting compatible string representation.Get a scripting compatible string representation of the factory.toString()
Get the String representation as RingElem.WordResidue<C>[]
WordResidue two-sided division.WordResidue two-sided remainder.value()
Value.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface edu.jas.structure.MonoidElem
leftDivide, leftRemainder, power, quotientRemainder
-
Field Details
-
ring
WordResidue class factory data structure. -
val
Value part of the element data structure. -
isunit
protected int isunitFlag to remember if this residue element is a unit. -1 is unknown, 1 is unit, 0 not a unit.
-
-
Constructor Details
-
WordResidue
The constructor creates a WordResidue object from a ring factory.- Parameters:
r
- solvable residue ring factory.
-
WordResidue
The constructor creates a WordResidue object from a ring factory and a polynomial.- Parameters:
r
- solvable residue ring factory.a
- solvable polynomial.
-
WordResidue
The constructor creates a WordResidue object from a ring factory, a polynomial and an indicator if a is a unit.- Parameters:
r
- solvable residue ring factory.a
- solvable polynomial.u
- isunit indicator, -1, 0, 1.
-
-
Method Details
-
factory
Get the corresponding element factory.- Specified by:
factory
in interfaceElement<C extends GcdRingElem<C>>
- Returns:
- factory for this Element.
- See Also:
-
value
Value. Returns the value.- Specified by:
value
in interfaceValue<C extends GcdRingElem<C>>
- See Also:
-
numerator
Numerator. Returns the value.- Specified by:
numerator
in interfaceQuotPair<C extends GcdRingElem<C>>
- See Also:
-
denominator
Denominator. Returns 1.- Specified by:
denominator
in interfaceQuotPair<C extends GcdRingElem<C>>
- See Also:
-
copy
Clone this.- Specified by:
copy
in interfaceElement<C extends GcdRingElem<C>>
- Returns:
- Creates and returns a copy of this Element.
- See Also:
-
isZERO
public boolean isZERO()Is WordResidue zero.- Specified by:
isZERO
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Returns:
- If this is 0 then true is returned, else false.
- See Also:
-
isONE
public boolean isONE()Is WordResidue one.- Specified by:
isONE
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Returns:
- If this is 1 then true is returned, else false.
- See Also:
-
isUnit
public boolean isUnit()Is WordResidue unit.- Specified by:
isUnit
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Returns:
- If this is a unit then true is returned, else false.
- See Also:
-
isConstant
public boolean isConstant()Is WordResidue a constant.- Specified by:
isConstant
in interfaceQuotPair<C extends GcdRingElem<C>>
- Specified by:
isConstant
in interfaceValue<C extends GcdRingElem<C>>
- Returns:
- true if this.val is a constant polynomial, else false.
-
toString
Get the String representation as RingElem. -
toScript
Get a scripting compatible string representation.- Specified by:
toScript
in interfaceElement<C extends GcdRingElem<C>>
- Returns:
- script compatible representation for this Element.
- See Also:
-
toScriptFactory
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactory
in interfaceElement<C extends GcdRingElem<C>>
- Returns:
- script compatible representation for this ElemFactory.
- See Also:
-
compareTo
WordResidue comparison.- Specified by:
compareTo
in interfaceComparable<C extends GcdRingElem<C>>
- Specified by:
compareTo
in interfaceElement<C extends GcdRingElem<C>>
- Parameters:
b
- WordResidue.- Returns:
- sign(this-b), 0 means that this and b are equivalent in this residue class ring.
-
equals
Comparison with any other object. -
hashCode
public int hashCode()Hash code for this residue. -
abs
WordResidue absolute value.- Specified by:
abs
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Returns:
- the absolute value of this.
- See Also:
-
sum
WordResidue summation.- Specified by:
sum
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- this+S.
-
negate
WordResidue negate.- Specified by:
negate
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Returns:
- -this.
- See Also:
-
signum
public int signum()WordResidue signum.- Specified by:
signum
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Returns:
- signum(this).
- See Also:
-
subtract
WordResidue subtraction.- Specified by:
subtract
in interfaceAbelianGroupElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- this-S.
-
divide
WordResidue left division.- Specified by:
divide
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- left, with left*S = this
-
twosidedDivide
WordResidue two-sided division.- Specified by:
twosidedDivide
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Specified by:
twosidedDivide
in interfaceNoncomRingElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- [left, right] with left*S*right + remainder = this.
-
rightDivide
WordResidue right division.- Specified by:
rightDivide
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Specified by:
rightDivide
in interfaceNoncomRingElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- right, with S * right = this
-
inverse
WordResidue inverse.- Specified by:
inverse
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Returns:
- S with S = 1/this if defined.
- See Also:
-
remainder
WordResidue remainder.- Specified by:
remainder
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- this - (this/S) * S.
-
rightRemainder
WordResidue right remainder.- Specified by:
rightRemainder
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Specified by:
rightRemainder
in interfaceNoncomRingElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- r = this - S * (S/right), where S * right = this.
-
twosidedRemainder
WordResidue two-sided remainder.- Specified by:
twosidedRemainder
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Specified by:
twosidedRemainder
in interfaceNoncomRingElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- r = this - left*S*right.
-
multiply
WordResidue multiplication.- Specified by:
multiply
in interfaceMonoidElem<C extends GcdRingElem<C>>
- Parameters:
S
- WordResidue.- Returns:
- this*S.
-
multiply
WordResidue multiplication.- Parameters:
S
- GenWordPolynomial.- Returns:
- this*S.
-
multiply
-
multiply
WordResidue multiplication.- Parameters:
e
- word.- Returns:
- this*e.
-
monic
WordResidue monic.- Returns:
- this with monic value part.
-
gcd
Greatest common divisor.- Specified by:
gcd
in interfaceRingElem<C extends GcdRingElem<C>>
- Parameters:
b
- other element.- Returns:
- gcd(this,b).
-
egcd
Extended greatest common divisor. Note: Not implemented, throws UnsupportedOperationException.- Specified by:
egcd
in interfaceRingElem<C extends GcdRingElem<C>>
- Parameters:
b
- other element.- Returns:
- [ gcd(this,b), c1, c2 ] with c1*this + c2*b = gcd(this,b).
-