edu.jas.poly
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>>, java.io.Serializable, java.lang.Comparable<AlgebraicNumber<C>>
public class AlgebraicNumber<C extends RingElem<C>> extends java.lang.Object implements GcdRingElem<AlgebraicNumber<C>>
Algebraic number class based on GenPolynomial with RingElem interface. Objects of this class are immutable.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description AlgebraicNumberRing<C>ringRing part of the data structure.GenPolynomial<C>valValue part of the element data structure.
-
Constructor Summary
Constructors Constructor and Description AlgebraicNumber(AlgebraicNumberRing<C> r)The constructor creates a AlgebraicNumber object from a GenPolynomial object module.AlgebraicNumber(AlgebraicNumberRing<C> r, GenPolynomial<C> a)The constructor creates a AlgebraicNumber object from AlgebraicNumberRing modul and a GenPolynomial value.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description AlgebraicNumber<C>abs()AlgebraicNumber absolute value.intcompareTo(AlgebraicNumber<C> b)AlgebraicNumber comparison.AlgebraicNumber<C>copy()Clone this.AlgebraicNumber<C>divide(AlgebraicNumber<C> S)AlgebraicNumber division.AlgebraicNumber<C>[]egcd(AlgebraicNumber<C> S)AlgebraicNumber extended greatest common divisor.booleanequals(java.lang.Object b)Comparison with any other object.AlgebraicNumberRing<C>factory()Get the corresponding element factory.AlgebraicNumber<C>gcd(AlgebraicNumber<C> S)AlgebraicNumber greatest common divisor.GenPolynomial<C>getVal()Get the value part.inthashCode()Hash code for this AlgebraicNumber.AlgebraicNumber<C>inverse()AlgebraicNumber inverse.booleanisONE()Is AlgebraicNumber one.booleanisUnit()Is AlgebraicNumber unit.booleanisZERO()Is AlgebraicNumber zero.AlgebraicNumber<C>monic()AlgebraicNumber monic.AlgebraicNumber<C>multiply(AlgebraicNumber<C> S)AlgebraicNumber multiplication.AlgebraicNumber<C>multiply(C c)AlgebraicNumber multiplication.AlgebraicNumber<C>multiply(GenPolynomial<C> c)AlgebraicNumber multiplication.AlgebraicNumber<C>negate()AlgebraicNumber negate.AlgebraicNumber<C>[]quotientRemainder(AlgebraicNumber<C> S)Quotient and remainder by division of this by S.AlgebraicNumber<C>remainder(AlgebraicNumber<C> S)AlgebraicNumber remainder.intsignum()AlgebraicNumber signum.AlgebraicNumber<C>subtract(AlgebraicNumber<C> S)AlgebraicNumber subtraction.AlgebraicNumber<C>sum(AlgebraicNumber<C> S)AlgebraicNumber summation.AlgebraicNumber<C>sum(C c)AlgebraicNumber summation.AlgebraicNumber<C>sum(GenPolynomial<C> c)AlgebraicNumber summation.java.lang.StringtoScript()Get a scripting compatible string representation.java.lang.StringtoScriptFactory()Get a scripting compatible string representation of the factory.java.lang.StringtoString()Get the String representation as RingElem.
-
-
-
Field Detail
-
ring
public final AlgebraicNumberRing<C extends RingElem<C>> ring
Ring part of the data structure.
-
val
public final GenPolynomial<C extends RingElem<C>> val
Value part of the element data structure.
-
-
Constructor Detail
-
AlgebraicNumber
public AlgebraicNumber(AlgebraicNumberRing<C> r, GenPolynomial<C> a)
The constructor creates a AlgebraicNumber object from AlgebraicNumberRing modul and a GenPolynomial value.- Parameters:
r- ring AlgebraicNumberRing. a- value GenPolynomial.
-
AlgebraicNumber
public AlgebraicNumber(AlgebraicNumberRing<C> r)
The constructor creates a AlgebraicNumber object from a GenPolynomial object module.- Parameters:
r- ring AlgebraicNumberRing.
-
-
Method Detail
-
getVal
public GenPolynomial<C> getVal()
Get the value part.- Returns:
- val.
-
factory
public AlgebraicNumberRing<C> factory()
Get the corresponding element factory.- Specified by:
factoryin interfaceElement<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- factory for this Element.
- See Also:
Element.factory()
-
copy
public AlgebraicNumber<C> copy()
Clone this.
-
isZERO
public boolean isZERO()
Is AlgebraicNumber zero.- Specified by:
isZEROin interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- If this is 0 then true is returned, else false.
- See Also:
AbelianGroupElem.isZERO()
-
isONE
public boolean isONE()
Is AlgebraicNumber one.- Specified by:
isONEin interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- If this is 1 then true is returned, else false.
- See Also:
MonoidElem.isONE()
-
isUnit
public boolean isUnit()
Is AlgebraicNumber unit.- Specified by:
isUnitin interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- If this is a unit then true is returned, else false.
- See Also:
MonoidElem.isUnit()
-
toString
public java.lang.String toString()
Get the String representation as RingElem.- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
toScript
public java.lang.String toScript()
Get a scripting compatible string representation.- Specified by:
toScriptin interfaceElement<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- script compatible representation for this Element.
- See Also:
Element.toScript()
-
toScriptFactory
public java.lang.String toScriptFactory()
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactoryin interfaceElement<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- script compatible representation for this ElemFactory.
- See Also:
Element.toScriptFactory()
-
compareTo
public int compareTo(AlgebraicNumber<C> b)
AlgebraicNumber comparison.- Specified by:
compareToin interfaceElement<AlgebraicNumber<C extends RingElem<C>>>- Specified by:
compareToin interfacejava.lang.Comparable<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
b- AlgebraicNumber.- Returns:
- sign(this-b).
-
equals
public boolean equals(java.lang.Object b)
Comparison with any other object.
-
hashCode
public int hashCode()
Hash code for this AlgebraicNumber.
-
abs
public AlgebraicNumber<C> abs()
AlgebraicNumber absolute value.- Specified by:
absin interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- the absolute value of this.
- See Also:
AbelianGroupElem.abs()
-
sum
public AlgebraicNumber<C> sum(AlgebraicNumber<C> S)
AlgebraicNumber summation.- Specified by:
sumin interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
S- AlgebraicNumber.- Returns:
- this+S.
-
sum
public AlgebraicNumber<C> sum(GenPolynomial<C> c)
AlgebraicNumber summation.- Parameters:
c- coefficient.- Returns:
- this+c.
-
sum
public AlgebraicNumber<C> sum(C c)
AlgebraicNumber summation.- Parameters:
c- polynomial.- Returns:
- this+c.
-
negate
public AlgebraicNumber<C> negate()
AlgebraicNumber negate.- Specified by:
negatein interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- -this.
- See Also:
AbelianGroupElem.negate()
-
signum
public int signum()
AlgebraicNumber signum.- Specified by:
signumin interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- signum(this).
- See Also:
AbelianGroupElem.signum()
-
subtract
public AlgebraicNumber<C> subtract(AlgebraicNumber<C> S)
AlgebraicNumber subtraction.- Specified by:
subtractin interfaceAbelianGroupElem<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
S- AlgebraicNumber.- Returns:
- this-S.
-
divide
public AlgebraicNumber<C> divide(AlgebraicNumber<C> S)
AlgebraicNumber division.- Specified by:
dividein interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
S- AlgebraicNumber.- Returns:
- this/S.
-
inverse
public AlgebraicNumber<C> inverse()
AlgebraicNumber inverse.- Specified by:
inversein interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Returns:
- S with S = 1/this if defined.
- Throws:
NotInvertibleException- if the element is not invertible.- See Also:
MonoidElem.inverse()
-
remainder
public AlgebraicNumber<C> remainder(AlgebraicNumber<C> S)
AlgebraicNumber remainder.- Specified by:
remainderin interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
S- AlgebraicNumber.- Returns:
- this - (this/S)*S.
-
quotientRemainder
public AlgebraicNumber<C>[] quotientRemainder(AlgebraicNumber<C> S)
Quotient and remainder by division of this by S.- Parameters:
S- a AlgebraicNumber- Returns:
- [this/S, this - (this/S)*S].
-
multiply
public AlgebraicNumber<C> multiply(AlgebraicNumber<C> S)
AlgebraicNumber multiplication.- Specified by:
multiplyin interfaceMonoidElem<AlgebraicNumber<C extends RingElem<C>>>- Parameters:
S- AlgebraicNumber.- Returns:
- this*S.
-
multiply
public AlgebraicNumber<C> multiply(C c)
AlgebraicNumber multiplication.- Parameters:
c- coefficient.- Returns:
- this*c.
-
multiply
public AlgebraicNumber<C> multiply(GenPolynomial<C> c)
AlgebraicNumber multiplication.- Parameters:
c- polynomial.- Returns:
- this*c.
-
monic
public AlgebraicNumber<C> monic()
AlgebraicNumber monic.- Returns:
- this with monic value part.
-
gcd
public AlgebraicNumber<C> gcd(AlgebraicNumber<C> S)
AlgebraicNumber greatest common divisor.
-
egcd
public AlgebraicNumber<C>[] egcd(AlgebraicNumber<C> S)
AlgebraicNumber extended greatest common divisor.
-
-
DMelt 3.0 © DataMelt by jWork.ORG