cgal/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Substitu...

52 lines
1.9 KiB
TeX

\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<Input_iterator>::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<class Input_iterator>
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}