diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits.tex index 57c0b49c138..94e0575aabb 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits.tex @@ -68,6 +68,8 @@ In case a functor is not provided, it is set to \ccc{CGAL::Null_functor}. \ccNestedType{Is_zero}{ A model of \ccc{AlgebraicStructureTraits::IsZero}.\\ Required by the concept \ccc{IntegralDomainWithoutDivision}. +In case \ccc{Type} is also model of \ccc{RealEmbeddable} this is a +model of \ccc{RealEmbeddableTraits::IsZero}. } \ccNestedType{Is_one}{ diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Sqrt.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Sqrt.tex index 4aa936b3d10..6ca4b0ffeec 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Sqrt.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Sqrt.tex @@ -17,7 +17,7 @@ \ccOperations \ccThree{xxxxxxxxxxx}{xxxxxxxxxxx}{} \ccCreationVariable{sqrt} -\ccMethod{result_type operator()(argument_type x);} +\ccMethod{result_type operator()(argument_type x) const;} { returns $\sqrt{x}$. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_IsFinite.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/Deprecated/RealEmbeddableTraits_IsFinite.tex similarity index 100% rename from Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_IsFinite.tex rename to Algebraic_foundations/doc_tex/Algebraic_foundations_ref/Deprecated/RealEmbeddableTraits_IsFinite.tex diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_finite.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/Deprecated/is_finite.tex similarity index 100% rename from Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_finite.tex rename to Algebraic_foundations/doc_tex/Algebraic_foundations_ref/Deprecated/is_finite.tex diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddable.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddable.tex index fe1806e62f6..c294340f41a 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddable.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddable.tex @@ -6,20 +6,19 @@ A model of this concepts represents numbers that are embeddable on the real axis. The type obeys the algebraic structure and compares two values according to the total order of the real numbers. -Moreover, \ccc{CGAL::Real_embeddable_traits< RealEmebddable >} is a model of +Moreover, \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >} is a model of \ccc{AlgebraicStructureTraits}\\ with:\\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Is_real_embeddable} set to \ccc{Tag_true} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Is_real_embeddable} set to \ccc{Tag_true} \\ and functors :\\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Is_zero} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Abs} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Sign} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Is_positive} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Is_negative} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Compare} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::To_double} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::To_interval} \\ -- \ccc{CGAL::Real_embeddable_traits< RealEmebddable >::Is_finite} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Is_zero} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Abs} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Sign} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Is_positive} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Is_negative} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::Compare} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::To_double} \\ +- \ccc{CGAL::Real_embeddable_traits< RealEmbeddable >::To_interval} \\ Remark:\\ If a number type is a model of both IntegralDomainWithoutDivision and diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits.tex index 192b1dc8ccc..75ee3a52cfc 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits.tex @@ -21,7 +21,10 @@ A model of \ccc{RealEmbeddableTraits} is supposed to provide:\\ 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} } +\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{Sign}{ A model of \ccc{RealEmbeddableTraits::Sign} } \ccNestedType{Is_positive}{ A model of \ccc{RealEmbeddableTraits::IsPositive} } @@ -29,7 +32,7 @@ In case a functor is not provided, it is set to \ccc{CGAL::Null_functor}. \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} } +%\ccNestedType{Is_finite}{ A model of \ccc{RealEmbeddableTraits::IsFinite} } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/intro.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/intro.tex index 2d8ef63d523..8b276e29015 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/intro.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/intro.tex @@ -6,11 +6,12 @@ \input{Algebraic_foundations_ref/open.tex} -\section{Classified Reference Pages - \label{caf_ref::classified_refernce_pages} } +\section{Classified Reference Pages} +\label{caf_ref::classified_refernce_pages} + +\subsection*{Basics} +\label{caf_ref::basics} -\subsection*{Basics - \label{caf_ref::basics}} \subsubsection*{Basic Concepts} \ccRefConceptPage{AdaptableUnaryFunction}\\ \ccRefConceptPage{AdaptableBinaryFunction}\\ @@ -37,11 +38,11 @@ \ccRefIdfierPage{CGAL::Coercion_traits}\\ -\subsection*{Algebraic Structure Hierarchy - \label{caf_ref::algebraic_structure_hierarchy} } +\subsection*{Algebraic Structures} +\label{caf_ref::algebraic_structures} \subsubsection*{Algebraic Structure Concepts} -\label{af:algebraic_structure_concepts} + \ccRefConceptPage{IntegralDomainWithoutDivision}\\ \ccRefConceptPage{IntegralDomain}\\ \ccRefConceptPage{UniqueFactorizationDomain}\\ @@ -97,8 +98,8 @@ \ccRefIdfierPage{CGAL::kth_root}\\ \ccRefIdfierPage{CGAL::root_of}\\ -\subsection*{Real Embeddable Concept - \label{caf_ref::real_embeddable_concept} } +\subsection*{Real Embeddable Concept} +\label{caf_ref::real_embeddable_concept} \subsubsection{Concept RealEmbeddable} \ccRefConceptPage{RealEmbeddable}\\ @@ -113,7 +114,7 @@ \ccRefConceptPage{RealEmbeddableTraits::Compare}\\ \ccRefConceptPage{RealEmbeddableTraits::ToDouble}\\ \ccRefConceptPage{RealEmbeddableTraits::ToInterval}\\ -\ccRefConceptPage{RealEmbeddableTraits::IsFinite}\\ +%\ccRefConceptPage{RealEmbeddableTraits::IsFinite}\\ %\begin{ccAdvanced} %\ccRefConceptPage{RealEmbeddableTraits::ToDoubleInterval}\\ %\end{ccAdvanced} @@ -131,7 +132,7 @@ \ccRefIdfierPage{CGAL::compare}\\ \ccRefIdfierPage{CGAL::to_double}\\ \ccRefIdfierPage{CGAL::to_interval}\\ -\ccRefIdfierPage{CGAL::is_finite}\\ +%\ccRefIdfierPage{CGAL::is_finite}\\ \subsection{Fractions} \ccRefConceptPage{Fraction}\\ diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/main.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/main.tex index 99b504e2faa..718a164f340 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/main.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/main.tex @@ -63,7 +63,7 @@ \input{Algebraic_foundations_ref/RealEmbeddableTraits_Compare.tex} \input{Algebraic_foundations_ref/RealEmbeddableTraits_ToDouble.tex} \input{Algebraic_foundations_ref/RealEmbeddableTraits_ToInterval.tex} -\input{Algebraic_foundations_ref/RealEmbeddableTraits_IsFinite.tex} +%\input{Algebraic_foundations_ref/RealEmbeddableTraits_IsFinite.tex} %\input{Algebraic_foundations_ref/RealEmbeddableTraits_ToDoubleInterval.tex} %include classes @@ -101,7 +101,7 @@ \input{Algebraic_foundations_ref/compare.tex} \input{Algebraic_foundations_ref/to_double.tex} \input{Algebraic_foundations_ref/to_interval.tex} -\input{Algebraic_foundations_ref/is_finite.tex} +%\input{Algebraic_foundations_ref/is_finite.tex} %FractionTraits \input{Algebraic_foundations_ref/Fraction.tex} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/open.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/open.tex index 1aac97b834d..f18b95e94a8 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/open.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/open.tex @@ -1,4 +1,4 @@ -\section{Overview - TODO - OPEN Questions} +\section{Overview - TODO - OPEN Questions for Release 3.3} \subsection{Overview} @@ -18,27 +18,6 @@ types, in particular polynomials, that are valid algebraic structures, but should not be considered as a number type.\\ Note that Polynomials are not part of this package. -\subsubsection{for Release 3.3} - -TODO: -\begin{itemize} -\item find a place for basic stuff. see section remarks -\item what about old concepts and functors that we keep for back ward - compatibility, do we need a documentation for them ? \\ - they can be found in {\tt Algebraic\_foundations\_ref/Deprecated} -\item add links in \ccc{IsZero}s -\item 'built-in' types -> 'fundamental' types -\item add a new entry in the globally maintained Bib file. -\item there is a problem with io stream operators for CORE types \\ - This may also be related to the problem that gmpxx.h must be included - befor CORE types. -\item document \ccc{Boolean_tag}, rm function \ccc{check_tag}?. -\item document rounding mode for Div/Mod. -\item revise doc of NTs -\item No proper documentation of \ccc{Root_of_2} and related traits class - and functions. -\end{itemize} - DONE: \begin{itemize} @@ -53,26 +32,49 @@ DONE: typedef \ccc{Tag_true}, \ccc{Tag_false}. \item added concept \ccc{FromDoubleConstructible} \item rm support for io mode: BENCHMARK +\item added \ccc{Boolean_tag}, rm doc of function \ccc{check_tag}. +\item added AST tag \ccc{is\_exact} +\item added AST tag \ccc{is\_numerical\_sensitive} +\item rm IsFinite from \ccc{RealEmeddable} concept + function \ccc{CGAL::is_finite} for float, double, long double \end{itemize} -CONJECTURE: +TODO: \begin{itemize} -\item rm \ccc{IsFinite} from Real Embeddable (after merge) -\item keep name \ccc{IntegralDomainWithoutDivision} and \ccc{IntegralDomain}. -\item consider \ccc{Interval_nt} as exact +\item find a place for basic stuff. Max/Min/Is\_valid/Boolean\_tag.. + basic concepts... +\item what about old concepts and functors that we keep for back ward + compatibility, do we need a documentation for them ? \\ + they can be found in {\tt Algebraic\_foundations\_ref/Deprecated} +\item 'built-in' types -> 'fundamental' types +\item add a new entry in the globally maintained Bib file. +\item there is a problem with io stream operators for CORE types \\ + This may also be related to the problem that gmpxx.h must be included + before CORE types. +\item document rounding mode for Div/Mod. +\item revise doc of NTs +\item extra review of \ccc{Sqrt_extension} +\item extra review of \ccc{Root_of_2} \end{itemize} + +Remarks: +\begin{itemize} +\item keep name \ccc{IntegralDomainWithoutDivision} and \ccc{IntegralDomain}. +\item consider \ccc{Interval_nt} as not exact +\item io support: keep \ccc{Output_rep} +\end{itemize} + OPEN: \begin{itemize} -\item \ccc{mpf_class} is not supported yet. why not? is it possbible? +\item \ccc{mpf_class} is not supported yet. why not? is it possible? \item split \ccc{MP_float} into two types. \item What about the Small in \ccc{FromSmallIntConstructible}? -\item Should we add Ipower? motivation see introduction of Square. -\item rm \ccc{Output_rep} etc. ? +\item Should we add Ipower? motivation see introduction of Square. \end{itemize} -\subsubsection{planed: for Release 3.5} +\subsubsection{planed: for Release 3.4} \begin{itemize} \item \ccc{Modular_traits} for concept \ccc{Modularizable}\\ new package \ccc{Modular_arithmetic}? @@ -85,6 +87,7 @@ OPEN: Keep in mind: \begin{itemize} + \item generic interoperable operators via Coercion Traits \item may add arithmetic functors as Add, Sub to Algebraic Structure Traits \item may add more fundamental concepts, such as Abelian Group.