diff --git a/.gitattributes b/.gitattributes index f383a54c6b1..fc5940fe9db 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2957,6 +2957,7 @@ Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_InnermostLeadingCoefficient Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsZeroAt.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_IsZeroAtHomogeneous.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Move.tex -text +Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Permute.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Polynomial_subresultants.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Principal_sturm_habicht_sequence.tex -text Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Principal_subresultants.tex -text diff --git a/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Permute.tex b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Permute.tex new file mode 100644 index 00000000000..51769ebddf1 --- /dev/null +++ b/Polynomial/doc_tex/Polynomial_ref/PolynomialTraits_d_Permute.tex @@ -0,0 +1,56 @@ +\begin{ccRefConcept}{PolynomialTraits_d::Permute} + +\ccDefinition + +This \ccc{AdaptableFunctor} permutes the variables of the given polynomial +with respect to a permutation $\sigma$. $\sigma$ is given by the iterator +range of length $PolynomialTraits_d::d$, containing 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 permutation $\sigma$ is: +\[\left( \begin{array}{ccccc} 0&1&2&3\\ 2&0&1&3 \end{array}\right).\] +and the iterator range should contain the sequence $[2,0,1,3]$. + + +\ccRefines + +\ccc{AdaptableFunctor} + +\ccTypes + +\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{} +\ccTypedef{typedef PolynomialTraits_d::Polynomial_d result_type;}{}\ccGlue + +\ccOperations + +\ccCreationVariable{fo} + +\ccOperations +\ccMethod{ +template +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. +%Change order of variables in $p$ as defined by the iterator range. +\ccPrecond{(end-begin == \ccc{PolynomialTraits_d::d})} +\ccPrecond{\ccc{std::iterator_traits< InputIterator >::value_type} is convertible to int.} +\ccPrecond{The iterator range contains each value in $\{0,\dots,d-1\}$ exactly once. } +} + + + + + +%\ccHasModels + +\ccSeeAlso + +\ccRefIdfierPage{Polynomial_d}\\ +\ccRefIdfierPage{PolynomialTraits_d}\\ + +\end{ccRefConcept} \ No newline at end of file diff --git a/Polynomial/doc_tex/Polynomial_ref/intro.tex b/Polynomial/doc_tex/Polynomial_ref/intro.tex index 7bd1e397af7..c06253f9783 100644 --- a/Polynomial/doc_tex/Polynomial_ref/intro.tex +++ b/Polynomial/doc_tex/Polynomial_ref/intro.tex @@ -26,6 +26,7 @@ \ccRefConceptPage{PolynomialTraits_d::ConstructCoefficientConstIteratorRange}\\ \ccRefConceptPage{PolynomialTraits_d::ConstructInnermostCoefficientConstIteratorRange}\\ +\ccRefConceptPage{PolynomialTraits_d::Permute}\\ \ccRefConceptPage{PolynomialTraits_d::Swap}\\ \ccRefConceptPage{PolynomialTraits_d::Move}\\ diff --git a/Polynomial/doc_tex/Polynomial_ref/main.tex b/Polynomial/doc_tex/Polynomial_ref/main.tex index 3e42a8910cc..250359a55d9 100644 --- a/Polynomial/doc_tex/Polynomial_ref/main.tex +++ b/Polynomial/doc_tex/Polynomial_ref/main.tex @@ -15,6 +15,7 @@ \input{Polynomial_ref/PolynomialTraits_d_ConstructCoefficientConstIteratorRange.tex} \input{Polynomial_ref/PolynomialTraits_d_ConstructInnermostCoefficientConstIteratorRange.tex} +\input{Polynomial_ref/PolynomialTraits_d_Permute.tex} \input{Polynomial_ref/PolynomialTraits_d_Swap.tex} \input{Polynomial_ref/PolynomialTraits_d_Move.tex}