mirror of https://github.com/CGAL/cgal
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
|
|
/*!
|
|
\ingroup PkgPolynomialConcepts
|
|
\cgalConcept
|
|
|
|
This `Functor` substitutes all variables of a given multivariate
|
|
`PolynomialTraits_d::Polynomial_d` \f$ p\f$ by the values given in the
|
|
iterator range, where begin refers the value for the innermost variable.
|
|
In contrast to `PolynomialTraits_d::Substitute` the given polynomial \f$ p\f$
|
|
is interpreted as a homogeneous polynomial.
|
|
Hence the iterator range is required to be of length `PolynomialTraits_d::d+1`.
|
|
|
|
For instance the polynomial \f$ p(x_0,x_1) = x_0^2x_1^3+x_1^4\f$ is interpreted as the homogeneous
|
|
polynomial \f$ p(x_0,x_1,w) = x_0^2x_1^3+x_1^4w^1\f$.
|
|
|
|
\cgalRefines Assignable
|
|
\cgalRefines CopyConstructible
|
|
\cgalRefines DefaultConstructible
|
|
|
|
\cgalHeading{Types}
|
|
|
|
Note that the `result_type` is the coercion type of the value type of the
|
|
given iterator range and `PolynomialTraits_d::Innermost_coefficient_type`.
|
|
In particular `std::iterator_traits<Input_iterator>::%value_type` must be
|
|
`ExplicitInteroperable` with `PolynomialTraits_d::Innermost_coefficient_type`.
|
|
Hence, it can not be provided as a public type in advance.
|
|
|
|
\sa `Polynomial_d`
|
|
\sa `PolynomialTraits_d`
|
|
\sa `PolynomialTraits_d::Substitute`
|
|
\sa `CGAL::Coercion_traits`
|
|
|
|
*/
|
|
|
|
class PolynomialTraits_d::SubstituteHomogeneous {
|
|
public:
|
|
|
|
/// \name Operations
|
|
/// @{
|
|
|
|
/*!
|
|
|
|
Substitutes each variable of \f$ p\f$ by the values given in the iterator range,
|
|
where \f$ p\f$ is interpreted as a homogeneous polynomial in all variables.
|
|
The begin iterator refers to the innermost variable \f$ x_0\f$.
|
|
\pre (`end-begin` == `PolynomialTraits_d::d`)+1
|
|
|
|
*/
|
|
template<class Input_iterator>
|
|
result_type operator()(PolynomialTraits_d::Polynomial_d p,
|
|
Input_iterator begin, Input_iterator end);
|
|
|
|
/// @}
|
|
|
|
}; /* end PolynomialTraits_d::SubstituteHomogeneous */
|
|
|