## PolynomialTraits_d

### Definition

A model of PolynomialTraits_d is associated with a type Polynomial_d. The type Polynomial_d represents a multivariate polynomial. The number of variables is denoted as the dimension d of the polynomial, it is arbitrary but fixed for a certain model of this concept. Note that univariate polynomials are not excluded by this concept. In this case d is just set to one.

PolynomialTraits_d provides two different views on the multivariate polynomial.

• The recursive view: In this view, the polynomial is considered as an element of R[x0, ,xd-2][xd-1]. That is, the polynomial is treated as a univariate polynomial over the ring R[x0, ,xd-2].
• The symmetric or multivariate view: This view is symmetric with respect to all variables, considering the polynomial as an element of R [x0, ,xd-1].

Many functors consider the polynomial as a univariate polynomial in one variable. By default this is the outermost variable xd-1. However, in general it is possible to select a certain variable.

### Constants

 static const int d; The dimension and the number of variables respectively.

### Types

 PolynomialTraits_d::Polynomial_d Type representing R[x0, … ,xd-1]. PolynomialTraits_d::Coefficient_type Type representing R[x0, … ,xd-2]. PolynomialTraits_d::Innermost_coefficient_type Type representing the base ring R. PolynomialTraits_d::Coefficient_const_iterator Const iterator used to iterate through all coefficients of the polynomial. PolynomialTraits_d::Innermost_coefficient_const_iterator Const iterator used to iterate through all innermost coefficients of the polynomial. template PolynomialTraits_d:: struct Rebind This nested template class has to define a type Other which is a model of the concept PolynomialTraits_d, where d is the number of variables and T the Innermost_coefficient_type.

### Functors

