Processing math: 100%
CGAL 5.1 - Polynomial
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
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

See also
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...
 

Member Function Documentation

◆ 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.