From 032bea395d4a26fe7bd61e446f23fe3dff1e2c32 Mon Sep 17 00:00:00 2001 From: Michael Hemmer Date: Thu, 1 Mar 2007 15:57:58 +0000 Subject: [PATCH] wrap up --- .../FractionTraits_CommonFactor.tex | 4 ++-- .../FractionTraits_Compose.tex | 2 +- .../FractionTraits_Decompose.tex | 20 +++++-------------- .../IntegralDomainWithoutDivision.tex | 17 +++++++++------- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_CommonFactor.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_CommonFactor.tex index 284e97dbfcd..39e006145a8 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_CommonFactor.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_CommonFactor.tex @@ -11,7 +11,7 @@ this is needed because it is not guaranteed that \ccc{FractionTraits::Denominato \ccRefines -\ccc{AdaptableUnaryFunction} +\ccc{AdaptableBinaryFunction} \ccTypes %SetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxxxxxxxxxxxxxxxxxxxxxx}{} @@ -22,7 +22,7 @@ this is needed because it is not guaranteed that \ccc{FractionTraits::Denominato \ccOperations %SetThreeColumns{xxxxxxxxxx}{xxxxx}{} -\ccCreationVariable{operator()} +\ccCreationVariable{common_factor} \ccMethod{result_type operator()(first_argument_type d1, second_argument_type d2);} {return a great common factor of $d1$ and $d2$.\\ Note: {\tt operator()(0,0) = 0} } diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Compose.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Compose.tex index 980d1f28488..672b0f4e961 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Compose.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Compose.tex @@ -18,7 +18,7 @@ \ccOperations %SetThreeColumns{xxxxxxxxxx}{xxxxx}{} -\ccCreationVariable{operator()} +\ccCreationVariable{compose} \ccMethod{result_type operator()(first_argument_type n, second_argument_type d);} {return the fraction $n/d$. } diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Decompose.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Decompose.tex index 4a69e0aced1..aff7c96d9fd 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Decompose.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/FractionTraits_Decompose.tex @@ -2,26 +2,16 @@ \ccDefinition -\ccc{AdaptableFunctor}, decomposing the first argument into its numerator and denominator. - -\ccRefines - -\ccc{AdaptableFunctor} +Functor decomposing a \ccc{Fraction} into its numerator and denominator. \ccTypes -%SetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxxxxxxxxxxxxxxxxxxxxxx}{} - -\ccTypedef{typedef void result_type;}{}\ccGlue -\ccTypedef{typedef FractionTraits::Type first_argument_type;}{} -\ccTypedef{typedef FractionTraits::Numerator_type& second_argument_type;}{} -\ccTypedef{typedef FractionTraits::Denominator_type& third_argument_type;}{} \ccOperations %SetThreeColumns{xxxxxxxxxx}{xxxxx}{} -\ccCreationVariable{operator()} -\ccMethod{result_type operator()( first_argument_type f, - second_argument_type n, - third_argument_type d);} +\ccCreationVariable{decompose} +\ccMethod{result_type operator()( FractionTraits::Type f, + FractionTraits::Numerator_type & n, + FractionTraits::Denominator_type & d);} {decompose $f$ into numerator $n$ and denominator $d$. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/IntegralDomainWithoutDivision.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/IntegralDomainWithoutDivision.tex index c11168fc115..1b8fd6ce85d 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/IntegralDomainWithoutDivision.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/IntegralDomainWithoutDivision.tex @@ -3,15 +3,18 @@ \ccDefinition -This is the most basic concept for algebraic structures considered within CGAL. +An {\em integral domain} is a commutative ring with an additive {\em zero} and a multiplicative {\em one} such that $0 \neq 1$. A product of any two non-zero elements is always non-zero, that is, there are no zero divisors. -A model \ccc{IntegralDomainWithoutDivision} represents an integral domain, -i.e. commutative ring with 0, 1, +, * and unity free of zero divisors.\\ -{\bf Note:} A model is not required to offer the always well defined integral division. +A model of the concepts \ccc{IntegralDomainWithoutDivision} is supposed to represent an {\em integral domain} in the mathematical sense. It is required to be \ccc{FromIntConstructible}, where the construction models the canonical homomorphism from \Z (\ccc{int}) into the value range of the type. The type is required to be closed under construction from \ccc{int}, addition and multiplication. The mathematical always well defined integral division is not required. -It refines \ccc{Assignable}, \ccc{CopyConstructible}, \ccc{DefaultConstructible} -and \ccc{FromIntConstructible}. \\ -It refines \ccc{EqualityComparable}, where equality is defined w.r.t. +\begin{ccAdvanced} + +The full value range of a model may not represent an integral domain, in particular not all values are required to be interoperable at runtime. However, any code that is using this concept requires, that the input is taken from a proper interoperable subset of the value range. Moreover, the code is allowed to construct values from \ccc{int} and interoperate them with the input. In particular, any subset of the value range representing an integral domain is required to contain the integral domain induced by the construction from int. + +\end{ccAdvanced} + + +Furthermore, the concept refines \ccc{EqualityComparable}, where equality is defined w.r.t. the ring element being represented. \\ The operators unary and binary plus +, unary and binary minus -, multiplication * and their compound forms +=, -=, *= are required and