The following procedures returns the degree of the product of two polynomial either with real or integer coefficients:
int Degree_Product_Polynomial_Interval(int n1,VECTOR &Coeff1,int n2,VECTOR &Coeff2); int Degree_Product_Polynomial_Interval(int n1,INTEGER_VECTOR &Coeff1,int n2, INTEGER_VECTOR &Coeff2);Then you may use the following procedure to compute the product of polynomial either with real,integer or interval coefficients:
VECTOR Multiply_Polynomial_Interval(int n1,VECTOR &Coeff1,int n2,VECTOR &Coeff2); INTEGER_VECTOR Multiply_Polynomial_Interval(int n1,INTEGER_VECTOR &Coeff1, int n2,INTEGER_VECTOR &Coeff2); INTERVAL_VECTOR Multiply_Polynomial_Interval(int n1,INTERVAL_VECTOR &Coeff1, int n2,INTERVAL_VECTOR &Coeff2);All these procedures return the coefficients of the product, the leading term being 0 only if one polynomial is equal to 0.
To take into account the rounding errors you may use:
INTERVAL_VECTOR Multiply_Polynomial_Safe_Interval(int n1,VECTOR &Coeff1,int n2,VECTOR &Coeff2);