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

This \ccc{AdaptableUnaryFunction} negates a \ccc{PolynomialTraits_d::Polynomial_d} with  
respect to one variable. 

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. 

This functor is provided for efficiency reasons, since this operation just flips the sign 
of all odd coefficients with respect to the specified variable.  

\ccRefines 
\ccc{AdaptableUnaryFunction}

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

\ccOperations
\ccMethod{result_type operator()(argument_type  p);}
         { return $p(-x)$, with respect to the outermost variable. }

\ccMethod{result_type operator()(argument_type  p,
                                 int i);}
         { return $p(-x)$, with respect to variable $x_i$. 
           \ccPrecond $0 \leq i  < d$
         }

%\ccHasModels

\ccSeeAlso

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

\end{ccRefConcept}
