Package edu.jas.arith

Class ModLong

    • Field Detail

      • ring

        public final ModLongRing ring
        ModLongRing reference.
      • val

        public final long val
        Value part of the element data structure.
    • Constructor Detail

      • ModLong

        public ModLong​(ModLongRing m,
                       java.math.BigInteger a)
        The constructor creates a ModLong object from a ModLongRing and a value part.
        Parameters:
        m - ModLongRing.
        a - math.BigInteger.
      • ModLong

        public ModLong​(ModLongRing m,
                       long a)
        The constructor creates a ModLong object from a ModLongRing and a long value part.
        Parameters:
        m - ModLongRing.
        a - long.
      • ModLong

        public ModLong​(ModLongRing m,
                       java.lang.Long a)
        The constructor creates a ModLong object from a ModLongRing and a Long value part.
        Parameters:
        m - ModLongRing.
        a - Long.
      • ModLong

        public ModLong​(ModLongRing m,
                       java.lang.String s)
        The constructor creates a ModLong object from a ModLongRing and a String value part.
        Parameters:
        m - ModLongRing.
        s - String.
      • ModLong

        public ModLong​(ModLongRing m)
        The constructor creates a 0 ModLong object from a given ModLongRing.
        Parameters:
        m - ModLongRing.
    • Method Detail

      • getVal

        public long getVal()
        Get the value part.
        Returns:
        val.
      • getModul

        public long getModul()
        Get the module part.
        Returns:
        modul.
      • getSymmetricVal

        public long getSymmetricVal()
        Get the symmetric value part.
        Returns:
        val with -modul/2 ≤ val < modul/2.
      • getInteger

        public BigInteger getInteger()
        Return a BigInteger from this Element.
        Specified by:
        getInteger in interface Modular
        Returns:
        a BigInteger of this.
      • getSymmetricInteger

        public BigInteger getSymmetricInteger()
        Return a symmetric BigInteger from this Element.
        Specified by:
        getSymmetricInteger in interface Modular
        Returns:
        a symmetric BigInteger of this.
      • copy

        public ModLong copy()
        Clone this.
        Specified by:
        copy in interface Element<ModLong>
        Returns:
        Creates and returns a copy of this Element.
        See Also:
        Object.clone()
      • toString

        public java.lang.String toString()
        Get the String representation.
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • toScript

        public java.lang.String toScript()
        Get a scripting compatible string representation.
        Specified by:
        toScript in interface Element<ModLong>
        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:
        toScriptFactory in interface Element<ModLong>
        Returns:
        script compatible representation for this ElemFactory.
        See Also:
        Element.toScriptFactory()
      • compareTo

        public int compareTo​(ModLong b)
        ModLong comparison.
        Specified by:
        compareTo in interface java.lang.Comparable<ModLong>
        Specified by:
        compareTo in interface Element<ModLong>
        Parameters:
        b - ModLong.
        Returns:
        sign(this-b).
      • equals

        public boolean equals​(java.lang.Object b)
        Comparison with any other object.
        Specified by:
        equals in interface Element<ModLong>
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if this is equal to b, else false.
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Hash code for this ModLong.
        Specified by:
        hashCode in interface Element<ModLong>
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashCode.
        See Also:
        Object.hashCode()
      • gcd

        public ModLong gcd​(ModLong S)
        ModInteger greatest common divisor.
        Specified by:
        gcd in interface RingElem<ModLong>
        Parameters:
        S - ModInteger.
        Returns:
        [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).
      • egcd

        public ModLong[] egcd​(ModLong S)
        ModInteger extended greatest common divisor.
        Specified by:
        egcd in interface RingElem<ModLong>
        Parameters:
        S - ModInteger.
        Returns:
        [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).
      • 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.