\begin{ccRefConcept}{PolynomialTraits_d::TranslateHomogeneous}
\ccDefinition

Given numerator $a$ and denominator $b$ this \ccc{AdaptableFunctor} translates a 
\ccc{PolynomialTraits_d::Polynomial_d} with respect to one variable by $a/b$. 

Note that this functor operates on the polynomial in the univariate view, that is, 
the polynomial is considered as a univariate polynomial in one specific variable. 
Moreover, the polynomial is considered as a homogeneous polynomial in that variable.
Note that $a$ and $b$ are of type \ccc{PolynomialTraits_d::Coefficient_type}.


\ccRefines 
\ccc{AdaptableFunctor}

\ccTypes

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

\ccOperations
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
                                 PolynomialTraits_d::Coefficient_type  a,
                                 PolynomialTraits_d::Coefficient_type  b);}
         { Returns $b^{degree}\cdot p(x+a/b)$, 
        with respect to the outermost variable. }
\ccMethod{result_type operator()(PolynomialTraits_d::Polynomial_d p,
                                 PolynomialTraits_d::Coefficient_type a,
                                 PolynomialTraits_d::Coefficient_type  b,
                                 int i);}
         { Same as first operator but for variable $x_i$.
           \ccPrecond $0 \leq i  < d$ 
         }

%\ccHasModels

\ccSeeAlso

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

\end{ccRefConcept}
