Package edu.jas.arith
Class ModLong
java.lang.Object
edu.jas.arith.ModLong
- All Implemented Interfaces:
Modular
,AbelianGroupElem<ModLong>
,Element<ModLong>
,GcdRingElem<ModLong>
,MonoidElem<ModLong>
,RingElem<ModLong>
,Serializable
,Comparable<ModLong>
ModLong class with RingElem interface. Objects of this class are immutable.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal ModLongRing
ModLongRing reference.final long
Value part of the element data structure. -
Constructor Summary
ConstructorsConstructorDescriptionThe constructor creates a 0 ModLong object from a given ModLongRing.ModLong
(ModLongRing m, long a) The constructor creates a ModLong object from a ModLongRing and a long value part.ModLong
(ModLongRing m, Long a) The constructor creates a ModLong object from a ModLongRing and a Long value part.ModLong
(ModLongRing m, String s) The constructor creates a ModLong object from a ModLongRing and a String value part.ModLong
(ModLongRing m, BigInteger a) The constructor creates a ModLong object from a ModLongRing and a value part. -
Method Summary
Modifier and TypeMethodDescriptionabs()
ModLong absolute value.long
Returns the number of bits in the representation of this ModLong, including a sign bit.int
ModLong comparison.copy()
Clone this.ModLong divide.ModLong[]
ModInteger extended greatest common divisor.boolean
Comparison with any other object.factory()
Get the corresponding element factory.long
gcd
(long T, long S) Long greatest common divisor.ModInteger greatest common divisor.Return a BigInteger from this Element.long
getModul()
Get the module part.Return a symmetric BigInteger from this Element.long
Get the symmetric value part.long
getVal()
Get the value part.int
hashCode()
Hash code for this ModLong.long[]
hegcd
(long T, long S) Long half extended greatest common divisor.inverse()
ModLong inverse.boolean
isONE()
Is ModLong number one.boolean
isUnit()
Is ModLong number a unit.boolean
isZERO()
Is ModLong number zero.long
modInverse
(long T, long m) Long modular inverse.ModLong multiply.negate()
ModLong negative.ModLong remainder.int
signum()
ModLong signum.ModLong subtraction.ModLong summation.toScript()
Get a scripting compatible string representation.Get a scripting compatible string representation of the factory.toString()
Get the String representation.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, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
-
Field Details
-
ring
ModLongRing reference. -
val
public final long valValue part of the element data structure.
-
-
Constructor Details
-
ModLong
The constructor creates a ModLong object from a ModLongRing and a value part.- Parameters:
m
- ModLongRing.a
- math.BigInteger.
-
ModLong
The constructor creates a ModLong object from a ModLongRing and a long value part.- Parameters:
m
- ModLongRing.a
- long.
-
ModLong
The constructor creates a ModLong object from a ModLongRing and a Long value part.- Parameters:
m
- ModLongRing.a
- Long.
-
ModLong
The constructor creates a ModLong object from a ModLongRing and a String value part.- Parameters:
m
- ModLongRing.s
- String.
-
ModLong
The constructor creates a 0 ModLong object from a given ModLongRing.- Parameters:
m
- ModLongRing.
-
-
Method Details
-
getVal
public long getVal()Get the value part.- Returns:
- val.
-
getModul
public long getModul()Get the module part.- Returns:
- modul.
-
factory
Get the corresponding element factory. -
getSymmetricVal
public long getSymmetricVal()Get the symmetric value part.- Returns:
- val with -modul/2 ≤ val < modul/2.
-
getInteger
Return a BigInteger from this Element.- Specified by:
getInteger
in interfaceModular
- Returns:
- a BigInteger of this.
-
getSymmetricInteger
Return a symmetric BigInteger from this Element.- Specified by:
getSymmetricInteger
in interfaceModular
- Returns:
- a symmetric BigInteger of this.
-
copy
Clone this. -
isZERO
public boolean isZERO()Is ModLong number zero.- Specified by:
isZERO
in interfaceAbelianGroupElem<ModLong>
- Returns:
- If this is 0 then true is returned, else false.
- See Also:
-
isONE
public boolean isONE()Is ModLong number one.- Specified by:
isONE
in interfaceMonoidElem<ModLong>
- Returns:
- If this is 1 then true is returned, else false.
- See Also:
-
isUnit
public boolean isUnit()Is ModLong number a unit.- Specified by:
isUnit
in interfaceMonoidElem<ModLong>
- Returns:
- If this is a unit then true is returned, else false.
- See Also:
-
toString
Get the String representation. -
toScript
Get a scripting compatible string representation. -
toScriptFactory
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactory
in interfaceElement<ModLong>
- Returns:
- script compatible representation for this ElemFactory.
- See Also:
-
compareTo
ModLong comparison. -
equals
Comparison with any other object. -
hashCode
public int hashCode()Hash code for this ModLong. -
abs
ModLong absolute value.- Specified by:
abs
in interfaceAbelianGroupElem<ModLong>
- Returns:
- the absolute value of this.
- See Also:
-
negate
ModLong negative.- Specified by:
negate
in interfaceAbelianGroupElem<ModLong>
- Returns:
- -this.
- See Also:
-
signum
public int signum()ModLong signum.- Specified by:
signum
in interfaceAbelianGroupElem<ModLong>
- Returns:
- signum(this).
- See Also:
-
subtract
ModLong subtraction.- Specified by:
subtract
in interfaceAbelianGroupElem<ModLong>
- Parameters:
S
- ModLong.- Returns:
- this-S.
-
divide
ModLong divide.- Specified by:
divide
in interfaceMonoidElem<ModLong>
- Parameters:
S
- ModLong.- Returns:
- this/S.
-
inverse
ModLong inverse.- Specified by:
inverse
in interfaceMonoidElem<ModLong>
- Returns:
- S with S=1/this if defined.
- Throws:
NotInvertibleException
- if the element is not invertible.- See Also:
-
remainder
ModLong remainder.- Specified by:
remainder
in interfaceMonoidElem<ModLong>
- Parameters:
S
- ModLong.- Returns:
- remainder(this,S).
-
multiply
ModLong multiply.- Specified by:
multiply
in interfaceMonoidElem<ModLong>
- Parameters:
S
- ModLong.- Returns:
- this*S.
-
sum
ModLong summation.- Specified by:
sum
in interfaceAbelianGroupElem<ModLong>
- Parameters:
S
- ModLong.- Returns:
- this+S.
-
gcd
ModInteger greatest common divisor. -
egcd
ModInteger extended greatest common divisor. -
gcd
public long gcd(long T, long S) Long greatest common divisor.- Parameters:
T
- long.S
- long.- Returns:
- gcd(T,S).
-
hegcd
public long[] hegcd(long T, long S) Long half extended greatest common divisor.- Parameters:
T
- long.S
- long.- Returns:
- [ gcd(T,S), a ] with a*T + b*S = gcd(T,S).
-
modInverse
public long modInverse(long T, long m) Long modular inverse.- Parameters:
T
- long.m
- long.- Returns:
- a with with a*T = 1 mod m.
-
bitLength
public long bitLength()Returns the number of bits in the representation of this ModLong, including a sign bit.- Returns:
- number of bits in the representation of this ModLong, including a sign bit.
-