static <T extends IUnivariatePolynomial<T>> T |
ModularComposition.composition(T poly,
T point,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod) |
Returns modular composition poly(point) mod polyModulus.
|
static <T extends IUnivariatePolynomial<T>> T |
ModularComposition.compositionBrentKung(T poly,
ArrayList<T> pointPowers,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
int tBrentKung) |
Returns modular composition poly(point) mod polyModulus calculated using Brent & Kung algorithm for
modular composition.
|
static <T extends IUnivariatePolynomial<T>> T |
ModularComposition.compositionBrentKung(T poly,
T point,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod) |
Returns modular composition poly(point) mod polyModulus calculated using Brent & Kung algorithm for
modular composition.
|
static UnivariatePolynomialZp64 |
ModularComposition.compositionHorner(UnivariatePolynomialZp64 poly,
UnivariatePolynomialZp64 point,
UnivariatePolynomialZp64 polyModulus,
UnivariateDivision.InverseModMonomial<UnivariatePolynomialZp64> invMod) |
Returns modular composition poly(point) mod polyModulus calculated with plain Horner scheme.
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.createMonomialMod(long exponent,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod) |
Creates x^exponent mod polyModulus.
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.createMonomialMod(BigInteger exponent,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod) |
Creates x^exponent mod polyModulus.
|
static <E> UnivariatePolynomial<E>[] |
UnivariateDivision.divideAndRemainderFast(UnivariatePolynomial<E> dividend,
UnivariatePolynomial<E> divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod,
boolean copy) |
Fast algorithm for division with remainder using Newton's iteration.
|
static UnivariatePolynomialZp64[] |
UnivariateDivision.divideAndRemainderFast(UnivariatePolynomialZp64 dividend,
UnivariatePolynomialZp64 divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomialZp64> invMod,
boolean copy) |
Fast algorithm for division with remainder using Newton's iteration.
|
static <Poly extends IUnivariatePolynomial<Poly>> Poly[] |
UnivariateDivision.divideAndRemainderFast(Poly dividend,
Poly divider,
UnivariateDivision.InverseModMonomial<Poly> invMod,
boolean copy) |
Returns {quotient, remainder} of dividend and divider
|
static <Poly extends IUnivariatePolynomial<Poly>> Poly[] |
UnivariateDivision.divideAndRemainderFast0(Poly dividend,
Poly divider,
UnivariateDivision.InverseModMonomial<Poly> invRevMod,
boolean copy) |
fast division implementation
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyAddMod(T m1,
T m2,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns the remainder of the sum (m1 + m2) and polyModulus using fast algorithm for
pre-conditioned modulus.
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyMod(T dividend,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns the remainder of dividend and polyModulus using fast algorithm for pre-conditioned
modulus.
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyMultiplyMod(T m1,
T m2,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns the remainder of the product (m1 * m2) and polyModulus using fast algorithm for
pre-conditioned modulus.
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyNegateMod(T m1,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns the remainder of the negated poly -m1 and polyModulus using fast algorithm for
pre-conditioned modulus.
|
static <T extends IUnivariatePolynomial<T>> ArrayList<T> |
ModularComposition.polyPowers(T poly,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
int nIterations) |
Returns poly^{i} mod polyModulus for i in [0...nIterations]
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyPowMod(T base,
long exponent,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns base in a power of non-negative exponent modulo polyModulus
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polyPowMod(T base,
BigInteger exponent,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns base in a power of non-negative exponent modulo polyModulus
|
static <T extends IUnivariatePolynomial<T>> T |
UnivariatePolynomialArithmetic.polySubtractMod(T m1,
T m2,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
boolean copy) |
Returns the remainder of the difference (m1 - m2) and polyModulus using fast algorithm for
pre-conditioned modulus.
|
static <E> UnivariatePolynomial<E> |
ModularComposition.powModulusMod(UnivariatePolynomial<E> poly,
UnivariatePolynomial<E> polyModulus,
UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod,
ArrayList<UnivariatePolynomial<E>> xPowers) |
Returns poly^modulus mod polyModulus using precomputed monomial powers x^{i*modulus} mod
polyModulus for i in [0...degree(poly)]
|
static UnivariatePolynomialZp64 |
ModularComposition.powModulusMod(UnivariatePolynomialZp64 poly,
UnivariatePolynomialZp64 polyModulus,
UnivariateDivision.InverseModMonomial<UnivariatePolynomialZp64> invMod,
ArrayList<UnivariatePolynomialZp64> xPowers) |
Returns poly^modulus mod polyModulus using precomputed monomial powers x^{i*modulus} mod
polyModulus for i in [0...degree(poly)]
|
static <T extends IUnivariatePolynomial<T>> T |
ModularComposition.powModulusMod(T poly,
T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod,
ArrayList<T> xPowers) |
Returns poly^modulus mod polyModulus using precomputed monomial powers x^{i*modulus} mod
polyModulus for i in [0...degree(poly)]
|
static <E> UnivariatePolynomial<E> |
UnivariateDivision.quotientFast(UnivariatePolynomial<E> dividend,
UnivariatePolynomial<E> divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod,
boolean copy) |
Fast quotient using Newton's iteration.
|
static UnivariatePolynomialZp64 |
UnivariateDivision.quotientFast(UnivariatePolynomialZp64 dividend,
UnivariatePolynomialZp64 divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomialZp64> invMod,
boolean copy) |
Fast quotient using Newton's iteration.
|
static <E> UnivariatePolynomial<E> |
UnivariateDivision.remainderFast(UnivariatePolynomial<E> dividend,
UnivariatePolynomial<E> divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod,
boolean copy) |
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
|
static UnivariatePolynomialZp64 |
UnivariateDivision.remainderFast(UnivariatePolynomialZp64 dividend,
UnivariatePolynomialZp64 divider,
UnivariateDivision.InverseModMonomial<UnivariatePolynomialZp64> invMod,
boolean copy) |
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
|
static <Poly extends IUnivariatePolynomial<Poly>> Poly |
UnivariateDivision.remainderFast(Poly dividend,
Poly divider,
UnivariateDivision.InverseModMonomial<Poly> invMod,
boolean copy) |
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
|
static <T extends IUnivariatePolynomial<T>> ArrayList<T> |
ModularComposition.xPowers(T polyModulus,
UnivariateDivision.InverseModMonomial<T> invMod) |
Returns x^{i*modulus} mod polyModulus for i in [0...degree], where degree is
polyModulus degree.
|