public final class ChineseRemainders extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ChineseRemainders.ChineseRemaindersMagic<E>
Magic data to make CRT faster via precomputing Bezout coefficients
|
static class |
ChineseRemainders.ChineseRemaindersMagicZp64 |
Modifier and Type | Method and Description |
---|---|
static BigInteger |
ChineseRemainders(BigInteger[] primes,
BigInteger[] remainders)
Runs Chinese Remainders algorithm
|
static BigInteger |
ChineseRemainders(BigInteger prime1,
BigInteger prime2,
BigInteger remainder1,
BigInteger remainder2)
Runs Chinese Remainders algorithm
|
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) |
static long |
ChineseRemainders(long[] primes,
long[] remainders)
Runs Chinese Remainders algorithm
|
static long |
ChineseRemainders(long prime1,
long prime2,
long remainder1,
long remainder2)
Runs Chinese Remainders algorithm
|
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) |
static <E> E |
ChineseRemainders(Ring<E> ring,
E[] primes,
E[] remainders)
Runs Chinese Remainders algorithm
|
static <E> E |
ChineseRemainders(Ring<E> ring,
E prime1,
E prime2,
E remainder1,
E remainder2)
Runs Chinese Remainders algorithm
|
static ChineseRemainders.ChineseRemaindersMagicZp64 |
createMagic(long prime1,
long prime2)
Magic for fast repeated Chinese Remainders
|
static <E> ChineseRemainders.ChineseRemaindersMagic<E> |
createMagic(Ring<E> ring,
E prime1,
E prime2)
Magic for fast repeated Chinese Remainders
|
public static long ChineseRemainders(long prime1, long prime2, long remainder1, long remainder2)
prime1
- #1 primeprime2
- #2 primeremainder1
- #1 remainderremainder2
- #2 remainderpublic static BigInteger ChineseRemainders(BigInteger prime1, BigInteger prime2, BigInteger remainder1, BigInteger remainder2)
prime1
- #1 primeprime2
- #2 primeremainder1
- #1 remainderremainder2
- #2 remainderpublic static <E> E ChineseRemainders(Ring<E> ring, E prime1, E prime2, E remainder1, E remainder2)
prime1
- #1 primeprime2
- #2 primeremainder1
- #1 remainderremainder2
- #2 remainderpublic static <E> E ChineseRemainders(Ring<E> ring, ChineseRemainders.ChineseRemaindersMagic<E> magic, E remainder1, E remainder2)
magic
performed)ring
- the ringmagic
- magic (create by createMagic(Ring, Object, Object)
)remainder1
- #1 remainderremainder2
- #2 remainderpublic static <E> ChineseRemainders.ChineseRemaindersMagic<E> createMagic(Ring<E> ring, E prime1, E prime2)
public static long ChineseRemainders(ChineseRemainders.ChineseRemaindersMagicZp64 magic, long remainder1, long remainder2)
magic
performed)magic
- magic structure for fast modular arithmetic (createMagic(long, long)
remainder1
- #1 remainderremainder2
- #2 remainderpublic static ChineseRemainders.ChineseRemaindersMagicZp64 createMagic(long prime1, long prime2)
public static long ChineseRemainders(long[] primes, long[] remainders)
primes
- list of coprime numbersremainders
- remainderpublic static BigInteger ChineseRemainders(BigInteger[] primes, BigInteger[] remainders)
primes
- list of coprime numbersremainders
- remainderpublic static <E> E ChineseRemainders(Ring<E> ring, E[] primes, E[] remainders)
ring
- the ringprimes
- primesremainders
- remaindersCopyright © 2018. All rights reserved.