CGAL 5.3 - Polynomial
PolynomialTraits_d::Permute Concept Reference

## Definition

This AdaptableFunctor permutes the variables of the given polynomial with respect to a permutation $$\sigma$$, that is, each monomial $$\prod x_i^{e_i}$$ will be mapped to the monomial $$\prod x_{\sigma(i)}^{e_i}$$. The permutation $$\sigma$$ is given by the iterator range of length PolynomialTraits_d::d, which is supposed to contain the second row of the permutation.

For instance, let $$p$$ be a polynomial in 4 variables and it is intended to change the order of the variables such that $$x_0 \mapsto x_2$$, $$x_1 \mapsto x_0$$, $$x_2 \mapsto x_1$$ and $$x_3 \mapsto x_3$$. In this case the iterator range should contain the sequence $$[2,0,1,3]$$.

Refines:

AdaptableFunctor

CopyConstructible

DefaultConstructible

Polynomial_d
PolynomialTraits_d

## Types

typedef PolynomialTraits_d::Polynomial_d result_type

## Operations

template<class Input_iterator >
result_type operator() (PolynomialTraits_d::Polynomial_d p, Input_iterator begin, Input_iterator end)
Returns $$p$$ with interchanged variables as defined by the iterator range. More...

## ◆ operator()()

template<class Input_iterator >
 result_type PolynomialTraits_d::Permute::operator() ( PolynomialTraits_d::Polynomial_d p, Input_iterator begin, Input_iterator end )

Returns $$p$$ with interchanged variables as defined by the iterator range.

Precondition
(end-begin == PolynomialTraits_d::d)
std::iterator_traits< InputIterator >::value_type is convertible to int.
The iterator range contains each value in $$\{0,\dots,d-1\}$$ exactly once.