In case a functor is not provided it is set to CGAL::Null_functor.

 PolynomialTraits_d::Construct_polynomial A model of PolynomialTraits_d::ConstructPolynomial. PolynomialTraits_d::Get_coefficient A model of PolynomialTraits_d::GetCoefficient. PolynomialTraits_d::Get_innermost_coefficient A model of PolynomialTraits_d::GetInnermostCoefficient. PolynomialTraits_d::Construct_coefficient_const_iterator_range A model of PolynomialTraits_d::ConstructCoefficientConstIteratorRange. PolynomialTraits_d::Construct_innermost_coefficient_const_iterator_range A model of PolynomialTraits_d::ConstructInnermostCoefficientConstIteratorRange. PolynomialTraits_d::Swap A model of PolynomialTraits_d::Swap. PolynomialTraits_d::Move A model of PolynomialTraits_d::Move. PolynomialTraits_d::Degree A model of PolynomialTraits_d::Degree. PolynomialTraits_d::Total_degree A model of PolynomialTraits_d::TotalDegree. PolynomialTraits_d::Degree_vector A model of PolynomialTraits_d::DegreeVector. PolynomialTraits_d::Leading_coefficient A model of PolynomialTraits_d::LeadingCoefficient. PolynomialTraits_d::Innermost_leading_coefficient A model of PolynomialTraits_d::InnermostLeadingCoefficient. PolynomialTraits_d::Canonicalize A model of PolynomialTraits_d::Canonicalize. PolynomialTraits_d::Differentiate A model of PolynomialTraits_d::Differentiate. PolynomialTraits_d::Evaluate A model of PolynomialTraits_d::Evaluate. PolynomialTraits_d::Evaluate_homogeneous A model of PolynomialTraits_d::EvaluateHomogeneous. PolynomialTraits_d::Substitute A model of PolynomialTraits_d::Substitute. PolynomialTraits_d::Substitute_homogeneous A model of PolynomialTraits_d::SubstituteHomogeneous. PolynomialTraits_d::Is_zero_at A model of PolynomialTraits_d::IsZeroAt. PolynomialTraits_d::Is_zero_at_homogeneous A model of PolynomialTraits_d::IsZeroAtHomogeneous. PolynomialTraits_d::Sign_at A model of PolynomialTraits_d::SignAt. In case Innermost_coefficient_type is not RealEmbeddable this is CGAL::Null_functor. PolynomialTraits_d::Sign_at_homogeneous A model of PolynomialTraits_d::SignAtHomogeneous. In case Innermost_coefficient_type is not RealEmbeddable this is CGAL::Null_functor. PolynomialTraits_d::Compare A model of PolynomialTraits_d::Compare. In case Innermost_coefficient_type is not RealEmbeddable this is CGAL::Null_functor. PolynomialTraits_d::Univariate_content In case PolynomialTraits_d::Coefficient_type is not a model of UniqueFactorizationDomain, this is CGAL::Null_functor, otherwise this is a model of PolynomialTraits_d::UnivariateContent. PolynomialTraits_d::Multivariate_content In case PolynomialTraits_d::Innermost_coefficient_type is not a model of UniqueFactorizationDomain, this is CGAL::Null_functor, otherwise this is a model of PolynomialTraits_d::MultivariateContent. PolynomialTraits_d::Shift A model of PolynomialTraits_d::Shift. PolynomialTraits_d::Negate A model of PolynomialTraits_d::Negate. PolynomialTraits_d::Invert A model of PolynomialTraits_d::Invert. PolynomialTraits_d::Translate A model of PolynomialTraits_d::Translate. PolynomialTraits_d::Translate_homogeneous A model of PolynomialTraits_d::TranslateHomogeneous. PolynomialTraits_d::Scale A model of PolynomialTraits_d::Scale. PolynomialTraits_d::Scale_homogeneous A model of PolynomialTraits_d::ScaleHomogeneous. PolynomialTraits_d::Make_square_free A model of PolynomialTraits_d::MakeSquareFree. PolynomialTraits_d::Square_free_factorize In case PolynomialTraits::Polynomial_d is not a model of UniqueFactorizationDomain, this is of type CGAL::Null_functor, otherwise this is a model of PolynomialTraits_d::SquareFreeFactorize. PolynomialTraits_d::Pseudo_division A model of PolynomialTraits_d::PseudoDivision. PolynomialTraits_d::Pseudo_division_remainder A model of PolynomialTraits_d::PseudoDivisionRemainder. PolynomialTraits_d::Pseudo_division_quotient A model of PolynomialTraits_d::PseudoDivisionQuotient. PolynomialTraits_d::Gcd_up_to_constant_factor A model of PolynomialTraits_d::GcdUpToConstantFactor. PolynomialTraits_d::Integral_division_up_to_constant_factor A model of PolynomialTraits_d::IntegralDivisionUpToConstantFactor. PolynomialTraits_d::Content_up_to_constant_factor A model of PolynomialTraits_d::UnivariateContentUpToConstantFactor. PolynomialTraits_d::Square_free_factorize_up_to_constant_factor A model of PolynomialTraits_d::SquareFreeFactorizeUpToConstantFactor. PolynomialTraits_d::Resultant A model of PolynomialTraits_d::Resultant. PolynomialTraits_d::Polynomial_subresultants Either CGAL::Null_functor or a model of PolynomialTraits_d::PolynomialSubresultants. PolynomialTraits_d::Polynomial_subresultants_with_cofactors Either CGAL::Null_functor or a model of PolynomialTraits_d::PolynomialSubresultants_with_cofactors. PolynomialTraits_d::Principal_subresultants Either CGAL::Null_functor or a model of PolynomialTraits_d::PrincipalSubresultants. PolynomialTraits_d::Sturm_habicht_sequence Either CGAL::Null_functor or a model of PolynomialTraits_d::SturmHabichtSequence. PolynomialTraits_d::Sturm_habicht_sequence_with_cofactors Either CGAL::Null_functor or a model of PolynomialTraits_d::SturmHabichtSequenceWithCofactors. PolynomialTraits_d::Principal_sturm_habicht_sequence Either CGAL::Null_functor or a model of PolynomialTraits_d::PrincipalSturmHabichtSequence.