Class BigIntPolynomial

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

public class BigIntPolynomial extends Object
A polynomial with BigInteger coefficients.
Some methods (like add) change the polynomial, others (like mult) do not but return the result as a new polynomial.
  • Constructor Details

    • BigIntPolynomial

      public BigIntPolynomial(IntegerPolynomial p)
      Constructs a BigIntPolynomial from a IntegerPolynomial. The two polynomials are independent of each other.
      Parameters:
      p - the original polynomial
  • Method Details

    • mult

      public BigIntPolynomial mult(BigIntPolynomial poly2)
      Multiplies the polynomial by another, taking the indices mod N. Does not change this polynomial but returns the result as a new polynomial.
      Both polynomials must have the same number of coefficients.
      Parameters:
      poly2 - the polynomial to multiply by
      Returns:
      a new polynomial
    • add

      public void add(BigIntPolynomial b)
      Adds another polynomial which can have a different number of coefficients.
      Parameters:
      b - another polynomial
    • sub

      public void sub(BigIntPolynomial b)
      Subtracts another polynomial which can have a different number of coefficients.
      Parameters:
      b - another polynomial
    • mult

      public void mult(BigInteger factor)
      Multiplies each coefficient by a BigInteger. Does not return a new polynomial but modifies this polynomial.
      Parameters:
      factor -
    • div

      public void div(BigInteger divisor)
      Divides each coefficient by a BigInteger and rounds the result to the nearest whole number.
      Does not return a new polynomial but modifies this polynomial.
      Parameters:
      divisor - the number to divide by
    • div

      public BigDecimalPolynomial div(BigDecimal divisor, int decimalPlaces)
      Divides each coefficient by a BigDecimal and rounds the result to decimalPlaces places.
      Parameters:
      divisor - the number to divide by
      decimalPlaces - the number of fractional digits to round the result to
      Returns:
      a new BigDecimalPolynomial
    • getMaxCoeffLength

      public int getMaxCoeffLength()
      Returns the base10 length of the largest coefficient.
      Returns:
      length of the longest coefficient
    • mod

      public void mod(BigInteger modulus)
      Takes each coefficient modulo a number.
      Parameters:
      modulus -
    • clone

      public Object clone()
      Makes a copy of the polynomial that is independent of the original.
      Overrides:
      clone in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

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

      public BigInteger[] getCoeffs()