Class DensePoly

java.lang.Object
it.unimi.di.prog2.h09.DensePoly

public class DensePoly extends Object
DensePolys are immutable polynomials with integer coefficients.

A typical Poly is \( p = c_0 + c_1 x + c_2 x^2 + \cdots + c_n x^n \).

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final int[]
    The array of coefficients, the coeff[i] is the coefficient of \( x^i \).
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    Initializes this to be the zero polynomial, that is \( p = 0 \).
    private
    DensePoly(int n)
    Initializes a polynomial of given degree (with all coefficients equal to 0).
     
    DensePoly(int c, int n)
    Initializes this to be the polynomial \(p = cx^n\).
  • Method Summary

    Modifier and Type
    Method
    Description
    Performs polynomial addition.
    int
    coeff(int d)
    Returns the coefficient of the term of given exponent.
    int
    Returns the degree of this polynomial.
    Returns the negate polynomial.
    Performs polynomial multiplication.
    Performs polynomial subtraction.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • coefficient

      private final int[] coefficient
      The array of coefficients, the coeff[i] is the coefficient of \( x^i \).
  • Constructor Details

    • DensePoly

      public DensePoly()
      Initializes this to be the zero polynomial, that is \( p = 0 \).
    • DensePoly

      public DensePoly(int c, int n) throws IllegalArgumentException
      Initializes this to be the polynomial \(p = cx^n\).
      Parameters:
      c - the coefficient.
      n - the degree.
      Throws:
      IllegalArgumentException - if n < 0.
    • DensePoly

      private DensePoly(int n)
      Initializes a polynomial of given degree (with all coefficients equal to 0).
      Parameters:
      n - the degree, must be non-negative.
  • Method Details

    • degree

      public int degree()
      Returns the degree of this polynomial.
      Returns:
      the largest exponent with a non-zero coefficient; returns 0 if this is the zero Poly.
    • coeff

      public int coeff(int d)
      Returns the coefficient of the term of given exponent.
      Parameters:
      d - the exponent of the term to consider.
      Returns:
      the coefficient of the considered term.
    • add

      public DensePoly add(DensePoly q) throws NullPointerException
      Performs polynomial addition.

      If \( p \) is this polynomial, returns \( p + q \).

      Parameters:
      q - the polynomial to add to this one.
      Returns:
      the sum among this and the given polynomial.
      Throws:
      NullPointerException - if q is null.
    • mul

      public DensePoly mul(DensePoly q) throws NullPointerException
      Performs polynomial multiplication.

      If \( p \) is this polynomial, returns \( p q \).

      Parameters:
      q - the polynomial to multiply by this one.
      Returns:
      the product among this and the given polynomial.
      Throws:
      NullPointerException - if q is null.
    • sub

      public DensePoly sub(DensePoly q) throws NullPointerException
      Performs polynomial subtraction.

      If \( p \) is this polynomial, returns \( p - q \).

      Parameters:
      q - the polynomial to subtract from this one.
      Returns:
      the subtraction among this and the given polynomial.
      Throws:
      NullPointerException - if q is null.
    • minus

      public DensePoly minus()
      Returns the negate polynomial.

      If \( p \) is this polynomial, returns \( -p \).

      Returns:
      this polynomial multiplied by \( -1 \).