Class AlgebraicNumber<C extends RingElem<C>>
java.lang.Object
edu.jas.poly.AlgebraicNumber<C>
- All Implemented Interfaces:
AbelianGroupElem<AlgebraicNumber<C>>, Element<AlgebraicNumber<C>>, GcdRingElem<AlgebraicNumber<C>>, MonoidElem<AlgebraicNumber<C>>, RingElem<AlgebraicNumber<C>>, Serializable, Comparable<AlgebraicNumber<C>>
public class AlgebraicNumber<C extends RingElem<C>>
extends Object
implements GcdRingElem<AlgebraicNumber<C>>
Algebraic number class. Based on GenPolynomial with RingElem interface.
Objects of this class are immutable.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intFlag to remember if this algebraic number is a unit.final AlgebraicNumberRing<C> Ring part of the data structure.final GenPolynomial<C> Value part of the element data structure. -
Constructor Summary
ConstructorsConstructorDescriptionThe constructor creates a AlgebraicNumber object from a GenPolynomial object module.The constructor creates a AlgebraicNumber object from AlgebraicNumberRing modul and a GenPolynomial value. -
Method Summary
Modifier and TypeMethodDescriptionabs()AlgebraicNumber absolute value.intAlgebraicNumber comparison.copy()Copy this.divide(AlgebraicNumber<C> S) AlgebraicNumber division.AlgebraicNumber<C>[]egcd(AlgebraicNumber<C> S) AlgebraicNumber extended greatest common divisor.booleanComparison with any other object.factory()Get the corresponding element factory.gcd(AlgebraicNumber<C> S) AlgebraicNumber greatest common divisor.getVal()Get the value part.inthashCode()Hash code for this AlgebraicNumber.inverse()AlgebraicNumber inverse.booleanisONE()Is AlgebraicNumber one.booleanIs AlgebraicNumber a root of unity.booleanisUnit()Is AlgebraicNumber unit.booleanisZERO()Is AlgebraicNumber zero.monic()AlgebraicNumber monic.AlgebraicNumber multiplication.multiply(AlgebraicNumber<C> S) AlgebraicNumber multiplication.multiply(GenPolynomial<C> c) AlgebraicNumber multiplication.negate()AlgebraicNumber negate.AlgebraicNumber<C>[]Quotient and remainder by division of this by S.AlgebraicNumber remainder.intsignum()AlgebraicNumber signum.subtract(AlgebraicNumber<C> S) AlgebraicNumber subtraction.AlgebraicNumber summation.sum(AlgebraicNumber<C> S) AlgebraicNumber summation.sum(GenPolynomial<C> c) AlgebraicNumber summation.toScript()Get a scripting compatible string representation.Get a scripting compatible string representation of the factory.toString()Get the String representation as RingElem.Methods inherited from interface MonoidElem
leftDivide, leftRemainder, power, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
-
Field Details
-
ring
Ring part of the data structure. -
val
Value part of the element data structure. -
isunit
protected int isunitFlag to remember if this algebraic number is a unit. -1 is unknown, 1 is unit, 0 not a unit.
-
-
Constructor Details
-
AlgebraicNumber
The constructor creates a AlgebraicNumber object from AlgebraicNumberRing modul and a GenPolynomial value.- Parameters:
r- ring AlgebraicNumberRing. a- value GenPolynomial.
-
AlgebraicNumber
The constructor creates a AlgebraicNumber object from a GenPolynomial object module.- Parameters:
r- ring AlgebraicNumberRing.
-
-
Method Details
-
getVal
-
factory
-
copy
-
isZERO
public boolean isZERO()Is AlgebraicNumber zero.- Specified by:
isZEROin interfaceAbelianGroupElem<C extends RingElem<C>>- Returns:
- If this is 0 then true is returned, else false.
- See Also:
-
isONE
public boolean isONE()Is AlgebraicNumber one.- Specified by:
isONEin interfaceMonoidElem<C extends RingElem<C>>- Returns:
- If this is 1 then true is returned, else false.
- See Also:
-
isUnit
public boolean isUnit()Is AlgebraicNumber unit.- Specified by:
isUnitin interfaceMonoidElem<C extends RingElem<C>>- Returns:
- If this is a unit then true is returned, else false.
- See Also:
-
isRootOfUnity
public boolean isRootOfUnity()Is AlgebraicNumber a root of unity.- Returns:
- true if |this**i| == 1, for some 0 < i ≤ deg(modul), else false.
-
toString
-
toScript
-
toScriptFactory
-
compareTo
-
equals
-
hashCode
-
abs
AlgebraicNumber absolute value.- Specified by:
absin interfaceAbelianGroupElem<C extends RingElem<C>>- Returns:
- the absolute value of this.
- See Also:
-
sum
AlgebraicNumber summation.- Specified by:
sumin interfaceAbelianGroupElem<C extends RingElem<C>>- Parameters:
S- AlgebraicNumber.- Returns:
- this+S.
-
sum
AlgebraicNumber summation.- Parameters:
c- coefficient.- Returns:
- this+c.
-
sum
AlgebraicNumber summation.- Parameters:
c- polynomial.- Returns:
- this+c.
-
negate
AlgebraicNumber negate.- Specified by:
negatein interfaceAbelianGroupElem<C extends RingElem<C>>- Returns:
- -this.
- See Also:
-
signum
public int signum()AlgebraicNumber signum.- Specified by:
signumin interfaceAbelianGroupElem<C extends RingElem<C>>- Returns:
- signum(this).
- See Also:
-
subtract
AlgebraicNumber subtraction.- Specified by:
subtractin interfaceAbelianGroupElem<C extends RingElem<C>>- Parameters:
S- AlgebraicNumber.- Returns:
- this-S.
-
divide
AlgebraicNumber division.- Specified by:
dividein interfaceMonoidElem<C extends RingElem<C>>- Parameters:
S- AlgebraicNumber.- Returns:
- this/S.
-
inverse
AlgebraicNumber inverse.- Specified by:
inversein interfaceMonoidElem<C extends RingElem<C>>- Returns:
- S with S = 1/this if defined.
- Throws:
NotInvertibleException- if the element is not invertible.- See Also:
-
remainder
AlgebraicNumber remainder.- Specified by:
remainderin interfaceMonoidElem<C extends RingElem<C>>- Parameters:
S- AlgebraicNumber.- Returns:
- this - (this/S)*S.
-
quotientRemainder
Quotient and remainder by division of this by S.- Specified by:
quotientRemainderin interfaceMonoidElem<C extends RingElem<C>>- Parameters:
S- a AlgebraicNumber- Returns:
- [this/S, this - (this/S)*S].
-
multiply
AlgebraicNumber multiplication.- Specified by:
multiplyin interfaceMonoidElem<C extends RingElem<C>>- Parameters:
S- AlgebraicNumber.- Returns:
- this*S.
-
multiply
AlgebraicNumber multiplication.- Parameters:
c- coefficient.- Returns:
- this*c.
-
multiply
AlgebraicNumber multiplication.- Parameters:
c- polynomial.- Returns:
- this*c.
-
monic
-
gcd
AlgebraicNumber greatest common divisor. -
egcd
AlgebraicNumber extended greatest common divisor.
-