\begin{ccRefConcept}{PolynomialTraits_d::Move}

\ccDefinition

This \ccc{AdaptableFunctor} moves a variable at position $i$ to a 
new position $j$. The relative order of the other variables is preserved, 
that is, the variables between $x_i$ and $x_j$ (including $x_j$) are moved by
one position while $x_i$ is moved to the former position of $x_j$. 

This function may be used to make a certain variable the outer most variable. 

\ccRefines 

\ccc{AdaptableFunctor}\\
\ccc{CopyConstructible}\\
\ccc{DefaultConstructible}\\

\ccTypes
\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   result_type;}{}\ccGlue

\ccOperations

\ccCreationVariable{fo}
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d,
                                 int i, int j);}{ 
This function moves the variable at position $i$ to its new position $j$ and returns 
the new polynomial. The relative order of the other variables is preserved.  
                  \ccPrecond $0 \leq i  < d$   
                  \ccPrecond $0 \leq j  < d$                       
                }       



%\ccHasModels

\ccSeeAlso

\ccRefIdfierPage{Polynomial_d}\\
\ccRefIdfierPage{PolynomialTraits_d}\\

\end{ccRefConcept}