
/*!
\ingroup PkgAlgebraicKernelDConceptsBi
\cgalConcept

Compares `AlgebraicKernel_d_2::Algebraic_real_2`s lexicographically. 

\cgalRefines `AdaptableBinaryFunction` 

\sa `AlgebraicKernel_d_2::CompareX_2`
\sa `AlgebraicKernel_d_2::CompareY_2`

*/

class AlgebraicKernel_d_2::CompareXY_2 {
public:

/// \name Types 
/// @{

/*!
Type convertible to `CGAL::Comparison_result` 
*/ 
typedef unspecified_type result_type; 

/*!

*/ 
typedef AlgebraicKernel_d_2::Algebraic_real_2 first_argument_type; 

/*!

*/ 
typedef AlgebraicKernel_d_2::Algebraic_real_2 second_argument_type; 

/// @} 

/// \name Operations 
/// @{

/*!
Compares \f$ a\f$ and \f$ b\f$ lexicographically. 
*/ 
result_type operator()(const first_argument_type & a, const second_argument_type & b); 

/*!
Compares \f$ a\f$ with \f$ (x,y)\f$ lexicographically. 
*/ 
result_type operator()(AlgebraicKernel_d_2::Algebraic_real_2 a, int x, int y); 

/*!
Compares \f$ a\f$ with \f$ (x,y)\f$ lexicographically. 
*/ 
result_type operator()( 
AlgebraicKernel_d_2::Algebraic_real_2 a, 
AlgebraicKernel_d_2::Bound x, 
AlgebraicKernel_d_2::Bound y); 

/*!
Compares \f$ a\f$ with \f$ (x,y)\f$ lexicographically. 
*/ 
result_type operator()( 
AlgebraicKernel_d_2::Algebraic_real_2 a, 
AlgebraicKernel_d_2::Coefficient x, 
AlgebraicKernel_d_2::Coefficient y); 

/// @}

}; /* end AlgebraicKernel_d_2::CompareXY_2 */

