\begin{ccRefConcept}{PolynomialTraits_d::SubstituteHomogeneous} \ccDefinition This \ccc{Functor} substitutes all variables of a given multivariate \ccc{PolynomialTraits_d::Polynomial_d} $p$ by the values given in the iterator range, where begin refers the value for the innermost variable. In contrast to \ccc{PolynomialTraits_d::Substitute} the given polynomial $p$ is interpreted as a homogeneous polynomial. Hence the iterator range is required to be of length \ccc{PolynomialTraits_d::d+1}. \\ For instance the polynomial $p(x_0,x_1) = x_0^2x_1^3+x_1^4$ is interpreted as the homogeneous polynomial $p(x_0,x_1,w) = x_0^2x_1^3+x_1^4w^1$. \ccRefines Assignable\\ CopyConstructible\\ DefaultConstructible\\ \ccTypes Note that the \ccc{result_type} is the coercion type of the value type of the given iterator range and \ccc{PolynomialTraits_d::Innermost_coefficient_type}. In particular \ccc{std::iterator_traits::value_type} must be \ccc{ExplicitInteroperable} with \ccc{PolynomialTraits_d::Innermost_coefficient_type}. Hence, it can not be provided as a public type in advance. % no public types \ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{} \ccCreationVariable{fo} \ccOperations \ccMethod{ template result_type operator()(PolynomialTraits_d::Polynomial_d p, Input_iterator begin, Input_iterator end);}{ Substitutes each variable of $p$ by the values given in the iterator range, where $p$ is interpreted as a homogeneous polynomial in all variables. The begin iterator refers to the innermost variable $x_0$. %The homogeneous degree is considered as equal to the total degree of $p$. \ccPrecond{(end-begin == \ccc{PolynomialTraits_d::d})+1} } %\ccHasModels \ccSeeAlso \ccRefIdfierPage{Polynomial_d}\\ \ccRefIdfierPage{PolynomialTraits_d}\\ \ccRefIdfierPage{PolynomialTraits_d::Substitute}\\ \ccRefIdfierPage{CoercionTraits}\\ \end{ccRefConcept}