Class LongPolynomial2
java.lang.Object
org.bouncycastle.pqc.legacy.math.ntru.polynomial.LongPolynomial2
A polynomial class that combines two coefficients into one
Coefficients can be between 0 and 2047 and are stored in pairs in the bits 0..10 and 24..34 of a
long
value for
faster multiplication in 64 bit environments.Coefficients can be between 0 and 2047 and are stored in pairs in the bits 0..10 and 24..34 of a
long
number.-
Constructor Summary
ConstructorsConstructorDescriptionConstructs aLongPolynomial2
from aIntegerPolynomial
. -
Method Summary
Modifier and TypeMethodDescriptionclone()
boolean
mult
(LongPolynomial2 poly2) Multiplies the polynomial with another, taking the indices mod N and the values mod 2048.void
mult2And
(int mask) Multiplies this polynomial by 2 and applies an AND mask to the upper and lower halves of each coefficients.void
subAnd
(LongPolynomial2 b, int mask) Subtracts another polynomial which must have the same number of coefficients, and applies an AND mask to the upper and lower halves of each coefficients.
-
Constructor Details
-
LongPolynomial2
Constructs aLongPolynomial2
from aIntegerPolynomial
. The two polynomials are independent of each other.- Parameters:
p
- the original polynomial. Coefficients must be between 0 and 2047.
-
-
Method Details
-
mult
Multiplies the polynomial with another, taking the indices mod N and the values mod 2048. -
toIntegerPolynomial
-
subAnd
Subtracts another polynomial which must have the same number of coefficients, and applies an AND mask to the upper and lower halves of each coefficients.- Parameters:
b
- another polynomialmask
- a bit mask less than 2048 to apply to each 11-bit coefficient
-
mult2And
public void mult2And(int mask) Multiplies this polynomial by 2 and applies an AND mask to the upper and lower halves of each coefficients.- Parameters:
mask
- a bit mask less than 2048 to apply to each 11-bit coefficient
-
clone
-
equals
-