Package it.unimi.di.prog2.e09
Class SparsePoly
java.lang.Object
it.unimi.di.prog2.e09.SparsePoly
SparsePoly
s are immutable polynomials with integer coefficients such that the number of
nonzero coefficient is small with respect to the degree.
A typical Poly
is \( p = c_0 + c_1 x + c_2 x^2 + \cdots + c_n x^n \).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final record
A record holding a non zero term of the polynomial. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List
<SparsePoly.Term> The array of terms (in increasing non-zero degree). -
Constructor Summary
ConstructorsConstructorDescriptionInitializes this to be the zero polynomial, that is \( p = 0 \).SparsePoly
(int c, int n) Initializes this to be the polynomial \(p = cx^n\). -
Method Summary
Modifier and TypeMethodDescriptionadd
(SparsePoly q) Performs polynomial addition.int
coeff
(int d) Returns the coefficient of the term of given exponent.int
degree()
Returns the degree of this polynomial.minus()
Returns the negate polynomial.mul
(SparsePoly q) Performs polynomial multiplication.sub
(SparsePoly q) Performs polynomial subtraction.
-
Field Details
-
terms
The array of terms (in increasing non-zero degree).
-
-
Constructor Details
-
SparsePoly
public SparsePoly()Initializes this to be the zero polynomial, that is \( p = 0 \). -
SparsePoly
Initializes this to be the polynomial \(p = cx^n\).- Parameters:
c
- the coefficient.n
- the degree.- Throws:
NegativeExponentException
- ifn
< 0.
-
-
Method Details
-
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.
-
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
.
-
add
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
- ifq
isnull
.
-
mul
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
- ifq
isnull
.
-
sub
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
- ifq
isnull
.
-
minus
Returns the negate polynomial.If \( p \) is this polynomial, returns \( -p \).
- Returns:
- this polynomial multiplied by \( -1 \).
-