Package org.bouncycastle.pqc.math.ntru.polynomial

## Class BigIntPolynomial

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

-     public class BigIntPolynomial
      extends java.lang.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 Summary

    Constructors
    Constructor | Description
    --- | ---
    `BigIntPolynomial​(IntegerPolynomial p)` | Constructs a `BigIntPolynomial` from a `IntegerPolynomial`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(BigIntPolynomial b)` | Adds another polynomial which can have a different number of coefficients.
    `java.lang.Object` | `clone()` | Makes a copy of the polynomial that is independent of the original.
    `BigDecimalPolynomial` | `div​(java.math.BigDecimal divisor, int decimalPlaces)` | Divides each coefficient by a `BigDecimal` and rounds the result to `decimalPlaces` places.
    `void` | `div​(java.math.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.
    `boolean` | `equals​(java.lang.Object obj)` |
    `java.math.BigInteger[]` | `getCoeffs()` |
    `int` | `getMaxCoeffLength()` | Returns the base10 length of the largest coefficient.
    `int` | `hashCode()` |
    `void` | `mod​(java.math.BigInteger modulus)` | Takes each coefficient modulo a number.
    `void` | `mult​(java.math.BigInteger factor)` | Multiplies each coefficient by a `BigInteger`.
    `BigIntPolynomial` | `mult​(BigIntPolynomial poly2)` | Multiplies the polynomial by another, taking the indices mod N.
    `void` | `sub​(BigIntPolynomial b)` | Subtracts another polynomial which can have a different number of coefficients.

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

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

    - #### 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​(java.math.BigInteger factor)

      Multiplies each coefficient by a `BigInteger`. Does not return a new polynomial but modifies this polynomial.
      Parameters:
        `factor` -

    - #### div

          public void div​(java.math.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​(java.math.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​(java.math.BigInteger modulus)

      Takes each coefficient modulo a number.
      Parameters:
        `modulus` -

    - #### clone

          public java.lang.Object clone()

      Makes a copy of the polynomial that is independent of the original.
      Overrides:
        `clone` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### getCoeffs

          public java.math.BigInteger[] getCoeffs()