
/*!
\ingroup PkgAlgebraicKernelDConceptsBi
\cgalConcept

Compares the first coordinates of `AlgebraicKernel_d_2::Algebraic_real_2`s. 

\cgalRefines `AdaptableBinaryFunction` 

\sa `AlgebraicKernel_d_2::CompareY_2`
\sa `AlgebraicKernel_d_2::CompareXY_2`

*/

class AlgebraicKernel_d_2::CompareX_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 
/// The following operators and their symmetric counterparts are required:
/// @{

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

/*!
Compares the first coordinate of \f$ a\f$ with \f$ x\f$. 
*/ 
result_type operator()(AlgebraicKernel_d_2::Algebraic_real_2 a, int x); 

/*!
Compares the first coordinate of \f$ a\f$ with \f$ x\f$. 
*/ 
result_type operator()(AlgebraicKernel_d_2::Algebraic_real_2 a, AlgebraicKernel_d_2::Bound x); 

/*!
Compares the first coordinate of \f$ a\f$ with \f$ x\f$. 
*/ 
result_type operator()(AlgebraicKernel_d_2::Algebraic_real_2 a, AlgebraicKernel_d_2::Coefficient x); 

/*!
Compares the first coordinate of \f$ a\f$ with \f$ x\f$. 
*/ 
result_type operator()(AlgebraicKernel_d_2::Algebraic_real_2 a, AlgebraicKernel_d_2::Algebraic_real_1 x); 

/// @}

}; /* end AlgebraicKernel_d_2::CompareX_2 */

