\begin{ccRefConcept}{RealEmbeddableTraits}

\ccDefinition

A model of \ccc{RealEmbeddableTraits} is associated to a number type 
\ccc{Type} and reflects the properties of this type with respect 
to the concept \ccc{RealEmbeddable}.

\ccTypes

A model of \ccc{RealEmbeddableTraits} is supposed to provide:\\

\ccNestedType{Type}{The associated number type.}

\ccNestedType{Is_real_embeddable}
        { Tag indicating whether the associated type is real embeddable. \\
          This is either \ccc{CGAL::Tag_true} or \ccc{CGAL::Tag_false}. }

\ccNestedType{Boolean}
        { This type specifies the return type of the predicates provided
          by this traits. The type must be convertible to \ccc{bool} and 
          typically the type indeed maps to \ccc{bool}. However, there are also 
          cases such as interval arithmetic, in which it is \ccc{Uncertain<bool>} 
          or some similar type. 
        }

\ccNestedType{Sign}
        { This type specifies the return type of the \ccc{Sgn} functor. 
          The type must be convertible to \ccc{CGAL::Sign} and 
          typically the type indeed maps to \ccc{CGAL::Sign}. However, there are also 
          cases such as interval arithmetic, in which it is \ccc{Uncertain<CGAL::Sign>} 
          or some similar type. 
        }        

\ccNestedType{Comparison_result}
        { This type specifies the return type of the \ccc{Compare} functor. 
          The type must be convertible to \ccc{CGAL::Comparison_result} and 
          typically the type indeed maps to \ccc{CGAL::Comparison_result}. However, there are also 
          cases such as interval arithmetic, in which it is \ccc{Uncertain<CGAL::Comparison_result>} 
          or some similar type. 
        }     

\ccHeading{Functors}

In case the associated type is \ccc{RealEmbeddable} all functors are provided.\\
In case a functor is not provided, it is set to \ccc{CGAL::Null_functor}.

\ccNestedType{Is_zero}{ 
A model of \ccc{RealEmbeddableTraits::IsZero} 
In case \ccc{Type} is also model of \ccc{IntegralDomainWithoutDivision} 
this is a model of \ccc{AlgebraicStructureTraits::IsZero}.}
\ccNestedType{Abs}{ A model of \ccc{RealEmbeddableTraits::Abs} }
\ccNestedType{Sgn}{ A model of \ccc{RealEmbeddableTraits::Sgn} }
\ccNestedType{Is_positive}{ A model of \ccc{RealEmbeddableTraits::IsPositive} }
\ccNestedType{Is_negative}{ A model of \ccc{RealEmbeddableTraits::IsNegative} }
\ccNestedType{Compare}{ A model of \ccc{RealEmbeddableTraits::Compare} }
\ccNestedType{To_double}{ A model of \ccc{RealEmbeddableTraits::ToDouble} }
\ccNestedType{To_interval}{ A model of \ccc{RealEmbeddableTraits::ToInterval} }
%\ccNestedType{Is_finite}{ A model of \ccc{RealEmbeddableTraits::IsFinite} } 

\ccHasModels
\ccRefIdfierPage{CGAL::Real_embeddable_traits<T>}\\

\end{ccRefConcept}
