Class 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 Detail

      • 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 Detail

      • mult

        public LongPolynomial2 mult​(LongPolynomial2 poly2)
        Multiplies the polynomial with another, taking the indices mod N and the values mod 2048.
      • 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