Class Poly

java.lang.Object
it.unimi.di.prog2.h08.Poly

public class Poly extends Object
Polys 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 \).

  • Constructor Summary

    Constructors
    Constructor
    Description
    Initializes this to be the zero polynomial, that is \( p = 0 \).
    Poly(int c, int n)
    Initializes this to be the polynomial \(p = cx^n\).
  • Method Summary

    Modifier and Type
    Method
    Description
    add(Poly q)
    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.
    static Poly
    A factory method returning a monomial.
    mul(Poly q)
    Performs polynomial multiplication.
    sub(Poly q)
    Performs polynomial subtraction.

    Methods inherited from class java.lang.Object

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

    • Poly

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

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

    • monomialWithCoeffAndDegree

      public static Poly monomialWithCoeffAndDegree(int c, int n)
      A factory method returning a monomial. (see EJ 2.1)
      Parameters:
      c - the coefficient.
      n - the degree.
      Returns:
      the monomial, if n >= 0.
      Throws:
      NegativeExponentException - if n < 0.
    • 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 Poly add(Poly 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 Poly mul(Poly 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 Poly sub(Poly 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 Poly minus()
      Returns the negate polynomial.

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

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