Class LongPolynomial2

java.lang.Object
org.bouncycastle.pqc.legacy.math.ntru.polynomial.LongPolynomial2

public class LongPolynomial2 extends Object
A polynomial class that combines two coefficients into one 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 Details

    • LongPolynomial2

      public LongPolynomial2(IntegerPolynomial p)
      Constructs a LongPolynomial2 from a IntegerPolynomial. The two polynomials are independent of each other.
      Parameters:
      p - the original polynomial. Coefficients must be between 0 and 2047.
  • Method Details

    • mult

      public LongPolynomial2 mult(LongPolynomial2 poly2)
      Multiplies the polynomial with another, taking the indices mod N and the values mod 2048.
    • toIntegerPolynomial

      public IntegerPolynomial toIntegerPolynomial()
    • subAnd

      public 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.
      Parameters:
      b - another polynomial
      mask - 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

      public Object clone()
      Overrides:
      clone in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object