Package edu.jas.arith

Class ModIntegerRing

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int isField
      Indicator if this ring is a field.
      java.math.BigInteger modul
      Module part of the factory data structure.
      private static java.util.Random random  
    • Constructor Summary

      Constructors 
      Constructor Description
      ModIntegerRing​(long m)
      The constructor creates a ModIntegerRing object from a long as module part.
      ModIntegerRing​(long m, boolean isField)
      The constructor creates a ModIntegerRing object from a long as module part.
      ModIntegerRing​(java.lang.String m)
      The constructor creates a ModIntegerRing object from a String object as module part.
      ModIntegerRing​(java.lang.String m, boolean isField)
      The constructor creates a ModIntegerRing object from a String object as module part.
      ModIntegerRing​(java.math.BigInteger m)
      The constructor creates a ModIntegerRing object from a BigInteger object as module part.
      ModIntegerRing​(java.math.BigInteger m, boolean isField)
      The constructor creates a ModIntegerRing object from a BigInteger object as module part.
    • Field Detail

      • modul

        public final java.math.BigInteger modul
        Module part of the factory data structure.
      • random

        private static final java.util.Random random
      • isField

        private int isField
        Indicator if this ring is a field.
    • Constructor Detail

      • ModIntegerRing

        public ModIntegerRing​(java.math.BigInteger m)
        The constructor creates a ModIntegerRing object from a BigInteger object as module part.
        Parameters:
        m - math.BigInteger.
      • ModIntegerRing

        public ModIntegerRing​(java.math.BigInteger m,
                              boolean isField)
        The constructor creates a ModIntegerRing object from a BigInteger object as module part.
        Parameters:
        m - math.BigInteger.
        isField - indicator if m is prime.
      • ModIntegerRing

        public ModIntegerRing​(long m)
        The constructor creates a ModIntegerRing object from a long as module part.
        Parameters:
        m - long.
      • ModIntegerRing

        public ModIntegerRing​(long m,
                              boolean isField)
        The constructor creates a ModIntegerRing object from a long as module part.
        Parameters:
        m - long.
        isField - indicator if m is prime.
      • ModIntegerRing

        public ModIntegerRing​(java.lang.String m)
        The constructor creates a ModIntegerRing object from a String object as module part.
        Parameters:
        m - String.
      • ModIntegerRing

        public ModIntegerRing​(java.lang.String m,
                              boolean isField)
        The constructor creates a ModIntegerRing object from a String object as module part.
        Parameters:
        m - String.
        isField - indicator if m is prime.
    • Method Detail

      • getModul

        public java.math.BigInteger getModul()
        Get the module part.
        Returns:
        modul.
      • create

        public ModInteger create​(java.math.BigInteger c)
        Create ModInteger element c.
        Parameters:
        c -
        Returns:
        a ModInteger of c.
      • create

        public ModInteger create​(long c)
        Create ModInteger element c.
        Parameters:
        c -
        Returns:
        a ModInteger of c.
      • create

        public ModInteger create​(java.lang.String c)
        Create ModInteger element c.
        Parameters:
        c -
        Returns:
        a ModInteger of c.
      • isField

        public boolean isField()
        Query if this ring is a field.
        Specified by:
        isField in interface RingFactory<ModInteger>
        Returns:
        true if module is prime, else false.
      • characteristic

        public java.math.BigInteger characteristic()
        Characteristic of this ring.
        Specified by:
        characteristic in interface RingFactory<ModInteger>
        Returns:
        characteristic of this ring.
      • fromInteger

        public ModInteger fromInteger​(java.math.BigInteger a)
        Get a ModInteger element from a BigInteger value.
        Specified by:
        fromInteger in interface ElemFactory<ModInteger>
        Parameters:
        a - BigInteger.
        Returns:
        a ModInteger.
      • fromInteger

        public ModInteger fromInteger​(long a)
        Get a ModInteger element from a long value.
        Specified by:
        fromInteger in interface ElemFactory<ModInteger>
        Parameters:
        a - long.
        Returns:
        a ModInteger.
      • 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 ElemFactory<ModInteger>
        Returns:
        script compatible representation for this ElemFactory.
        See Also:
        ElemFactory.toScript()
      • equals

        public boolean equals​(java.lang.Object b)
        Comparison with any other object.
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Hash code for this ModIntegerRing.
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()
      • random

        public ModInteger random​(int n)
        ModInteger random.
        Specified by:
        random in interface ElemFactory<ModInteger>
        Parameters:
        n - such that 0 ≤ v ≤ (2n-1).
        Returns:
        a random integer mod modul.
      • random

        public ModInteger random​(int n,
                                 java.util.Random rnd)
        ModInteger random.
        Specified by:
        random in interface ElemFactory<ModInteger>
        Parameters:
        n - such that 0 ≤ v ≤ (2n-1).
        rnd - is a source for random bits.
        Returns:
        a random integer mod modul.
      • parse

        public ModInteger parse​(java.lang.String s)
        Parse ModInteger from String.
        Specified by:
        parse in interface ElemFactory<ModInteger>
        Parameters:
        s - String.
        Returns:
        ModInteger from s.
      • parse

        public ModInteger parse​(java.io.Reader r)
        Parse ModInteger from Reader.
        Specified by:
        parse in interface ElemFactory<ModInteger>
        Parameters:
        r - Reader.
        Returns:
        next ModInteger from r.
      • chineseRemainder

        public ModInteger chineseRemainder​(ModInteger c,
                                           ModInteger ci,
                                           ModInteger a)
        ModInteger chinese remainder algorithm. This is a factory method. Assert c.modul ≥ a.modul and c.modul * a.modul = this.modul.
        Specified by:
        chineseRemainder in interface ModularRingFactory<ModInteger>
        Parameters:
        c - ModInteger.
        ci - inverse of c.modul in ring of a.
        a - other ModInteger.
        Returns:
        S, with S mod c.modul == c and S mod a.modul == a.
      • chineseRemainder

        public static java.util.List<ModInteger> chineseRemainder​(ModInteger m1,
                                                                  ModInteger m2,
                                                                  java.util.List<ModInteger> L1,
                                                                  java.util.List<ModInteger> L2)
        Modular integer list chinese remainder algorithm. m1 and m2 are positive integers, with GCD(m1,m2)=1 and m=m1*m2 less than beta. L1 and L2 are lists of elements of Z(m1) and Z(m2) respectively. L is a list of all a in Z(m) such that a is congruent to a1 modulo m1 and a is congruent to a2 modulo m2 with a1 in L1 and a2 in L2. This is a factory method. Assert c.modul ≥ a.modul and c.modul * a.modul = this.modul.
        Parameters:
        m1 - modular integer.
        m2 - other modular integer.
        Returns:
        L list of congruences.
      • iterator

        public java.util.Iterator<ModInteger> iterator()
        Get a ModInteger iterator.
        Specified by:
        iterator in interface java.lang.Iterable<ModInteger>
        Returns:
        a iterator over all modular integers in this ring.