Package edu.jas.poly
Class Local<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.poly.Local<C>
-
- All Implemented Interfaces:
AbelianGroupElem<Local<C>>
,Element<Local<C>>
,MonoidElem<Local<C>>
,QuotPair<C>
,RingElem<Local<C>>
,java.io.Serializable
,java.lang.Comparable<Local<C>>
public class Local<C extends RingElem<C>> extends java.lang.Object implements RingElem<Local<C>>, QuotPair<C>
Local element based on RingElem pairs. Objects of this class are (nearly) immutable.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected C
den
Denominator part of the element data structure.protected int
isunit
Flag to remember if this local element is a unit. -1 is unknown, 1 is unit, 0 not a unit.protected C
num
Numerator part of the element data structure.protected LocalRing<C>
ring
Local class factory data structure.
-
Constructor Summary
Constructors Modifier Constructor Description Local(LocalRing<C> r)
The constructor creates a Local object from a ring factory.Local(LocalRing<C> r, C n)
The constructor creates a Local object from a ring factory and a numerator element.Local(LocalRing<C> r, C n, C d)
The constructor creates a Local object from a ring factory and a numerator and denominator element.protected
Local(LocalRing<C> r, C n, C d, boolean isred)
The constructor creates a Local object from a ring factory and a numerator and denominator element.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Local<C>
abs()
Local absolute value.int
compareTo(Local<C> b)
Local comparison.Local<C>
copy()
Clone this.C
denominator()
Denominator.Local<C>
divide(Local<C> S)
Local division.Local<C>[]
egcd(Local<C> b)
Extended greatest common divisor.boolean
equals(java.lang.Object b)
Comparison with any other object.LocalRing<C>
factory()
Get the corresponding element factory.Local<C>
gcd(Local<C> b)
Greatest common divisor.int
hashCode()
Hash code for this local.Local<C>
inverse()
Local inverse.boolean
isConstant()
Is Local a constant.boolean
isONE()
Is Local one.boolean
isUnit()
Is Local unit.boolean
isZERO()
Is Local zero.Local<C>
multiply(Local<C> S)
Local multiplication.Local<C>
negate()
Local negate.C
numerator()
Numerator.Local<C>[]
quotientRemainder(Local<C> S)
Quotient and remainder by division of this by S.Local<C>
remainder(Local<C> S)
Local remainder.int
signum()
Local signum.Local<C>
subtract(Local<C> S)
Local subtraction.Local<C>
sum(Local<C> S)
Local summation.java.lang.String
toScript()
Get a scripting compatible string representation.java.lang.String
toScriptFactory()
Get a scripting compatible string representation of the factory.java.lang.String
toString()
Get the String representation as RingElem.-
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, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
-
-
-
-
Field Detail
-
isunit
protected int isunit
Flag to remember if this local element is a unit. -1 is unknown, 1 is unit, 0 not a unit.
-
-
Constructor Detail
-
Local
public Local(LocalRing<C> r)
The constructor creates a Local object from a ring factory.- Parameters:
r
- ring factory.
-
Local
public Local(LocalRing<C> r, C n)
The constructor creates a Local object from a ring factory and a numerator element. The denominator is assumed to be 1.- Parameters:
r
- ring factory.n
- numerator.
-
Local
public Local(LocalRing<C> r, C n, C d)
The constructor creates a Local object from a ring factory and a numerator and denominator element.- Parameters:
r
- ring factory.n
- numerator.d
- denominator.
-
-
Method Detail
-
denominator
public C denominator()
Denominator.- Specified by:
denominator
in interfaceQuotPair<C extends RingElem<C>>
- See Also:
QuotPair.denominator()
-
isConstant
public boolean isConstant()
Is Local a constant. Not implemented.- Specified by:
isConstant
in interfaceQuotPair<C extends RingElem<C>>
-
isZERO
public boolean isZERO()
Is Local zero.- Specified by:
isZERO
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Returns:
- If this is 0 then true is returned, else false.
- See Also:
AbelianGroupElem.isZERO()
-
isONE
public boolean isONE()
Is Local one.- Specified by:
isONE
in interfaceMonoidElem<C extends RingElem<C>>
- Returns:
- If this is 1 then true is returned, else false.
- See Also:
MonoidElem.isONE()
-
isUnit
public boolean isUnit()
Is Local unit.- Specified by:
isUnit
in interfaceMonoidElem<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:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
toScript
public java.lang.String toScript()
Get a scripting compatible string representation.
-
toScriptFactory
public java.lang.String toScriptFactory()
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactory
in interfaceElement<C extends RingElem<C>>
- Returns:
- script compatible representation for this ElemFactory.
- See Also:
Element.toScriptFactory()
-
equals
public boolean equals(java.lang.Object b)
Comparison with any other object.
-
hashCode
public int hashCode()
Hash code for this local.
-
abs
public Local<C> abs()
Local absolute value.- Specified by:
abs
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Returns:
- the absolute value of this.
- See Also:
AbelianGroupElem.abs()
-
sum
public Local<C> sum(Local<C> S)
Local summation.- Specified by:
sum
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Parameters:
S
- Local.- Returns:
- this+S.
-
negate
public Local<C> negate()
Local negate.- Specified by:
negate
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Returns:
- -this.
- See Also:
AbelianGroupElem.negate()
-
signum
public int signum()
Local signum.- Specified by:
signum
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Returns:
- signum(this).
- See Also:
AbelianGroupElem.signum()
-
subtract
public Local<C> subtract(Local<C> S)
Local subtraction.- Specified by:
subtract
in interfaceAbelianGroupElem<C extends RingElem<C>>
- Parameters:
S
- Local.- Returns:
- this-S.
-
divide
public Local<C> divide(Local<C> S)
Local division.- Specified by:
divide
in interfaceMonoidElem<C extends RingElem<C>>
- Parameters:
S
- Local.- Returns:
- this/S.
-
inverse
public Local<C> inverse()
Local inverse.- Specified by:
inverse
in interfaceMonoidElem<C extends RingElem<C>>
- Returns:
- S with S = 1/this if defined.
- See Also:
MonoidElem.inverse()
-
remainder
public Local<C> remainder(Local<C> S)
Local remainder.- Specified by:
remainder
in interfaceMonoidElem<C extends RingElem<C>>
- Parameters:
S
- Local.- Returns:
- this - (this/S)*S.
-
quotientRemainder
public Local<C>[] quotientRemainder(Local<C> S)
Quotient and remainder by division of this by S.- Specified by:
quotientRemainder
in interfaceMonoidElem<C extends RingElem<C>>
- Parameters:
S
- a Local- Returns:
- [this/S, this - (this/S)*S].
-
multiply
public Local<C> multiply(Local<C> S)
Local multiplication.- Specified by:
multiply
in interfaceMonoidElem<C extends RingElem<C>>
- Parameters:
S
- Local.- Returns:
- this*S.
-
gcd
public Local<C> gcd(Local<C> b)
Greatest common divisor. Note: Not implemented, throws UnsupportedOperationException.
-
-