Class ChineseRemainders


  • public final class ChineseRemainders
    extends Object
    Since:
    1.0
    • Method Detail

      • ChineseRemainders

        public static long ChineseRemainders​(long prime1,
                                             long prime2,
                                             long remainder1,
                                             long remainder2)
        Runs Chinese Remainders algorithm
        Parameters:
        prime1 - #1 prime
        prime2 - #2 prime
        remainder1 - #1 remainder
        remainder2 - #2 remainder
        Returns:
        the result
      • ChineseRemainders

        public static BigInteger ChineseRemainders​(BigInteger prime1,
                                                   BigInteger prime2,
                                                   BigInteger remainder1,
                                                   BigInteger remainder2)
        Runs Chinese Remainders algorithm
        Parameters:
        prime1 - #1 prime
        prime2 - #2 prime
        remainder1 - #1 remainder
        remainder2 - #2 remainder
        Returns:
        the result
      • ChineseRemainders

        public static <E> E ChineseRemainders​(Ring<E> ring,
                                              E prime1,
                                              E prime2,
                                              E remainder1,
                                              E remainder2)
        Runs Chinese Remainders algorithm
        Parameters:
        prime1 - #1 prime
        prime2 - #2 prime
        remainder1 - #1 remainder
        remainder2 - #2 remainder
        Returns:
        the result
      • ChineseRemainders

        public static <E> E ChineseRemainders​(Ring<E> ring,
                                              ChineseRemainders.ChineseRemaindersMagic<E> magic,
                                              E remainder1,
                                              E remainder2)
        Runs Chinese Remainders algorithm using the precomputed magic (speed's up computation when several invocations with the same magic performed)
        Parameters:
        ring - the ring
        magic - magic (create by createMagic(Ring, Object, Object))
        remainder1 - #1 remainder
        remainder2 - #2 remainder
        Returns:
        the result
      • ChineseRemainders

        public static long ChineseRemainders​(ChineseRemainders.ChineseRemaindersMagicZp64 magic,
                                             long remainder1,
                                             long remainder2)
        Runs Chinese Remainders algorithm using the precomputed magic (speed's up computation when several invocations with the same magic performed)
        Parameters:
        magic - magic structure for fast modular arithmetic (createMagic(long, long)
        remainder1 - #1 remainder
        remainder2 - #2 remainder
        Returns:
        the result
      • ChineseRemainders

        public static long ChineseRemainders​(long[] primes,
                                             long[] remainders)
        Runs Chinese Remainders algorithm
        Parameters:
        primes - list of coprime numbers
        remainders - remainder
        Returns:
        the result
      • ChineseRemainders

        public static BigInteger ChineseRemainders​(BigInteger[] primes,
                                                   BigInteger[] remainders)
        Runs Chinese Remainders algorithm
        Parameters:
        primes - list of coprime numbers
        remainders - remainder
        Returns:
        the result
      • ChineseRemainders

        public static <E> E ChineseRemainders​(Ring<E> ring,
                                              E[] primes,
                                              E[] remainders)
        Runs Chinese Remainders algorithm
        Parameters:
        ring - the ring
        primes - primes
        remainders - remainders
        Returns:
        the result