\begin{ccRefConcept}{AlgebraicKernel_2_2::ConstructPolynomial_1_2}

\ccDefinition

\ccCreationVariable{cpol}

A model \ccVar\ of this type must provide:

\ccMethod{AlgebraicKernel_2_2::Polynomial_1_2
	operator()(const AlgebraicKernel_2_2::RT a,
		const AlgebraicKernel_2_2::RT b,
		const AlgebraicKernel_2_2::RT c);}
{Constructs polynomial \ccc{ax+by+c}.}

\end{ccRefConcept}

\begin{ccRefConcept}{AlgebraicKernel_2_2::ConstructPolynomialForCircles_2_2}

\ccCreationVariable{cpol}

A model \ccVar\ of this type must provide:

\ccMethod{AlgebraicKernel_2_2::PolynomialForCircles_2_2
	operator()(const AlgebraicKernel_2_2::FT a,
		const AlgebraicKernel_2_2::FT b,
		const AlgebraicKernel_2_2::FT rsq);}
{Constructs polynomial \ccc{(x-a)^2 + (y-b)^2 - rsq}.}

\end{ccRefConcept}

\begin{ccRefConcept}{AlgebraicKernel_2_2::Solve}

\ccDefinition

\ccCreationVariable{sol}

A model \ccVar\ of this type must provide:

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_2_2::Polynomial_1_2 &p1,
	     const AlgebraicKernel_2_2::Polynomial_1_2 &p2,
	     OutputIterator res);}
{Copies in the output iterator the common roots of \ccc{p1} and \ccc{p2}, with their multiplicity, as objects of type \ccc{std::pair< AlgebraicKernel_2_2::RootForCircles_2_2, int>}.} \footnote{???}

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_2_2::Polynomial1_2 &p1,
	     const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p2,
	     OutputIterator res);}
{Same as previous.} 

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p1,
	     const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p2,
	     OutputIterator res);}
{Same as previous.} 

\ccHasModels

\ccc{Algebraic_kernel_2_2::Solve;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::solve}

\end{ccRefConcept}
\begin{ccRefConcept}{AlgebraicKernel_4_2::Solve}

\ccDefinition

\ccCreationVariable{sol}

A model \ccVar\ of this type must provide:

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_4_2::Polynomial_2_2 &p1,
	     const AlgebraicKernel_4_2::Polynomial_2_2 &p2,
	     OutputIterator res);}
{Copies in the output iterator the common roots of \ccc{p1} and \ccc{p2}, with their multiplicity, as objects of type \ccc{std::pair< AlgebraicKernel_4_2::RootOf_4, int>}.} 

\ccHasModels

\ccc{Algebraic_kernel_2_2::Solve;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::solve}

\end{ccRefConcept}

\begin{ccRefConcept}{AlgebraicKernel_2_2::XCriticalPoints}

\ccDefinition

\ccCreationVariable{xcrit}

A model \ccVar\ of this type must provide:

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p,
	     OutputIterator res);}
{Copies in the output iterator the \ccc{x}-critical points of polynomial 
\ccc{p}, as objects of type \ccc{AlgebraicKernel_2_2::RootForCircles_2_2}.} 

\ccMethod{template < class OutputIterator >
    AlgebraicKernel_2_2::RootForCircles_2_2
    operator()(const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p,
	     bool i);}
{Computes the \ccc{i}th \ccc{x}-critical point of polynomial \ccc{p}.} 

\ccHasModels

\ccc{Algebraic_kernel_2_2::X_critical_points;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::x_critical_points}

\end{ccRefConcept}
\begin{ccRefConcept}{AlgebraicKernel_2_2::YCriticalPoints}

\ccDefinition

\ccCreationVariable{ycrit}

A model \ccVar\ of this type must provide:

\ccMethod{template < class OutputIterator >
    OutputIterator
    operator()(const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p,
	     OutputIterator res);}
{Copies in the output iterator the \ccc{y}-critical points of polynomial 
\ccc{p}, as objects of type \ccc{AlgebraicKernel_2_2::RootForCircles_2_2}.} 

\ccMethod{template < class OutputIterator >
    AlgebraicKernel_2_2::RootForCircles_2_2
    operator()(const AlgebraicKernel_2_2::PolynomialForCircles_2_2 &p,
	     bool i);}
{Computes the \ccc{i}th \ccc{y}-critical point of polynomial \ccc{p}.} 

\ccHasModels

\ccc{Algebraic_kernel_2_2::Y_critical_points;}

\ccSeeAlso

\ccRefIdfierPage{CGAL::y_critical_points}

\end{ccRefConcept}
