diff --git a/.gitattributes b/.gitattributes index 0bb56aff483..d5d0e998bba 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2806,6 +2806,7 @@ Number_types/doc_tex/NumberTypeSupport/illustration.png -text Number_types/doc_tex/NumberTypeSupport_ref/CORE_BigFloat.tex -text Number_types/doc_tex/NumberTypeSupport_ref/Gmpfi.tex -text Number_types/doc_tex/NumberTypeSupport_ref/Gmpfr.tex -text +Number_types/doc_tex/NumberTypeSupport_ref/compute_roots_of_2.tex -text Number_types/doc_tex/NumberTypeSupport_ref/fundamental_types.tex -text Number_types/doc_tex/NumberTypeSupport_ref/make_sqrt.tex -text Number_types/doc_tex/NumberTypeSupport_ref/open.tex -text diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Div.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Div.tex index b1881d0fb20..e1f3c0e77f6 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Div.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Div.tex @@ -27,7 +27,7 @@ with remainder. second_argument_type y);}{} \ccMethod{template result_type operator()(NT1 x, NT2 y);} - {This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} + {This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{AlgebraicStructureTraits::Type}. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_DivMod.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_DivMod.tex index b3ff235a170..658082c1cb3 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_DivMod.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_DivMod.tex @@ -106,7 +106,7 @@ The following table illustrates the behavior for integers: \ccMethod{template result_type operator()(NT1 x, NT2 y, third_argument_type q, fourth_argument_type r);} - {This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} + {This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{AlgebraicStructureTraits::Type}. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Gcd.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Gcd.tex index a271ce70729..2d776d9172c 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Gcd.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Gcd.tex @@ -37,7 +37,7 @@ Thus, $0$ is divided by every element of the Ring, in particular by itself. { returns $gcd(x,y)$. } \ccMethod{template result_type operator()(NT1 x, NT2 y);} - {This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} + {This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{AlgebraicStructureTraits::Type}. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_IntegralDivision.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_IntegralDivision.tex index 7417616d863..8556d40c565 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_IntegralDivision.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_IntegralDivision.tex @@ -34,7 +34,7 @@ $z$ is uniquely defined if it exists. \ccMethod{template result_type operator()(NT1 x, NT2 y);} - {This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} + {This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{AlgebraicStructureTraits::Type}. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Mod.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Mod.tex index 79be7d5bfb1..49202999924 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Mod.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/AlgebraicStructureTraits_Mod.tex @@ -26,7 +26,7 @@ second_argument_type y);}{} \ccMethod{template result_type operator()(NT1 x, NT2 y);} - {This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} + {This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{AlgebraicStructureTraits::Type}. } %\ccHasModels diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_Compare.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_Compare.tex index 05c15866e8b..a47c5d62fa9 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_Compare.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_Compare.tex @@ -27,7 +27,7 @@ \ccMethod{template result_type operator()(NT1 x, NT2 y);}{ - This operator is well defined if \ccc{NT1} and \ccc{NT2} are + This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable} with coercion type \ccc{RealEmbeddableTraits::Type}. } diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_ToDouble.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_ToDouble.tex index 0293b6eb16d..821c4461eef 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_ToDouble.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/RealEmbeddableTraits_ToDouble.tex @@ -4,6 +4,9 @@ \ccc{AdaptableUnaryFunction} computes a double approximation of a real embeddable number. + +Remark: In order to control the quality of approximation one has to resort +to methods that are specific to NT. There are no general guarantees whatsoever. \ccRefines diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/abs.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/abs.tex index ad239bddefc..f01f3aed767 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/abs.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/abs.tex @@ -4,7 +4,7 @@ The template function \ccRefName\ returns the absolute value of a number. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/compare.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/compare.tex index c718673db56..5cedf78483c 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/compare.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/compare.tex @@ -8,7 +8,7 @@ the second, i.e. it returns \ccc{CGAL::LARGER} if $x$ is larger then $y$. In case the argument types \ccc{NT1} and \ccc{NT2} differ, \ccRefName\ is performed with the semantic of the type determined via \ccc{Coercion_traits}. -The function is guaranteed to be well defined in case this type +The function is defined if this type is a model of the \ccc{RealEmbeddable} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div.tex index d9322d63c95..c160498b413 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div.tex @@ -11,7 +11,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2} are a model of \ccc{ExplicitInteroperable}. \\ The actual \ccRefName\ is performed with the semantic of that type. -The function is guaranteed to be well defined in case \ccc{result_type} +The function is defined if \ccc{result_type} is a model of the \ccc{EuclideanRing} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div_mod.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div_mod.tex index 1ccf391e49e..86709e41926 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div_mod.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/div_mod.tex @@ -11,7 +11,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2} are a model of \ccc{ExplicitInteroperable}. \\ The actual \ccRefName\ is performed with the semantic of that type. -The function is guaranteed to be well defined in case \ccc{result_type} +The function is defined if \ccc{result_type} is a model of the \ccc{EuclideanRing} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/gcd.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/gcd.tex index a9442fd17bf..eccee3741fa 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/gcd.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/gcd.tex @@ -10,7 +10,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2} are a model of \ccc{ExplicitInteroperable}. \\ The actual \ccRefName\ is performed with the semantic of that type. -The function is guaranteed to be well defined in case \ccc{result_type} +The function is defined if \ccc{result_type} is a model of the \ccc{UniqueFactorizationDomain} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/integral_division.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/integral_division.tex index 860a153d6db..61875a94888 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/integral_division.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/integral_division.tex @@ -14,7 +14,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2} are a model of \ccc{ExplicitInteroperable}. \\ The actual \ccRefName\ is performed with the semantic of that type. -The function is guaranteed to be well defined in case \ccc{result_type} +The function is defined if \ccc{result_type} is a model of the \ccc{IntegralDomain} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/inverse.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/inverse.tex index cf233c2abd6..ba69261decb 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/inverse.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/inverse.tex @@ -4,7 +4,7 @@ The function \ccRefName\ returns the inverse element with respect to multiplication. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{Field} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_negative.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_negative.tex index 048c4e21061..abbd0c22230 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_negative.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_negative.tex @@ -3,7 +3,7 @@ \ccDefinition The template function \ccRefName\ determines if a value is negative or not. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_one.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_one.tex index 26229886445..611cb423714 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_one.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_one.tex @@ -3,7 +3,7 @@ \ccDefinition The function \ccRefName\ determines if a value is equal to 1 or not.\\ -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{IntegralDomainWithoutDivision} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_positive.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_positive.tex index 21e175caaf8..06e0a66d42e 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_positive.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_positive.tex @@ -3,7 +3,7 @@ \ccDefinition The template function \ccRefName\ determines if a value is positive or not. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_zero.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_zero.tex index e770859ad42..07c845422db 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_zero.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/is_zero.tex @@ -3,7 +3,7 @@ \ccDefinition The function \ccRefName\ determines if a value is equal to 0 or not.\\ -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} or of the \ccc{IntegralDomainWithoutDivision} concept. diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/kth_root.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/kth_root.tex index 671332d80fd..b31d7e559c8 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/kth_root.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/kth_root.tex @@ -4,7 +4,7 @@ The function \ccRefName\ returns the k-th root of a value. -The function is guaranteed to be well defined in case the second argument type +The function is defined if the second argument type is a model of the \ccc{FieldWithKthRoot} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/mod.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/mod.tex index 7896ecdd825..15487173a0c 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/mod.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/mod.tex @@ -10,7 +10,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2} are a model of \ccc{ExplicitInteroperable}. \\ The actual \ccRefName\ is performed with the semantic of that type. -The function is guaranteed to be well defined in case \ccc{result_type} +The function is defined if \ccc{result_type} is a model of the \ccc{EuclideanRing} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/root_of.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/root_of.tex index ca52c9f4c42..07fb85f56ee 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/root_of.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/root_of.tex @@ -5,7 +5,7 @@ The function \ccRefName\ computes a real root of a square-free univariate polynomial. -The function is guaranteed to be well defined in case the value type, \ccc{NT}, +The function is defined if the value type, \ccc{NT}, of the iterator range is a model of the \ccc{FieldWithRootOf} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sign.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sign.tex index 9099a636061..5822797857f 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sign.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sign.tex @@ -4,7 +4,7 @@ The template function \ccRefName\ returns the sign of a number. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/simplify.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/simplify.tex index 4934ecf757b..75be1c00e7f 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/simplify.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/simplify.tex @@ -4,7 +4,7 @@ The function \ccRefName\ may simplify a given object. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{IntegralDomainWithoutDivision} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sqrt.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sqrt.tex index d7a43c9410e..835db295f7d 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sqrt.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/sqrt.tex @@ -4,7 +4,7 @@ The function \ccRefName\ returns the square root of a value. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{FieldWithSqrt} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/square.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/square.tex index 3419d6554ef..6df8a7fa9fc 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/square.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/square.tex @@ -3,7 +3,7 @@ \ccDefinition The function \ccRefName\ returns the square of a number.\\ -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{IntegralDomainWithoutDivision} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_double.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_double.tex index a6a9a2f072b..d87337ee350 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_double.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_double.tex @@ -3,9 +3,11 @@ \ccDefinition The template function \ccRefName\ returns an double approximation of a number. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. +Remark: In order to control the quality of approximation one has to resort to methods that are specific to NT. There are no general guarantees whatsoever. + \ccInclude{CGAL/number_utils.h} \ccFunction{template double to_double(const NT& x);} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_interval.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_interval.tex index ee1475a548a..ed7f79984bf 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_interval.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/to_interval.tex @@ -5,7 +5,7 @@ The template function \ccRefName\ computes for a given real embeddable number $x$ a double interval containing $x$. This interval is represented by a \ccc{std::pair}. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{RealEmbeddable} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/unit_part.tex b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/unit_part.tex index 6aac3063ab1..8fec3558ee4 100644 --- a/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/unit_part.tex +++ b/Algebraic_foundations/doc_tex/Algebraic_foundations_ref/unit_part.tex @@ -5,7 +5,7 @@ The function \ccRefName\ computes the unit part of a given ring element. -The function is guaranteed to be well defined in case the argument type +The function is defined if the argument type is a model of the \ccc{IntegralDomainWithoutDivision} concept. \ccInclude{CGAL/number_utils.h} diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h index 0835f2b3e07..dc3803777ec 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h @@ -1629,7 +1629,7 @@ protected: _two*_t*_v - _four*_s*_u, _v*_v - _four*_s*_w, xs); - n_xs = xs_end - xs; + n_xs = static_cast(xs_end - xs); // Find the y-coordinates of the vertical tangency points. Algebraic ys[2]; @@ -1649,7 +1649,7 @@ protected: _four*_r*_s*_v - _two*_s*_t*_u, _r*_v*_v - _t*_u*_v + _t*_t*_w, ys); - n_ys = ys_end - ys; + n_ys = static_cast(ys_end - ys); } // Pair the x and y coordinates and obtain the vertical tangency points. @@ -1714,7 +1714,7 @@ protected: _two*_t*_u - _four*_r*_v, _u*_u - _four*_r*_w, ys); - n = ys_end - ys; + n = static_cast(ys_end - ys); // Compute the x coordinates and construct the horizontal tangency points. Algebraic x; @@ -1722,7 +1722,7 @@ protected: for (i = 0; i < n; i++) { - // Having computed y, x is the simgle solution to the quadratic equation + // Having computed y, x is the single solution to the quadratic equation // above, and since its discriminant is 0, x is simply given by: x = -(nt_traits.convert(_t)*ys[i] + nt_traits.convert(_u)) / nt_traits.convert(_two*_r); diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h index 589a3cc89b6..a325489e14e 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h @@ -38,22 +38,23 @@ namespace CGAL { * \return The number of distinct roots found. */ template -int _compute_resultant_roots (Nt_traits& nt_traits, - const typename Nt_traits::Integer& r1, - const typename Nt_traits::Integer& s1, - const typename Nt_traits::Integer& t1, - const typename Nt_traits::Integer& u1, - const typename Nt_traits::Integer& v1, - const typename Nt_traits::Integer& w1, - const int& deg1, - const typename Nt_traits::Integer& r2, - const typename Nt_traits::Integer& s2, - const typename Nt_traits::Integer& t2, - const typename Nt_traits::Integer& u2, - const typename Nt_traits::Integer& v2, - const typename Nt_traits::Integer& w2, - const int& deg2, - typename Nt_traits::Algebraic *xs) +int + _compute_resultant_roots (Nt_traits& nt_traits, + const typename Nt_traits::Integer& r1, + const typename Nt_traits::Integer& s1, + const typename Nt_traits::Integer& t1, + const typename Nt_traits::Integer& u1, + const typename Nt_traits::Integer& v1, + const typename Nt_traits::Integer& w1, + const int& deg1, + const typename Nt_traits::Integer& r2, + const typename Nt_traits::Integer& s2, + const typename Nt_traits::Integer& t2, + const typename Nt_traits::Integer& u2, + const typename Nt_traits::Integer& v2, + const typename Nt_traits::Integer& w2, + const int& deg2, + typename Nt_traits::Algebraic *xs) { if (deg1 == 2 && deg2 == 1) { @@ -107,7 +108,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits, xs_end = nt_traits.solve_quadratic_equation (c[2], c[1], c[0], xs); - return (xs_end - xs); + return static_cast(xs_end - xs); } // At this stage, both curves have degree 2. We obtain a qaurtic polynomial @@ -165,7 +166,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits, xs_end = nt_traits.compute_polynomial_roots (poly, xs); - return (xs_end - xs); + return static_cast(xs_end - xs); } /*! @@ -179,8 +180,9 @@ int _compute_resultant_roots (Nt_traits& nt_traits, * \return The number of distinct roots found. */ template -int _compute_resultant_roots (Nt_traits& nt_traits, - const typename Nt_traits::Algebraic& r, +int +_compute_resultant_roots (Nt_traits& nt_traits, + const typename Nt_traits::Algebraic& r, const typename Nt_traits::Algebraic& s, const typename Nt_traits::Algebraic& t, const typename Nt_traits::Algebraic& u, @@ -226,7 +228,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits, xs_end = nt_traits.solve_quadratic_equation (c[2], c[1], c[0], xs); - return (xs_end - xs); + return static_cast(xs_end - xs); } } //namespace CGAL diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h index b68a407e20e..d923a1ff017 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h @@ -1932,7 +1932,7 @@ private: // x and y-coordinates are sorted in ascending order, we output the // intersection points in lexicographically ascending order. unsigned int mult; - int i, j; + int i, j; if (arc._is_special_segment()) { diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h index 385e620e816..ca1ea8c2f83 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h @@ -290,7 +290,7 @@ public: */ inline unsigned int size() const { - return segments.size(); + return static_cast(segments.size()); } /*! diff --git a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Open_hash.h b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Open_hash.h index c4e77f61497..4f44f5212f8 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Open_hash.h +++ b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Open_hash.h @@ -539,7 +539,7 @@ private: } /*! Find the given object in the given bucket. */ - Bucket_iterator _find_in_bucket (int index, + Bucket_iterator _find_in_bucket (std::size_t index, const value_type& val) const { Bucket& my_bucket = const_cast(buckets[index]); diff --git a/Arrangement_on_surface_2/include/CGAL/Basic_sweep_line_2.h b/Arrangement_on_surface_2/include/CGAL/Basic_sweep_line_2.h index 9c0d6ff3125..6dd87318eef 100644 --- a/Arrangement_on_surface_2/include/CGAL/Basic_sweep_line_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Basic_sweep_line_2.h @@ -416,7 +416,8 @@ protected: void _init_sweep (CurveInputIterator curves_begin, CurveInputIterator curves_end) { - m_num_of_subCurves = std::distance (curves_begin, curves_end); + // m_num_of_subCurves should be a size_t for "huge" data sets + m_num_of_subCurves = static_cast(std::distance (curves_begin, curves_end)); _init_structures(); diff --git a/Arrangement_on_surface_2/include/CGAL/Sweep_line_2/Sweep_line_2_utils.h b/Arrangement_on_surface_2/include/CGAL/Sweep_line_2/Sweep_line_2_utils.h index f3ed1f771b0..b664baf0a63 100644 --- a/Arrangement_on_surface_2/include/CGAL/Sweep_line_2/Sweep_line_2_utils.h +++ b/Arrangement_on_surface_2/include/CGAL/Sweep_line_2/Sweep_line_2_utils.h @@ -55,7 +55,7 @@ void make_x_monotone (CurveInputIter begin, CurveInputIter end, const Traits * tr) { // Split the input curves into x-monotone objects. - unsigned int num_of_curves = std::distance(begin, end); + std::size_t num_of_curves = std::distance(begin, end); std::vector object_vec; CurveInputIter iter; diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/Traits_test.h b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/Traits_test.h index 340d68a1338..f1cd4ca7924 100644 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/Traits_test.h +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/Traits_test.h @@ -607,9 +607,9 @@ bool Traits_test::intersect_wrapper(std::istringstream& str_stream) std::back_inserter(object_vec)); std::cout << "Test: intersect( " << this->m_xcurves[id1] << "," << this->m_xcurves[id2] << " ) ? "; - std::size_t num; + unsigned int num; str_stream >> num; - if (!this->compare(num, object_vec.size(), "size")) return false; + if (!this->compare(num, static_cast(object_vec.size()), "size")) return false; for (unsigned int i = 0; i < num; ++i) { unsigned int type; // 0 - point, 1 - x-monotone curve diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test_base b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test_base index a1c2641669d..bc11ca4f3d2 100755 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test_base +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test_base @@ -186,8 +186,8 @@ run_trapped_test() else run_test $1 $2 $3 $4 $5 $6 & WPID=$! - trap "kill -9 $WPID" INT - (sleep 1200; kill -9 $WPID) > /dev/null 2>&1 & + trap "kill -HUP $WPID" INT + (sleep 1200; kill -HUP $WPID) > /dev/null 2>&1 & SPID=$! wait $WPID > /dev/null 2>&1 # RES=$? diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c446783a2c..c7c29a5e518 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,6 @@ # Top level CMakeLists.txt for CGAL-branchbuild +project(CGAL) + cmake_minimum_required(VERSION 2.6.2) # option for branch build diff --git a/Combinatorial_map/doc_tex/Combinatorial_map/Combinatorial_map.tex b/Combinatorial_map/doc_tex/Combinatorial_map/Combinatorial_map.tex index dd40e3c389b..fa0c95475f4 100644 --- a/Combinatorial_map/doc_tex/Combinatorial_map/Combinatorial_map.tex +++ b/Combinatorial_map/doc_tex/Combinatorial_map/Combinatorial_map.tex @@ -1691,5 +1691,5 @@ from Moka with the design of the Halfedge data structure package of \cgal. Andreas Fabri and S\'ebastien Loriot contributed to the design, the coding, and to the documentation of the package, and Laurent Rineau helped for the design. Emma Michel contributed to the -manual. Monique Teillaud and Bernd Gaertner contributed to the manual +manual. Monique Teillaud and Bernd G{\"a}rtner contributed to the manual by giving useful remarks, really numerous and detailed for Monique. diff --git a/Convex_hull_3/demo/Convex_hull_3/incremental_hull_3_demo.cpp b/Convex_hull_3/demo/Convex_hull_3/incremental_hull_3_demo.cpp index 9ba73f7da51..3f0d36aa982 100644 --- a/Convex_hull_3/demo/Convex_hull_3/incremental_hull_3_demo.cpp +++ b/Convex_hull_3/demo/Convex_hull_3/incremental_hull_3_demo.cpp @@ -18,6 +18,9 @@ // Author(s) : Susan Hert // +#include + +#ifdef CGAL_USE_GEOMVIEW #include #include @@ -31,8 +34,6 @@ #include #include -#ifdef CGAL_USE_GEOMVIEW - #ifdef CGAL_USE_LEDA #include typedef leda_integer RT; @@ -89,6 +90,7 @@ int main () #else +#include int main() { std::cerr << "This demo requires geomview, which is not present on this platform\n"; diff --git a/Convex_hull_3/demo/Convex_hull_3/quickhull_3_demo.cpp b/Convex_hull_3/demo/Convex_hull_3/quickhull_3_demo.cpp index 3bd02fc30a5..57f5beacd5d 100644 --- a/Convex_hull_3/demo/Convex_hull_3/quickhull_3_demo.cpp +++ b/Convex_hull_3/demo/Convex_hull_3/quickhull_3_demo.cpp @@ -17,7 +17,9 @@ // // Author(s) : Susan Hert +#include +#ifdef CGAL_USE_GEOMVIEW #include #include @@ -28,8 +30,6 @@ #include #include -#ifdef CGAL_USE_GEOMVIEW - #ifdef CGAL_USE_LEDA #include typedef leda_integer RT; @@ -128,6 +128,8 @@ int main(int argc, char* argv[]) #else +#include + int main() { std::cerr << "This demo requires geomview, which is not present on this platform\n"; diff --git a/Convex_hull_d/demo/Convex_hull_d/chull_3d-geomview-demo.cpp b/Convex_hull_d/demo/Convex_hull_d/chull_3d-geomview-demo.cpp index 7220ed1b0d5..1f983976ab9 100644 --- a/Convex_hull_d/demo/Convex_hull_d/chull_3d-geomview-demo.cpp +++ b/Convex_hull_d/demo/Convex_hull_d/chull_3d-geomview-demo.cpp @@ -17,7 +17,12 @@ // // Author(s) : Michael Seel -#include +#include +#include +#include + +#if !defined(_MSC_VER) + #include #include #include @@ -27,11 +32,6 @@ #include #include #include -#include -#include -#include - -#if !defined(_MSC_VER) #ifdef CGAL_USE_LEDA #include diff --git a/Convex_hull_d/demo/Convex_hull_d/chull_dd-geomview-demo.cpp b/Convex_hull_d/demo/Convex_hull_d/chull_dd-geomview-demo.cpp index de9e6a12513..4ce06d30f2a 100644 --- a/Convex_hull_d/demo/Convex_hull_d/chull_dd-geomview-demo.cpp +++ b/Convex_hull_d/demo/Convex_hull_d/chull_dd-geomview-demo.cpp @@ -17,7 +17,12 @@ // // Author(s) : Michael Seel -#include +#include +#include +#include + +#if !defined(_MSC_VER) + #include #include #include @@ -26,11 +31,6 @@ #include #include #include -#include -#include -#include - -#if !defined(_MSC_VER) #ifdef CGAL_USE_LEDA #include diff --git a/Generator/examples/Generator/random_segments2.cpp b/Generator/examples/Generator/random_segments2.cpp index 3c7322e2432..a9420864d8c 100644 --- a/Generator/examples/Generator/random_segments2.cpp +++ b/Generator/examples/Generator/random_segments2.cpp @@ -30,7 +30,7 @@ int main() { PG p2( Point( 250,-250), Point( 250,250),50); Segm_iterator t1( p1, p2); // Segment generator. Count_iterator t1_begin( t1); // Finite range. - Count_iterator t1_end( 50); + Count_iterator t1_end( t1, 50); std::copy( t1_begin, t1_end, std::back_inserter(segs)); // A vertical like fan. @@ -38,7 +38,7 @@ int main() { PG p4( Point(-250, 250), Point( 250, 250),50); Segm_iterator t2( p3, p4); Count_iterator t2_begin( t2); - Count_iterator t2_end( 50); + Count_iterator t2_end( t2, 50); std::copy( t2_begin, t2_end, std::back_inserter(segs)); CGAL_assertion( segs.size() == 100); diff --git a/GraphicsView/demo/Segment_Delaunay_graph_2/Segment_voronoi_2.cpp b/GraphicsView/demo/Segment_Delaunay_graph_2/Segment_voronoi_2.cpp index 1cc529b4227..dcdc7cd3bc2 100644 --- a/GraphicsView/demo/Segment_Delaunay_graph_2/Segment_voronoi_2.cpp +++ b/GraphicsView/demo/Segment_Delaunay_graph_2/Segment_voronoi_2.cpp @@ -300,7 +300,7 @@ MainWindow::loadEdgConstraints(QString fileName) int n; ifs >> n; - K::Point_2 p,q, qold; + K::Point_2 p,q, qold(0,0); // Initialize qold, as otherwise some g++ issue a unjustified warning SVD::Vertex_handle vp, vq, vqold; while(ifs >> p) { diff --git a/Installation/cmake/modules/CGAL_Macros.cmake b/Installation/cmake/modules/CGAL_Macros.cmake index 27dfcd17150..19ab4112cf8 100644 --- a/Installation/cmake/modules/CGAL_Macros.cmake +++ b/Installation/cmake/modules/CGAL_Macros.cmake @@ -110,26 +110,36 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) set(search_dirs "") message("Compiler version:") set(version "Unknown compiler. Cannot display its version") - foreach(flag "-V" "--version" "-v") - execute_process(COMMAND "${CMAKE_CXX_COMPILER}" ${flag} + if(MSVC) + execute_process(COMMAND "${CMAKE_CXX_COMPILER}" RESULT_VARIABLE ok - OUTPUT_VARIABLE out_version ERROR_VARIABLE out_version TIMEOUT 5) if(ok EQUAL 0) - if("${out_version}" MATCHES "^clang") - execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-search-dirs - RESULT_VARIABLE ok - OUTPUT_VARIABLE out_search_dirs - TIMEOUT 5) - if(ok EQUAL 0) - set(search_dirs "${out_search_dirs}") - endif() - endif() set(version "${out_version}") - break() endif() - endforeach() + else() + foreach(flag "-V" "--version" "-v") + execute_process(COMMAND "${CMAKE_CXX_COMPILER}" ${flag} + RESULT_VARIABLE ok + OUTPUT_VARIABLE out_version + ERROR_VARIABLE out_version + TIMEOUT 5) + if(ok EQUAL 0) + if("${out_version}" MATCHES "^clang") + execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-search-dirs + RESULT_VARIABLE ok + OUTPUT_VARIABLE out_search_dirs + TIMEOUT 5) + if(ok EQUAL 0) + set(search_dirs "${out_search_dirs}") + endif() + endif() + set(version "${out_version}") + break() + endif() + endforeach() + endif() message("${version}") if(search_dirs) message("Search dirs:") diff --git a/Installation/doc_tex/Installation/appendix.tex b/Installation/doc_tex/Installation/appendix.tex index 46f1dfc24b0..3e710712171 100644 --- a/Installation/doc_tex/Installation/appendix.tex +++ b/Installation/doc_tex/Installation/appendix.tex @@ -53,7 +53,7 @@ and Debug modes. \TTindex{cgal\_create\_cmake\_script}\index{scripts!\texttt{cgal\_create\_cmake\_script}} The Bourne-shell script \texttt{cgal\_create\_cmake\_script} is contained in the -\cgaldir\texttt{/scripts} directory. It can be used to create +\texttt{\cgalrel/scripts} directory. It can be used to create \texttt{CmakeLists.txt} files for compiling \cgal\ applications. Executing \texttt{cgal\_create\_cmake\_script} in an application directory creates a \texttt{CMakeLists.txt} containing rules for every \texttt{*.cpp} file diff --git a/Installation/doc_tex/Installation/installation.tex b/Installation/doc_tex/Installation/installation.tex index a6c03aa153a..1647f52c4cd 100644 --- a/Installation/doc_tex/Installation/installation.tex +++ b/Installation/doc_tex/Installation/installation.tex @@ -40,13 +40,7 @@ \newcommand{\mswin}{\textsc{MS}~Windows} %% macro for CGAL directory -\newcommand{\cgaldir}{\texttt{CGAL-\cgalversionnumber}} - -%% macro for YOUR CGAL directory :) -\newcommand{\yourcgaldir}{$<$\textit{insert your \cgaldir\ dir}$>$} - -%% macro for CGAL install config directory -\newcommand{\cgalinstconfdir}{\cgaldir\texttt{/config/install}\index{directories!config/install@\texttt{config/install}}} +\newcommand{\cgalrel}{\texttt{CGAL-\cgalversionnumber}} %% macros for WWW pages % Now in cgal_manual.sty -- Laurent Rineau, 2010/02/20 @@ -62,14 +56,14 @@ This document describes how to install \cgal\ on Windows, Unix-like systems and Ideally, installing \cgal\ amounts to: -\begin{verbatim} - cd CGAL-3.9 # go to CGAL directory +\begin{alltt} + cd \cgalrel # go to CGAL directory cmake . # configure CGAL make # build the CGAL libraries cd examples/Straight_skeleton_2 # go to an example directory - cmake -DCGAL_DIR=$HOME/CGAL-3.9 . # configure the examples + cmake -DCGAL_DIR=$HOME/\cgalrel . # configure the examples make # build the examples -\end{verbatim} +\end{alltt} %% $ This dollar is there to trick syntax highlighting in emacs In a less ideal world, you probably have to install \cmake, a makefile @@ -78,7 +72,7 @@ generator, and third party libraries. That's what this manual is about. \section{Supported Compilers} In order to build the \cgal\ libraries, you need a \CC\ compiler. -\cgal~3.9 is supported for the following compilers/operating systems: +\cgal~\cgalversionnumber is supported for the following compilers/operating systems: \begin{center}\index{compilers!supported}\index{supported compilers} \renewcommand{\arraystretch}{1.3} @@ -160,7 +154,7 @@ installed is recommended. These libraries can be obtained from As Visual \CC\ is not properly supported by the \gmp\ and \mpfr\ projects, we provide precompiled versions of \gmp\ and \mpfr, which can be downloaded with the installer -\texttt{CGAL-3.9-Setup.exe}. +\texttt{\cgalrel-Setup.exe}. \subsection{CORE \label{thirdparty:Core}} @@ -241,7 +235,7 @@ It also contains a complete \lapack\ implementation. As Visual~\CC\ is not properly supported by the \taucs\ project, we provide a precompiled version of \taucs, which can be downloaded with the installer -\texttt{CGAL-3.9-Setup.exe}. +\texttt{\cgalrel-Setup.exe}. {\em CAUTION:} Since version 3.3.1, \cgal\ is no longer compatible with the official release of \taucs\ (currently 2.2). Make sure to use the modified @@ -331,20 +325,20 @@ It can be downloaded from \esbtlpage. The \cgal\ library can be downloaded from \cgaldownloadpage. -After you have downloaded the file \texttt{CGAL-3.9.tar.gz} containing the +After you have downloaded the file \texttt{\cgalrel.tar.gz} containing the \cgal\ sources, you have to unpack it. Under a Unix-like shell, use the command: -\begin{verbatim} - tar xzf CGAL-3.9.tar.gz -\end{verbatim} +\begin{alltt} + tar xzf \cgalrel.tar.gz +\end{alltt} -When you are on Windows you may download and run the \texttt{CGAL-3.9-Setup.exe}. It is a +When you are on Windows you may download and run the \texttt{\cgalrel-Setup.exe}. It is a self extracting executable that installs the \cgal\ source, and that allows you to select and download some precompiled third party libraries. -In both cases the directory \cgaldir\ will be created. This directory +In both cases the directory \cgalrel\ will be created. This directory contains the following subdirectories:\index{directories!structure} \begin{center} @@ -386,8 +380,9 @@ third-party libraries you want to use and where they can be found, and which \cgal\ libraries you want to build. Gathering all this information is called {\em configuration}. -For CGAL-3.9, the configuration is generated with \cmake, a -cross-platform build system. This manual explains only those features of +The configuration uses \cmake, a +cross-platform build system generator that can generate makefiles, or IDE +project files. This manual explains only those features of \cmake\ which are needed in order to build \cgal. Please refer to the \cmake\ documentation at \cmakepage\ for further details. @@ -402,10 +397,10 @@ is available on all platforms since \cmake\ version~2.6. You must pass as argument the root directory of \cgal. For example: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} - cd CGAL-3.9 +\begin{alltt} + cd \cgalrel cmake-gui . # Notice the dot to indicate the current directory. -\end{verbatim} +\end{alltt} } Once \texttt{cmake-gui} has started up, you must press 'Configure'. @@ -430,10 +425,10 @@ Alternatively, you can run the command-line tool called \cgal. For example: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} - cd CGAL-3.9 +\begin{alltt} + cd \cgalrel cmake . # Notice the dot to indicate the current directory. -\end{verbatim} +\end{alltt} } @@ -462,10 +457,10 @@ you choose a particular generator as a mean to choose a specific compiler (becau build files). For example, the following generates solution files for use in Visual \CC\ 9.0: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} - cd CGAL-3.9 +\begin{alltt} + cd \cgalrel cmake -G"Visual Studio 9 2008" . -\end{verbatim} +\end{alltt} } In other cases, however, the generator doesn't directly identify a specific compiler but a tool chain. @@ -474,10 +469,10 @@ command-line compiler, like \texttt{gcc}. If you need the makefiles to use a dif specify the desired compiler in the call to \cmake{}, as in this example: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} - cd CGAL-3.9 +\begin{alltt} + cd \cgalrel cmake -DCMAKE_CXX_COMPILER:FILEPATH=g++-3.4 . -\end{verbatim} +\end{alltt} } @@ -528,10 +523,10 @@ by \cgal\ for the user convenience and it has it's own license.}\addtocounter{fo If you turn off the configuration of a library, you can still configure it manually from the source directory: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} - cd CGAL-3.9/src/CGALQt4 +\begin{alltt} + cd \cgalrel/src/CGALQt4 cmake . # configures only the CGAL_Qt4 library -\end{verbatim} +\end{alltt} } \subsection{Examples and Demos} @@ -577,19 +572,19 @@ distinct directory for each configuration and by running \cmake\ from there. Thi as {\em out-of-source configuration}, as opposite to an {\em in-source configuration}, as showed in the previous sections. -You can, for example, generate subdirectories \cgaldir{}\texttt{/cmake/platforms/debug} and -\cgaldir{}\texttt{/cmake/platforms/release} for two configurations, respectively: +You can, for example, generate subdirectories \cgalrel{}\texttt{/cmake/platforms/debug} and +\cgalrel{}\texttt{/cmake/platforms/release} for two configurations, respectively: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} -mkdir CGAL-3.9/cmake/platforms/debug -cd CGAL-3.9/cmake/platforms/debug +\begin{alltt} +mkdir \cgalrel/cmake/platforms/debug +cd \cgalrel/cmake/platforms/debug cmake -DCMAKE_BUILD_TYPE=Debug ../../.. -mkdir CGAL-3.9/cmake/platforms/release -cd CGAL-3.9/cmake/platforms/release +mkdir \cgalrel/cmake/platforms/release +cd \cgalrel/cmake/platforms/release cmake -DCMAKE_BUILD_TYPE=Release ../../.. -\end{verbatim} +\end{alltt} } \section{Building \cgal\ Libraries} @@ -606,9 +601,9 @@ makefiles. You can use the \texttt{make} command-line tool for the succeeding build step as follows: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} -cd CGAL-3.9 +cd \cgalrel # build all the selected libraries at once @@ -619,11 +614,11 @@ make make CGAL CGAL_ImageIO CGAL_Qt4 -\end{verbatim} +\end{alltt} } The resulting are placed in the subdirectory {\tt lib} under {\tt } -(which is \cgaldir\ in case you run an in-source-configuration). +(which is \cgalrel\ in case you run an in-source-configuration). With generators other than {\tt UNIX Makefiles} the resulting build files are solution and project files which @@ -634,11 +629,11 @@ Alternatively, you can build it with the command line version of the {\sc Visual Studio Ide}: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} devenv CGAL.sln /Build Debug -\end{verbatim} +\end{alltt} } The "Debug" argument is needed because \cmake\ creates solution files for @@ -667,7 +662,7 @@ The targets \texttt{examples} and \texttt{demos} include themselves all the targ for examples and demos respectively. {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} # build all examples at once make examples @@ -678,7 +673,7 @@ make demos # build only the Straight Skeleton demo make Straight_skeleton_2_demo -\end{verbatim} +\end{alltt} } \begin{ccAdvanced} @@ -704,15 +699,15 @@ The following example shows a typical session from configuration to installation in a {\sc Unix}-like environment: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} -cd CGAL-3.9 +cd \cgalrel cmake . # configure make # compile make install # install -\end{verbatim} +\end{alltt} } If you use a generator that produces IDE files (for Visual Studio for instance) there will be an optional @@ -728,7 +723,7 @@ variable explicitly {\em at the configuration time} and not when executing the i \end{ccAdvanced} The file \texttt{CGALConfig.cmake} is installed by default in -\texttt{\$CMAKE\_INSTALLED\_PREFIX/lib/CGAL-3.9}. +\texttt{\$CMAKE\_INSTALLED\_PREFIX/lib/\cgalrel}. \section{Configuring and Building Programs Using \cgal} @@ -745,13 +740,13 @@ to indicate the location of that config file in the \cmake\ variable \texttt{CGAL\_DIR}: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} -cd CGAL-3.9/examples/Straight_skeleton_2 -cmake -DCGAL_DIR=$HOME/CGAL-3.9 . +cd \cgalrel/examples/Straight_skeleton_2 +cmake -DCGAL_DIR=$HOME/\cgalrel . make -\end{verbatim} +\end{alltt} } \texttt{CGAL\_DIR} can also be an environment variable. @@ -786,17 +781,17 @@ If you use the command line tool you can specify flags {\em directly} by setting controlling variable right up front: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} -cd CGAL-3.9 +cd \cgalrel cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-g . -cd CGAL-3.9/examples/Straight_skeleton_2 +cd \cgalrel/examples/Straight_skeleton_2 -cmake -DCGAL_DIR=CGAL-3.9 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE . +cmake -DCGAL_DIR=\cgalrel -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE . -\end{verbatim} +\end{alltt} } \end{ccAdvanced} @@ -1221,17 +1216,17 @@ Below is an example output on a Windows machine with VC8 installed, using \cmake and the following command-line call to \texttt{cmake}: {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} cmake -DWITH_examples=false -DWITH_demos=false -DCMAKE_BUILD_TYPE=Release ../../.. -\end{verbatim} +\end{alltt} } {\ccTexHtml{\scriptsize}{} -\begin{verbatim} +\begin{alltt} -- Check for working C compiler: cl -- Check for working C compiler: cl -- works -- Detecting C compiler ABI info @@ -1322,8 +1317,8 @@ cmake -DWITH_examples=false -- uic executable: C:/Work/Downloaded/Libraries/qt-win-opensource-src-4.4.1/bin/uic.exe -- Configuring done -- Generating done --- Build files have been written to: C:/Work/Active/GeometryFactory/CGAL/Autotest/CGAL-3.9/cmake/platforms/a -\end{verbatim} +-- Build files have been written to: C:/Work/Active/GeometryFactory/CGAL/Autotest/\cgalrel/cmake/platforms/a +\end{alltt} } diff --git a/Interpolation/test/Interpolation/include/CGAL/_test_surface_neighbors_3.cpp b/Interpolation/test/Interpolation/include/CGAL/_test_surface_neighbors_3.cpp index 19c39f06ab7..9b89331c688 100644 --- a/Interpolation/test/Interpolation/include/CGAL/_test_surface_neighbors_3.cpp +++ b/Interpolation/test/Interpolation/include/CGAL/_test_surface_neighbors_3.cpp @@ -200,7 +200,7 @@ test_coords(const Triangul& T, const typename typename Triangul::Cell_handle start; - typename Triangul::Geom_traits::FT norm; + typename Triangul::Geom_traits::FT norm = 1; // 1 for that default doesn't trigger an assert //test different function calls switch(version){ case 0:{ diff --git a/Interpolation/test/Interpolation/test_surface_neighbor_3.cpp b/Interpolation/test/Interpolation/test_surface_neighbor_3.cpp index ff0c7b6f292..1d969cd4c37 100644 --- a/Interpolation/test/Interpolation/test_surface_neighbor_3.cpp +++ b/Interpolation/test/Interpolation/test_surface_neighbor_3.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include diff --git a/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp b/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp index 1e182071d0d..4b17a7d48ab 100644 --- a/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp +++ b/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp @@ -21,6 +21,11 @@ #include +#include + +#if defined(BOOST_MSVC) +# pragma warning(disable:4244) // int to float conversion warning +#endif #include #include diff --git a/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h b/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h index f38781799f7..5a58cd70dab 100644 --- a/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h +++ b/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h @@ -427,8 +427,8 @@ fill_matrix(InputIterator begin, InputIterator end, M.set(line_count, k*(k+1)/2+i, std::pow(x,static_cast(k-i)) * std::pow(y,static_cast(i)) - /( fact(i) * - fact(k-i) + /( fact(static_cast(i)) * + fact(static_cast(k-i)) *std::pow(this->preconditionning,static_cast(k)))); } } diff --git a/Maintenance/test_handling/candidate_branches b/Maintenance/test_handling/candidate_branches index 410c94fd2ac..9cf6a4ec1da 100644 --- a/Maintenance/test_handling/candidate_branches +++ b/Maintenance/test_handling/candidate_branches @@ -1,2 +1,3 @@ unique_sqrt_extension-sloriot -global_function_solve_1-hemmer \ No newline at end of file +global_function_solve_1-hemmer +Generator-removed_deprecated-odevil diff --git a/Manual_tools/src/cpp_formatting.cpp b/Manual_tools/src/cpp_formatting.cpp index c20d7a030a3..b8cc45c7f79 100644 --- a/Manual_tools/src/cpp_formatting.cpp +++ b/Manual_tools/src/cpp_formatting.cpp @@ -89,43 +89,43 @@ inline double estimate_html_size( const string& s) { void three_cols_html_begin( ostream& out, bool big_col1) { current_font = it_font; out << indent << indent << ind_newline - << "" << ind_newline - << ""; if ( big_col1) - out << ""; - out << ""; + out << ""; if ( ! empty_col3) { if ( big_col2) - out << ""; - out << ""; + out << "
" << ind_newline + << "" << ind_newline << "
" : " NOWRAP>") - << ind_newline << "" << outdent << ind_newline; + << "%\"" << ( big_col1 ? " COLSPAN=3>" : " NOWRAP>") + << ind_newline << "" << outdent << ind_newline; } void three_cols_html_premature_end( ostream& out) { - out << indent << ind_newline << store_remember_font() << "" + out << indent << ind_newline << store_remember_font() << "" << ind_newline << "
" << outdent << outdent << ind_newline; } void three_cols_html_second( ostream& out, bool big_col1, bool big_col2) { - out << indent << ind_newline << store_remember_font() << "" + out << indent << ind_newline << store_remember_font() << "" << ind_newline << "
" : ">") - << ind_newline << "" << get_remember_font() << outdent + << "%\" NOWRAP" << ( big_col2 ? " COLSPAN=2>" : ">") + << ind_newline << "" << get_remember_font() << outdent << ind_newline; } void three_cols_html_third( ostream& out, bool big_col2, bool empty_col3) { - out << indent << ind_newline << store_remember_font() << "" + out << indent << ind_newline << store_remember_font() << "" << ind_newline; if ( ! big_col2) out << "
"; + out << "
"; } out << outdent << ind_newline; } @@ -145,31 +145,31 @@ void three_cols_html_new_closing( ostream& out) { void two_cols_html_begin( ostream& out) { current_font = it_font; out << indent << indent << ind_newline - << "" << ind_newline - << ""; if ( ! empty_col2) - out << "" << outdent << outdent; } @@ -1133,9 +1133,9 @@ void format_function( bool method, const char* signature, *current_ostream << ""; if ( macroIsTrue( "\\ccLongParamLayout") || ! macroIsTrue( "\\ccAlternateThreeColumn")) - *current_ostream << ""; + << "\" NOWRAP>"; *current_ostream << ""; if ( macroIsTrue( "\\ccLongParamLayout") || ! macroIsTrue( "\\ccAlternateThreeColumn")) - *current_ostream << ""; + << "\" NOWRAP>"; *current_ostream << ""; if ( macroIsTrue( "\\ccLongParamLayout") || ! macroIsTrue( "\\ccAlternateThreeColumn")) - *current_ostream << ""; + << "\" NOWRAP>"; *current_ostream << "
" - << ind_newline << "" << outdent << ind_newline; + << "" << ind_newline + << "" << ind_newline << "
" + << ind_newline << "" << outdent << ind_newline; } void two_cols_html_premature_end( ostream& out) { - out << indent << ind_newline << store_remember_font() <<"" + out << indent << ind_newline << store_remember_font() <<"" << ind_newline << "
" << outdent << outdent << ind_newline; } void two_cols_html_second( ostream& out, bool empty_col2) { - out << indent << ind_newline << store_remember_font() << "
" + out << indent << ind_newline << store_remember_font() << "" << ind_newline << "
"; + out << "
"; out << outdent << ind_newline; } void two_cols_html_new_closing( ostream& out) { - out << indent << ind_newline << store_remember_font() << "" + out << indent << ind_newline << store_remember_font() << "" << ind_newline << "
"; *current_ostream << get_remember_font() << ind_newline; @@ -1287,9 +1287,9 @@ void format_function( bool method, const char* signature, *current_ostream << "
"; *current_ostream << get_remember_font() << ind_newline; @@ -1904,9 +1904,9 @@ void format_constructor( const char* signature) { *current_ostream << "
"; *current_ostream << get_remember_font() << ind_newline; diff --git a/Manual_tools/src/latex_converter_config/html/cc_manual.sty b/Manual_tools/src/latex_converter_config/html/cc_manual.sty index 1fb61a01c0a..4a24b1e2d2b 100644 --- a/Manual_tools/src/latex_converter_config/html/cc_manual.sty +++ b/Manual_tools/src/latex_converter_config/html/cc_manual.sty @@ -700,7 +700,7 @@ %% #1 == ccCategory %% #2 == ccRefName \newcommand{\lcDrawRefTabs}[2]{% - \lcRawHtml{ diff --git a/Manual_tools/src/latex_converter_config/html/latex.sty b/Manual_tools/src/latex_converter_config/html/latex.sty index 72c1d4155c0..5ad311027d3 100644 --- a/Manual_tools/src/latex_converter_config/html/latex.sty +++ b/Manual_tools/src/latex_converter_config/html/latex.sty @@ -449,9 +449,9 @@ % | * Accents and Special Symbols % +-------------------------------------------------------------------------- \newcommand{\dag}{% - \lcRawHtml{}} + \lcRawHtml{dag}} \newcommand{\ddag}{% - \lcRawHtml{}} + \lcRawHtml{ddag}} \newcommand{\S}{\lcRawHtml{§}} \newcommand{\P}{\lcRawHtml{¶}} @@ -476,13 +476,13 @@ \newcommand{\O}{\lcRawHtml{Ø}} \newcommand{\l}{% - \lcRawHtml{}} + \lcRawHtml{l}} \newcommand{\L}{% - \lcRawHtml{}} + \lcRawHtml{L}} \newcommand{\oe}{% - \lcRawHtml{}} + \lcRawHtml{oe}} \newcommand{\OE}{% - \lcRawHtml{}} + \lcRawHtml{OE}} % +-------------------------------------------------------------------------- % | * Greek alphabet: following Table 3.3 page 41 in Lamport. @@ -494,60 +494,60 @@ \newcommand{\epsilon}{\lcRawHtml{ε}} \newcommand{\varepsilon}{\lcRawHtml{ε}} \newcommand{\zeta}{\lcRawHtml% - {}} + {zeta}} \newcommand{\eta}{\lcRawHtml{η}} \newcommand{\theta}{\lcRawHtml% - {}} + {theta}} \newcommand{\vartheta}{\lcRawHtml% - {}} + {vartheta}} \newcommand{\iota}{\lcRawHtml% - {}} + {iota}} \newcommand{\kappa}{\lcRawHtml% - {}} + {kappa}} \newcommand{\lambda}{\lcRawHtml{λ}} \newcommand{\mu}{\lcRawHtml{µ}} %%\newcommand{\mu}{\lcRawHtml% %% {}} \newcommand{\nu}{\lcRawHtml% - {}} + {nu}} \newcommand{\xi}{\lcRawHtml{ξ}} \newcommand{\pi}{\lcRawHtml{π}} \newcommand{\varpi}{\lcRawHtml% - {}} + {varpi}} \newcommand{\rho}{\lcRawHtml% - {}} + {rho}} \newcommand{\varrho}{\lcRawHtml% - {}} + {varrho}} \newcommand{\sigma}{\lcRawHtml{σ}} \newcommand{\varsigma}{\lcRawHtml% - {}} + {varsigma}} \newcommand{\tau}{\lcRawHtml% - {}} + {tau}} \newcommand{\upsilon}{\lcRawHtml% - {}} + {upsilon}} \newcommand{\phi}{\lcRawHtml{Φ}} \newcommand{\varphi}{\lcRawHtml{φ}} \newcommand{\chi}{\lcRawHtml% - {}} + {chi}} \newcommand{\psi}{\lcRawHtml% - {}} + {psi}} \newcommand{\omega}{\lcRawHtml{ω}} \newcommand{\Gamma}{\lcRawHtml% - {}} + {Gamma}} \newcommand{\Delta}{\lcRawHtml{Δ}} \newcommand{\Theta}{\lcRawHtml{Θ}} \newcommand{\Lambda}{\lcRawHtml% - {}} + {Lambda}} \newcommand{\Xi}{\lcRawHtml% - {}} + {Xi}} \newcommand{\Pi}{\lcRawHtml{Π}} \newcommand{\Sigma}{\lcRawHtml{Σ}} \newcommand{\Upsilon}{\lcRawHtml% - {}} + {Upsilon}} \newcommand{\Phi}{\lcRawHtml{Φ}} \newcommand{\Psi}{\lcRawHtml% - {}} + {Psi}} \newcommand{\Omega}{\lcRawHtml{Ω}} % +-------------------------------------------------------------------------- @@ -565,50 +565,50 @@ \newcommand{\lciMathbb}{} % dummy, supporting other chars/macros as argument \newcommand{\lciMathbbA}{\lcRawHtml% - { }} + {< IMG ALT="A" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_A.gif"> }} \newcommand{\lciMathbbB}{\lcRawHtml% - { }} + {< IMG ALT="B" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_B.gif"> }} \newcommand{\lciMathbbC}{\lcRawHtml{}} \newcommand{\lciMathbbD}{\lcRawHtml% - { }} + {< IMG ALT="D" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_D.gif"> }} \newcommand{\lciMathbbE}{\lcRawHtml% - { }} + {< IMG ALT="E" BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_E.gif"> }} \newcommand{\lciMathbbF}{\lcRawHtml% - { }} + {< IMG ALT="F" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_F.gif"> }} \newcommand{\lciMathbbG}{\lcRawHtml% - { }} + {< IMG ALT="G" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_G.gif"> }} \newcommand{\lciMathbbH}{\lcRawHtml% - { }} + {< IMG ALT="H" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_H.gif"> }} \newcommand{\lciMathbbI}{\lcRawHtml% - { }} + {< IMG ALT="I" BORDER=0 WIDTH=7 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_I.gif"> }} \newcommand{\lciMathbbJ}{\lcRawHtml% - { }} + {< IMG ALT="J" BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_mathbb_J.gif"> }} \newcommand{\lciMathbbK}{\lcRawHtml% - { }} + {< IMG ALT="K" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_K.gif"> }} \newcommand{\lciMathbbL}{\lcRawHtml% - { }} + {< IMG ALT="L" BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_L.gif"> }} \newcommand{\lciMathbbM}{\lcRawHtml% - { }} + {< IMG ALT="M" BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_M.gif"> }} \newcommand{\lciMathbbN}{\lcRawHtml{}} \newcommand{\lciMathbbO}{\lcRawHtml% - { }} + {< IMG ALT="O" BORDER=0 WIDTH=12 HEIGHT=20 ALIGN=MIDDLE SRC="cc_mathbb_O.gif"> }} \newcommand{\lciMathbbP}{\lcRawHtml{}} \newcommand{\lciMathbbQ}{\lcRawHtml{}} \newcommand{\lciMathbbR}{\lcRawHtml{}} \newcommand{\lciMathbbS}{\lcRawHtml% - { }} + {< IMG ALT="S" BORDER=0 WIDTH=8 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_S.gif"> }} \newcommand{\lciMathbbT}{\lcRawHtml% - { }} + {< IMG ALT="T" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_T.gif"> }} \newcommand{\lciMathbbU}{\lcRawHtml% - { }} + {< IMG ALT="U" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_U.gif"> }} \newcommand{\lciMathbbV}{\lcRawHtml% - { }} + {< IMG ALT="V" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_V.gif"> }} \newcommand{\lciMathbbW}{\lcRawHtml% - { }} + {< IMG ALT="W" BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_W.gif"> }} \newcommand{\lciMathbbX}{\lcRawHtml% - { }} + {< IMG ALT="X" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_X.gif"> }} \newcommand{\lciMathbbY}{\lcRawHtml% - { }} + {< IMG ALT="Y" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_Y.gif"> }} \newcommand{\lciMathbbZ}{\lcRawHtml{}} % +-------------------------------------------------------------------------- @@ -630,62 +630,62 @@ \newcommand{\times}{\lcRawHtml{ × }} \newcommand{\div}{\lcRawHtml{ ÷ }} \newcommand{\mp}{\lcRawHtml% - { }} + {< IMG ALT="mp" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_mp.gif"> }} \newcommand{\ast}{\lcRawHtml{ ∗ }} \newcommand{\star}{\lcRawHtml% - { }} + {< IMG ALT="star" BORDER=0 WIDTH=4 HEIGHT=2 ALIGN=BOTTOM SRC="cc_star.gif"> }} \newcommand{\circ}{\lcRawHtml{°}} \newcommand{\bullet}{\lcRawHtml{• }} \newcommand{\cap}{\lcRawHtml{ }} \newcommand{\cup}{\lcRawHtml{ }} \newcommand{\uplus}{\lcRawHtml% - { }} + {< IMG ALT="uplus" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uplus.gif"> }} \newcommand{\sqcap}{\lcRawHtml% - { }} + {< IMG ALT="sqcap" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcap.gif"> }} \newcommand{\sqcup}{\lcRawHtml% - { }} + {< IMG ALT="sqcup" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcup.gif"> }} \newcommand{\vee}{\lcRawHtml% - { }} + {< IMG ALT="vee" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_vee.gif"> }} \newcommand{\wedge}{\lcRawHtml% - { }} + {< IMG ALT="wedge" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_wedge.gif"> }} \newcommand{\setminus}{\lcRawHtml{ \ }} \newcommand{\wr}{\lcRawHtml% - { }} + {< IMG ALT="wr" BORDER=0 WIDTH=2 HEIGHT=21 ALIGN=MIDDLE SRC="cc_wr.gif"> }} \newcommand{\diamond}{\lcRawHtml% - { }} + {< IMG ALT="diamond" BORDER=0 WIDTH=7 HEIGHT=7 ALIGN=BOTTOM SRC="cc_lowercase_diamond.gif"> }} \newcommand{\bigtriangleup}{\lcRawHtml% - { }} + {< IMG ALT="bigtriangleup" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangleup.gif"> }} \newcommand{\bigtriangledown}{\lcRawHtml% - { }} + {< IMG ALT="bigtriangledown" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangledown.gif"> }} \newcommand{\triangleleft}{\lcRawHtml% - { }} + {< IMG ALT="triangleleft" BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleleft.gif"> }} \newcommand{\triangleright}{\lcRawHtml% - { }} + {< IMG ALT="triangleright" BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleright.gif"> }} \newcommand{\lhd}{\lcRawHtml% - { }} + {< IMG ALT="lhd" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_lhd.gif"> }} \newcommand{\rhd}{\lcRawHtml% - { }} + {< IMG ALT="rhd" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_rhd.gif"> }} \newcommand{\unlhd}{\lcRawHtml% - { }} + {< IMG ALT="unlhd" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unlhd.gif"> }} \newcommand{\unrhd}{\lcRawHtml% - { }} + {< IMG ALT="unrhd" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unrhd.gif"> }} \newcommand{\oplus}{\lcRawHtml{ }} \newcommand{\ominus}{\lcRawHtml% - { }} + {< IMG ALT="ominus" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_ominus.gif"> }} \newcommand{\otimes}{\lcRawHtml% - { }} + {< IMG ALT="otimes" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_otimes.gif"> }} \newcommand{\oslash}{\lcRawHtml% - { }} + {< IMG ALT="oslash" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_oslash.gif"> }} \newcommand{\odot}{\lcRawHtml% - { }} + {< IMG ALT="odot" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_odot.gif"> }} \newcommand{\bigcirc}{\lcRawHtml% - { }} + {< IMG ALT="bigcirc" BORDER=0 WIDTH=15 HEIGHT=27 ALIGN=MIDDLE SRC="cc_bigcirc.gif"> }} \newcommand{\dagger}{\lcRawHtml% - { }} + {< IMG ALT="dagger" BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_dagger.gif"> }} \newcommand{\ddagger}{\lcRawHtml% - { }} + {< IMG ALT="ddagger" BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_ddagger.gif"> }} \newcommand{\amalg}{\lcRawHtml% - { }} + {< IMG ALT="amalg" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_amalg.gif"> }} % +-------------------------------------------------------------------------- % | * Relation symbols following Table 3.5 page 43 in Lamport. @@ -695,130 +695,130 @@ \newcommand{\leq}{\lcRawHtml{ }} \newcommand{\prec}{\lcRawHtml% - { }} + {< IMG ALT="prec" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_prec.gif"> }} \newcommand{\preceq}{\lcRawHtml% - { }} + {< IMG ALT="preceq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_preceq.gif"> }} \newcommand{\ll}{\lcRawHtml% - { }} + {< IMG ALT="ll" BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_ll.gif"> }} \newcommand{\subset}{\lcRawHtml{ }} \newcommand{\subseteq}{\lcRawHtml{ }} \newcommand{\sqsubset}{\lcRawHtml% - { }} + {< IMG ALT="sqsubset" BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsubset.gif"> }} \newcommand{\sqsubseteq}{\lcRawHtml% - { }} + {< IMG ALT="sqsubseteq" BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsubseteq.gif"> }} \newcommand{\in}{\lcRawHtml{ }} \newcommand{\vdash}{\lcRawHtml% - { }} + {< IMG ALT="vdash" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_vdash.gif"> }} \newcommand{\geq}{\lcRawHtml{ }} \newcommand{\succ}{\lcRawHtml% - { }} + {< IMG ALT="succ" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_succ.gif"> }} \newcommand{\succeq}{\lcRawHtml% - { }} + {< IMG ALT="succeq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_succeq.gif"> }} \newcommand{\gg}{\lcRawHtml% - { }} + {< IMG ALT="gg" BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_gg.gif"> }} \newcommand{\supset}{\lcRawHtml% - { }} + {< IMG ALT="supset" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_supset.gif"> }} \newcommand{\supseteq}{\lcRawHtml% - { }} + {< IMG ALT="supseteq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_supseteq.gif"> }} \newcommand{\sqsupset}{\lcRawHtml% - { }} + {< IMG ALT="sqsupset" BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsupset.gif"> }} \newcommand{\sqsupseteq}{\lcRawHtml% - { }} + {< IMG ALT="sqsupseteq" BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsupseteq.gif"> }} \newcommand{\ni}{\lcRawHtml% - { }} + {< IMG ALT="ni" BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_ni.gif"> }} \newcommand{\dashv}{\lcRawHtml% - { }} + {< IMG ALT="dashv" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_dashv.gif"> }} \newcommand{\equiv}{\lcRawHtml{ }} \newcommand{\sim}{\lcRawHtml{ }} \newcommand{\simeq}{\lcRawHtml% - { }} + {< IMG ALT="simeq" BORDER=0 WIDTH=11 HEIGHT=8 ALIGN=BOTTOM SRC="cc_simeq.gif"> }} \newcommand{\asymp}{\lcRawHtml% - { }} + {< IMG ALT="asymp" BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_asymp.gif"> }} \newcommand{\approx}{\lcRawHtml% - { }} + {< IMG ALT="approx" BORDER=0 WIDTH=11 HEIGHT=10 ALIGN=BOTTOM SRC="cc_approx.gif"> }} \newcommand{\cong}{\lcRawHtml% - { }} + {< IMG ALT="cong" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_cong.gif"> }} \newcommand{\neq}{\lcRawHtml{ }} \newcommand{\ne}{\lcRawHtml{ }} \newcommand{\doteq}{\lcRawHtml% - { }} + {< IMG ALT="doteq" BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_doteq.gif"> }} \newcommand{\notin}{\lcRawHtml% - { }} + {< IMG ALT="notin" BORDER=0 WIDTH=9 HEIGHT=37 ALIGN=MIDDLE SRC="cc_notin.gif"> }} \newcommand{\models}{\lcRawHtml% - { }} + {< IMG ALT="models" BORDER=0 WIDTH=12 HEIGHT=29 ALIGN=MIDDLE SRC="cc_models.gif"> }} \newcommand{\perp}{\lcRawHtml% - { }} + {< IMG ALT="perp" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_perp.gif"> }} \newcommand{\mid}{\lcRawHtml{ | }} \newcommand{\parallel}{\lcRawHtml{||}} \newcommand{\bowtie}{\lcRawHtml% - { }} + {< IMG ALT="bowtie" BORDER=0 WIDTH=12 HEIGHT=7 ALIGN=BOTTOM SRC="cc_bowtie.gif"> }} \newcommand{\Join}{\lcRawHtml% - { }} + {< IMG ALT="Join" BORDER=0 WIDTH=10 HEIGHT=11 ALIGN=BOTTOM SRC="cc_Join.gif"> }} \newcommand{\smile}{\lcRawHtml% - { }} + {< IMG ALT="smile" BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_smile.gif"> }} \newcommand{\frown}{\lcRawHtml% - { }} + {< IMG ALT="frown" BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_frown.gif"> }} \newcommand{\propto}{\lcRawHtml% - { }} + {< IMG ALT="propto" BORDER=0 WIDTH=12 HEIGHT=8 ALIGN=BOTTOM SRC="cc_propto.gif"> }} % +-------------------------------------------------------------------------- % | * Arrow symbols following Table 3.6 page 43 in Lamport. % +-------------------------------------------------------------------------- \newcommand{\leftarrow}{\lcRawHtml% - { }} + {< IMG ALT="leftarrow" BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftarrow.gif"> }} \newcommand{\Leftarrow}{\lcRawHtml{ }} \newcommand{\rightarrow}{\lcRawHtml{ }} \newcommand{\Rightarrow}{\lcRawHtml{ }} \newcommand{\leftrightarrow}{\lcRawHtml% - { }} + {< IMG ALT="leftrightarrow" BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftrightarrow.gif"> }} \newcommand{\Leftrightarrow}{\lcRawHtml{ }} \newcommand{\mapsto}{\lcRawHtml{ }} \newcommand{\hookleftarrow}{\lcRawHtml% - { }} + {< IMG ALT="hookleftarrow" BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookleftarrow.gif"> }} \newcommand{\leftharpoonup}{\lcRawHtml% - { }} + {< IMG ALT="leftharpoonup" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoonup.gif"> }} \newcommand{\leftharpoondown}{\lcRawHtml% - { }} + {< IMG ALT="leftharpoondown" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoondown.gif"> }} \newcommand{\rightleftharpoons}{\lcRawHtml% - { }} + {< IMG ALT="rightleftharpoons" BORDER=0 WIDTH=15 HEIGHT=24 ALIGN=MIDDLE SRC="cc_rightleftharpoons.gif"> }} \newcommand{\longleftarrow}{\lcRawHtml{ }} \newcommand{\Longleftarrow}{\lcRawHtml% - { }} + {< IMG ALT="Longleftarrow" BORDER=0 WIDTH=25 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uppercase_Longleftarrow.gif"> }} \newcommand{\longrightarrow}{\lcRawHtml{ }} \newcommand{\Longrightarrow}{\lcRawHtml{ }} \newcommand{\longleftrightarrow}{\lcRawHtml% - { }} + {< IMG ALT="longleftrightarrow" BORDER=0 WIDTH=30 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_longleftrightarrow.gif"> }} \newcommand{\Longleftrightarrow}{\lcRawHtml{ }} \newcommand{\longmapsto}{\lcRawHtml% - { }} + {< IMG ALT="longmapsto" BORDER=0 WIDTH=26 HEIGHT=9 ALIGN=BOTTOM SRC="cc_longmapsto.gif"> }} \newcommand{\hookrightarrow}{\lcRawHtml% - { }} + {< IMG ALT="hookrightarrow" BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookrightarrow.gif"> }} \newcommand{\rightharpoonup}{\lcRawHtml% - { }} + {< IMG ALT="rightharpoonup" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoonup.gif"> }} \newcommand{\rightharpoondown}{\lcRawHtml% - { }} + {< IMG ALT="rightharpoondown" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoondown.gif"> }} \newcommand{\leadsto}{\lcRawHtml% - { }} + {< IMG ALT="leadsto" BORDER=0 WIDTH=16 HEIGHT=7 ALIGN=BOTTOM SRC="cc_leadsto.gif"> }} \newcommand{\uparrow}{\lcRawHtml% - { }} + {< IMG ALT="uparrow" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_uparrow.gif"> }} \newcommand{\Uparrow}{\lcRawHtml% - { }} + {< IMG ALT="Uparrow" BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Uparrow.gif"> }} \newcommand{\downarrow}{\lcRawHtml% - { }} + {< IMG ALT="downarrow" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_downarrow.gif"> }} \newcommand{\Downarrow}{\lcRawHtml% - { }} + {< IMG ALT="Downarrow" BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Downarrow.gif"> }} \newcommand{\updownarrow}{\lcRawHtml% - { }} + {< IMG ALT="updownarrow" BORDER=0 WIDTH=7 HEIGHT=29 ALIGN=MIDDLE SRC="cc_lowercase_updownarrow.gif"> }} \newcommand{\Updownarrow}{\lcRawHtml% - { }} + {< IMG ALT="Updownarrow" BORDER=0 WIDTH=10 HEIGHT=26 ALIGN=MIDDLE SRC="cc_uppercase_Updownarrow.gif"> }} \newcommand{\nearrow}{\lcRawHtml% - { }} + {< IMG ALT="nearrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nearrow.gif"> }} \newcommand{\searrow}{\lcRawHtml% - { }} + {< IMG ALT="searrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_searrow.gif"> }} \newcommand{\swarrow}{\lcRawHtml% - { }} + {< IMG ALT="swarrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_swarrow.gif"> }} \newcommand{\nwarrow}{\lcRawHtml% - { }} + {< IMG ALT="nwarrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nwarrow.gif"> }} % +-------------------------------------------------------------------------- % | * Miscellaneous symbols following Table 3.7 page 43 in Lamport. @@ -830,55 +830,55 @@ \newcommand{\slash}{\verb+/+} \newcommand{\aleph}{\lcRawHtml% - { }} + {< IMG ALT="aleph" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_aleph.gif"> }} \newcommand{\hbar}{\lcRawHtml% - { }} + {< IMG ALT="hbar" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_hbar.gif"> }} \newcommand{\imath}{\lcRawHtml% - { }} + {< IMG ALT="imath" BORDER=0 WIDTH=4 HEIGHT=8 ALIGN=BOTTOM SRC="cc_imath.gif"> }} \newcommand{\jmath}{\lcRawHtml% - { }} + {< IMG ALT="jmath" BORDER=0 WIDTH=6 HEIGHT=17 ALIGN=MIDDLE SRC="cc_jmath.gif"> }} \newcommand{\ell}{\lcRawHtml{ℓ}} \newcommand{\wp}{\lcRawHtml% - { }} + {< IMG ALT="wp" BORDER=0 WIDTH=9 HEIGHT=17 ALIGN=MIDDLE SRC="cc_wp.gif"> }} \newcommand{\Re}{\lcRawHtml% - { }} + {< IMG ALT="Re" BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Re.gif"> }} \newcommand{\Im}{\lcRawHtml% - { }} + {< IMG ALT="Im" BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Im.gif"> }} \newcommand{\mho}{\lcRawHtml% - { }} + {< IMG ALT="mho" BORDER=0 WIDTH=10 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mho.gif"> }} \newcommand{\emptyset}{\lcRawHtml{∅}} \newcommand{\nabla}{\lcRawHtml{}} \newcommand{\surd}{\lcRawHtml% - { }} + {< IMG ALT="surd" BORDER=0 WIDTH=13 HEIGHT=27 ALIGN=MIDDLE SRC="cc_surd.gif"> }} \newcommand{\top}{\lcRawHtml% - { }} + {< IMG ALT="top" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_top.gif"> }} \newcommand{\bot}{\lcRawHtml% - { }} + {< IMG ALT="bot" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_bot.gif"> }} \newcommand{\angle}{\lcRawHtml{ }} \newcommand{\forall}{\lcRawHtml{ }} \newcommand{\exists}{\lcRawHtml{ }} \newcommand{\flat}{\lcRawHtml% - { }} + {< IMG ALT="flat" BORDER=0 WIDTH=4 HEIGHT=14 ALIGN=BOTTOM SRC="cc_flat.gif"> }} \newcommand{\natural}{\lcRawHtml% - { }} + {< IMG ALT="natural" BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_natural.gif"> }} \newcommand{\sharp}{\lcRawHtml% - { }} + {< IMG ALT="sharp" BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_sharp.gif"> }} \newcommand{\partial}{\lcRawHtml{∂}} \newcommand{\infty}{\lcRawHtml{∞}} \newcommand{\Box}{\lcRawHtml% - { }} + {< IMG ALT="Box" BORDER=0 WIDTH=10 HEIGHT=10 ALIGN=BOTTOM SRC="cc_Box.gif"> }} \newcommand{\Diamond}{\lcRawHtml% - { }} + {< IMG ALT="Diamond" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Diamond.gif"> }} \newcommand{\triangle}{\lcRawHtml% - { }} + {< IMG ALT="triangle" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_triangle.gif"> }} \newcommand{\clubsuit}{\lcRawHtml% - { }} + {< IMG ALT="clubsuit" BORDER=0 WIDTH=13 HEIGHT=26 ALIGN=MIDDLE SRC="cc_clubsuit.gif"> }} \newcommand{\diamondsuit}{\lcRawHtml% - { }} + {< IMG ALT="diamondsuit" BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_diamondsuit.gif"> }} \newcommand{\heartsuit}{\lcRawHtml% - { }} + {< IMG ALT="heartsuit" BORDER=0 WIDTH=11 HEIGHT=22 ALIGN=MIDDLE SRC="cc_heartsuit.gif"> }} \newcommand{\spadesuit}{\lcRawHtml% - { }} + {< IMG ALT="spadesuit" BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_spadesuit.gif"> }} % +-------------------------------------------------------------------------- @@ -891,14 +891,14 @@ {}}% {\lcRawHtml{}}} \newcommand{\coprod}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { coprod }}% + {\lcRawHtml{ coprod }}} \newcommand{\int}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% {}}% {\lcRawHtml{}}} \newcommand{\oint}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { oint }}% + {\lcRawHtml{ oint }}} \newcommand{\bigcap}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% {}}% {\lcRawHtml{}}} @@ -906,26 +906,26 @@ {}}% {\lcRawHtml{}}} \newcommand{\bigsqcup}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigsqcup }}% + {\lcRawHtml{ bigsqcup }}} \newcommand{\bigvee}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigvee }}% + {\lcRawHtml{ bigvee }}} \newcommand{\bigwedge}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigwedge }}% + {\lcRawHtml{ bigwedge }}} \newcommand{\bigodot}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigodot }}% + {\lcRawHtml{ bigodot }}} \newcommand{\bigotimes}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigotimes }}% + {\lcRawHtml{ bigotimes }}} \newcommand{\bigoplus}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { bigoplus }}% + {\lcRawHtml{ bigoplus }}} \newcommand{\biguplus}{\lciIf{\lciMathModeDisplay}{\lcRawHtml% - { }}% - {\lcRawHtml{ }}} + { biguplus }}% + {\lcRawHtml{ biguplus }}} % +-------------------------------------------------------------------------- diff --git a/Manual_tools/src/latex_converter_config/html/latex_to_html_style_modern.sty b/Manual_tools/src/latex_converter_config/html/latex_to_html_style_modern.sty index d8e263af2bc..38738804dd7 100644 --- a/Manual_tools/src/latex_converter_config/html/latex_to_html_style_modern.sty +++ b/Manual_tools/src/latex_converter_config/html/latex_to_html_style_modern.sty @@ -35,6 +35,8 @@ \gdef{\lcBodyAttributes}{\lcRawHtml{bgcolor="white"}} \gdef\lciFileSpecificCSS{} +\newcommand{\CGALManualCanonicalURL}{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/} + \newcommand{\lciHtmlFileHeader}[1]{\lciHtmlFileHeaderExtra{#1}{}} % Args: @@ -46,7 +48,12 @@ - +} +% Now, add the canonical link. See: +% http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html +\lcRawHtml{ } \lciFileSpecificCSS% \lcRawHtml{}#1\lcRawHtml{}% diff --git a/Mesh_3/demo/Mesh_3/MainWindow.cpp b/Mesh_3/demo/Mesh_3/MainWindow.cpp index e275bc4122e..4454f247871 100644 --- a/Mesh_3/demo/Mesh_3/MainWindow.cpp +++ b/Mesh_3/demo/Mesh_3/MainWindow.cpp @@ -568,8 +568,7 @@ void MainWindow::on_actionSave_snapshot_triggered() { // save snapshot to file QApplication::setOverrideCursor(Qt::WaitCursor); - QString filename = QFileDialog::getSaveFileName(this,tr("Save snapshot to file..."),"snapshot00.png","*.png"); - viewer->saveSnapshot(filename); + viewer->saveSnapshot(false, false); QApplication::restoreOverrideCursor(); } diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/RootOf_2.tex b/Number_types/doc_tex/NumberTypeSupport_ref/RootOf_2.tex index fa5bd4a4aad..c672ae18f19 100644 --- a/Number_types/doc_tex/NumberTypeSupport_ref/RootOf_2.tex +++ b/Number_types/doc_tex/NumberTypeSupport_ref/RootOf_2.tex @@ -68,6 +68,7 @@ Same for operator {\tt -,*,/,!=,<=,>,>=} as well as mixed forms with \ccc{RT} an \ccRefIdfierPage{CGAL::make_root_of_2}\\ \ccRefIdfierPage{CGAL::make_sqrt}\\ +\ccRefIdfierPage{CGAL::compute_roots_of_2}\\ \ccRefIdfierPage{CGAL::Root_of_traits}\\ \ccRefIdfierPage{AlgebraicKernelForCircles::PolynomialForCircles_2_2}\\ \ccRefIdfierPage{AlgebraicKernelForCircles} diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/Root_of_traits.tex b/Number_types/doc_tex/NumberTypeSupport_ref/Root_of_traits.tex index cb8e870b5cf..2bc13824d63 100644 --- a/Number_types/doc_tex/NumberTypeSupport_ref/Root_of_traits.tex +++ b/Number_types/doc_tex/NumberTypeSupport_ref/Root_of_traits.tex @@ -21,5 +21,6 @@ algebraic numbers of degree 2 over \ccc{RT}. Moreover, the class provides \ccSeeAlso \ccRefIdfierPage{RootOf_2}\\ +\ccRefIdfierPage{CGAL::compute_roots_of_2}\\ \ccRefIdfierPage{CGAL::make_root_of_2}\\ \end{ccRefClass} diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/compute_roots_of_2.tex b/Number_types/doc_tex/NumberTypeSupport_ref/compute_roots_of_2.tex new file mode 100644 index 00000000000..64f00a6b15e --- /dev/null +++ b/Number_types/doc_tex/NumberTypeSupport_ref/compute_roots_of_2.tex @@ -0,0 +1,29 @@ +\begin{ccRefFunction}{compute_roots_of_2} + +\ccDefinition + +The function \ccRefName\ solves a univariate polynomial as it is defined by the +coefficients given to the function. The solutions are written into the given +\ccc{OutputIterator}. + +\ccInclude{CGAL/Root_of_traits.h} + +\ccFunction{template + OutputIterator + compute_roots_of_2(const RT& a, const RT& b, const RT& c, OutputIterator oit);} +{ +Writes the real roots of the polynomial $aX^2+bX+c$ into $oit$ in ascending order. \\ +\ccc{OutputIterator} is required to accept \ccc{Root_of_traits::Root_of_2}. \\ +Multiplicities are not reported. \\ +\ccPrecond{\ccc{RT} is an \ccc{IntegralDomainWithoutDivision}.} +\ccPrecond{$a\neq 0$ or $b\neq 0$.} +} + +\ccSeeAlso +\ccRefIdfierPage{RootOf_2}\\ +\ccRefIdfierPage{CGAL::Root_of_traits}\\ +\ccRefIdfierPage{CGAL::make_root_of_2}\\ +\ccRefIdfierPage{CGAL::make_sqrt}\\ +%\ccRefIdfierPage{CGAL::compute_roots_of_2}\\ +\ccRefIdfierPage{CGAL::Sqrt_extension}\\ +\end{ccRefFunction} diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/intro.tex b/Number_types/doc_tex/NumberTypeSupport_ref/intro.tex index b3161034e55..262f0e10ca9 100644 --- a/Number_types/doc_tex/NumberTypeSupport_ref/intro.tex +++ b/Number_types/doc_tex/NumberTypeSupport_ref/intro.tex @@ -53,6 +53,7 @@ \ccRefIdfierPage{CGAL::Root_of_traits}\\ \ccRefIdfierPage{CGAL::make_root_of_2}\\ \ccRefIdfierPage{CGAL::make_sqrt}\\ +\ccRefIdfierPage{CGAL::compute_roots_of_2}\\ \ccRefIdfierPage{CGAL::Sqrt_extension}\\ \subsection*{Utilities} diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/main.tex b/Number_types/doc_tex/NumberTypeSupport_ref/main.tex index 7f7d84a2476..82310774a24 100644 --- a/Number_types/doc_tex/NumberTypeSupport_ref/main.tex +++ b/Number_types/doc_tex/NumberTypeSupport_ref/main.tex @@ -50,6 +50,7 @@ \input{NumberTypeSupport_ref/Root_of_traits.tex} \input{NumberTypeSupport_ref/make_root_of_2.tex} \input{NumberTypeSupport_ref/make_sqrt.tex} +\input{NumberTypeSupport_ref/compute_roots_of_2.tex} \input{NumberTypeSupport_ref/Sqrt_extension.tex} \input{NumberTypeSupport_ref/Root_of_2.tex} diff --git a/Number_types/doc_tex/NumberTypeSupport_ref/make_root_of_2.tex b/Number_types/doc_tex/NumberTypeSupport_ref/make_root_of_2.tex index 2e6964a62d3..5d077561e69 100644 --- a/Number_types/doc_tex/NumberTypeSupport_ref/make_root_of_2.tex +++ b/Number_types/doc_tex/NumberTypeSupport_ref/make_root_of_2.tex @@ -23,9 +23,13 @@ ring number type. \ccPrecond{\ccc{RT} is an \ccc{IntegralDomainWithoutDivision}.} \ccPrecond{$\gamma\geq 0$}} + + \ccSeeAlso \ccRefIdfierPage{RootOf_2}\\ \ccRefIdfierPage{CGAL::Root_of_traits}\\ +%\ccRefIdfierPage{CGAL::make_root_of_2}\\ \ccRefIdfierPage{CGAL::make_sqrt}\\ +\ccRefIdfierPage{CGAL::compute_roots_of_2}\\ \ccRefIdfierPage{CGAL::Sqrt_extension}\\ \end{ccRefFunction} diff --git a/Number_types/include/CGAL/Interval_nt.h b/Number_types/include/CGAL/Interval_nt.h index 7bc8cfc12a7..0e708aad297 100644 --- a/Number_types/include/CGAL/Interval_nt.h +++ b/Number_types/include/CGAL/Interval_nt.h @@ -158,7 +158,7 @@ private: typename Interval_nt<>::Internal_protector P; CGAL_assertion_msg(-CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1), "Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)?"); - CGAL_assertion_msg(-CGAL_IA_DIV(-1, 10) != CGAL_IA_DIV(1, 10), + CGAL_assertion_msg(-CGAL_IA_DIV(-1., 10) != CGAL_IA_DIV(1., 10), "Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)?"); } }; diff --git a/Number_types/include/CGAL/Root_of_traits.h b/Number_types/include/CGAL/Root_of_traits.h index 7a72251c11a..5e8974bb652 100644 --- a/Number_types/include/CGAL/Root_of_traits.h +++ b/Number_types/include/CGAL/Root_of_traits.h @@ -41,7 +41,6 @@ make_root_of_2(const NT &a, const NT &b, const NT &c) return make_root_of_2(a,b,c); } - template < class NT > inline typename Root_of_traits< NT >::Root_of_2 @@ -60,6 +59,35 @@ make_sqrt(const NT &a) return make_sqrt(a); } +template < class NT , class OutputIterator> +inline +OutputIterator +compute_roots_of_2(const NT &a_, const NT &b_, const NT &c_, OutputIterator oit) +{ + typedef typename Root_of_traits::Root_of_1 Root_of_1; + typedef typename Root_of_traits::Root_of_2 Root_of_2; + typename CGAL::Coercion_traits::Cast cast; + Root_of_1 a(cast(a_)), b(cast(b_)), c(cast(c_)); + + if ( a != 0 ) { + Root_of_1 a0_ (-b/(2*a)); + Root_of_1 root_(CGAL_NTS square(a0_) - c/a); + switch(CGAL::sign(root_)){ + case CGAL::NEGATIVE: return oit; + case CGAL::ZERO: *oit++ = Root_of_2(a0_); return oit; + default: + // two roots + *oit++ = make_root_of_2(a0_,Root_of_1(-1),root_); + *oit++ = make_root_of_2(a0_,Root_of_1( 1),root_); + return oit; + } + } + else { + *oit++ = -c/b; return oit; + } +} + + namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_typedef_Arithmetic_kernel,Arithmetic_kernel,false) @@ -105,7 +133,6 @@ struct Root_of_traits_helper{ } }; - private: typedef CGAL::Algebraic_structure_traits AST; public: @@ -159,7 +186,7 @@ public: RT c_ = c_num * a_den * b_den; return make_root_of_2(a_,b_,c_,smaller); - } + } }; private: @@ -264,6 +291,14 @@ struct Root_of_traits >{ return a + b * CGAL_NTS sqrt(c) ; } }; + +private: + typedef CGAL::Algebraic_structure_traits > AST; +public: + typedef typename AST::Square Square; + typedef typename AST::Inverse Inverse; + typedef typename AST::Sqrt Make_sqrt; + }; diff --git a/Number_types/include/CGAL/Root_of_traits_specializations.h b/Number_types/include/CGAL/Root_of_traits_specializations.h index 15463fbd4e7..0d67b845c4a 100644 --- a/Number_types/include/CGAL/Root_of_traits_specializations.h +++ b/Number_types/include/CGAL/Root_of_traits_specializations.h @@ -29,7 +29,7 @@ namespace CGAL { // We create a type of new node in Lazy_exact_nt's DAG -// for the make_root_of_2() operation. +// for the make_root_of_2() and solve_1(of degree 2) operation. template struct Lazy_exact_ro2 diff --git a/Number_types/include/CGAL/Test/test_root_of_traits.h b/Number_types/include/CGAL/Test/test_root_of_traits.h index 87ed06fe30c..bb32ac86df4 100644 --- a/Number_types/include/CGAL/Test/test_root_of_traits.h +++ b/Number_types/include/CGAL/Test/test_root_of_traits.h @@ -79,6 +79,38 @@ void test_root_of_traits(){ Root_of_2 rr = CGAL::make_sqrt(T(2))*CGAL::make_sqrt(T(2)); assert(r == rr); } + + bool is_not_exact = !CGAL::Algebraic_structure_traits::Is_exact::value; + { + std::vector roots; + CGAL::compute_roots_of_2(T(1),T(0),T(-2),std::back_inserter(roots)); + assert(roots.size()==2); + assert(roots[0]==-CGAL::make_sqrt(T(2)) || is_not_exact ); + assert(roots[1]== CGAL::make_sqrt(T(2)) || is_not_exact ); + } + { + Root_of_2 roots[2]= {Root_of_2(1),Root_of_2(1)}; + CGAL::compute_roots_of_2(T(13),T(4),T(-23),roots); + assert(roots[0]==CGAL::make_root_of_2(T(13),T(4),T(-23),true) || is_not_exact ); + assert(roots[1]==CGAL::make_root_of_2(T(13),T(4),T(-23),false) || is_not_exact ); + } + { + std::vector roots; + CGAL::compute_roots_of_2(T(1),T(-6),T(9),std::back_inserter(roots)); + assert(roots.size()==1); + assert(roots[0]==Root_of_2(3) || is_not_exact ); + } + { + std::vector roots; + CGAL::compute_roots_of_2(T(1),T(0),T(2),std::back_inserter(roots)); + assert(roots.size()==0); + } + { + std::vector roots; + CGAL::compute_roots_of_2(T(0),T(2),T(3),std::back_inserter(roots)); + assert(roots.size()==1); + assert(roots[0]==-Root_of_2(3)/Root_of_2(2) || is_not_exact ); + } } diff --git a/Number_types/test/Number_types/Root_of_traits.cpp b/Number_types/test/Number_types/Root_of_traits.cpp index 85a32c1610c..e30bc0d19c0 100644 --- a/Number_types/test/Number_types/Root_of_traits.cpp +++ b/Number_types/test/Number_types/Root_of_traits.cpp @@ -46,6 +46,11 @@ void test_root_of_traits_for_set(Integer, Rational, FWS){ int main(){ CGAL::Test::test_root_of_traits< double , double , double >(); + + try{// just compile and try to get as far as you can go. + CGAL::Test::test_root_of_traits< CGAL::Interval_nt , CGAL::Interval_nt , CGAL::Interval_nt >(); + CGAL::Test::test_root_of_traits< CGAL::Interval_nt , CGAL::Interval_nt , CGAL::Interval_nt >(); + }catch(...){} #ifdef CGAL_USE_GMP //TODO: switch to Gmpq @@ -84,6 +89,7 @@ int main(){ typedef AK::Field_with_sqrt FWS; test_root_of_traits_for_set(Integer(),Rational(),FWS()); } + return 0; } diff --git a/Point_set_processing_3/include/CGAL/mst_orient_normals.h b/Point_set_processing_3/include/CGAL/mst_orient_normals.h index 4314c0f6545..993cb3756e3 100644 --- a/Point_set_processing_3/include/CGAL/mst_orient_normals.h +++ b/Point_set_processing_3/include/CGAL/mst_orient_normals.h @@ -310,7 +310,7 @@ create_riemannian_graph( Point_vertex_handle_3 point_wrapper(point.x(), point.y(), point.z(), it); kd_tree_points.push_back(point_wrapper); } - std::auto_ptr tree( new Tree(kd_tree_points.begin(), kd_tree_points.end()) ); + boost::shared_ptr tree( new Tree(kd_tree_points.begin(), kd_tree_points.end()) ); // Recover RAM kd_tree_points.clear(); diff --git a/Polynomial/include/CGAL/Polynomial/Monomial_representation.h b/Polynomial/include/CGAL/Polynomial/Monomial_representation.h index e335bb76dc7..d90298a2173 100644 --- a/Polynomial/include/CGAL/Polynomial/Monomial_representation.h +++ b/Polynomial/include/CGAL/Polynomial/Monomial_representation.h @@ -79,8 +79,10 @@ public: typedef Polynomial Polynomial; typedef CGAL::Boolean_tag<1 == Dimension::value> Is_univariate; CGAL::Exponent_vector ivec((std::vector)(Dimension::value)); - if(p.is_zero()) - return *oit++ = std::make_pair(ivec,Innermost_coefficient(0)); + if(p.is_zero()){ + *oit++ = std::make_pair(ivec,Innermost_coefficient(0)); + return oit; + } return create_mrep(p, oit, ivec, Is_univariate()); } }; diff --git a/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp b/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp index 4d163c3ac9a..8721e29d9b7 100644 --- a/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp +++ b/QP_solver/test/QP_solver/master_mps_to_derivatives.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -116,7 +117,7 @@ void write_MPS(std::ostream& out, CGAL::print_quadratic_program(out, qp, problem_name); } -std::auto_ptr +boost::shared_ptr create_output_file(const char *filename, // Note: "Bernd3" and not // "Bernd3.mps". const char *directory, @@ -126,9 +127,9 @@ create_output_file(const char *filename, // Note: "Bernd3" and not std::string new_name = std::string(directory) + std::string("/") + std::string(filename) + std::string("_") + std::string(suffix) + std::string(".mps"); - return std::auto_ptr(new std::ofstream(new_name.c_str(), - std::ios_base::trunc | - std::ios_base::out)); + return boost::shared_ptr(new std::ofstream(new_name.c_str(), + std::ios_base::trunc | + std::ios_base::out)); } template @@ -191,7 +192,7 @@ void create_shifted_instance(const CGAL::Quadratic_program_from_mps & qp, // output: using boost::make_transform_iterator; using boost::make_zip_iterator; - std::auto_ptr out = create_output_file(file, dir, "shifted"); + boost::shared_ptr out = create_output_file(file, dir, "shifted"); write_MPS(*out, "", // deduce number-type @@ -275,7 +276,7 @@ void create_free_instance(CGAL::Quadratic_program_from_mps& qp, qp.set_u(i, false); // variable becomes free } // output: - std::auto_ptr out = create_output_file(file, dir, "free"); + boost::shared_ptr out = create_output_file(file, dir, "free"); write_MPS(*out, "", // deduce number-type "Freed instance of original file", diff --git a/STL_Extension/test/STL_Extension/test_Modifiable_priority_queue.cpp b/STL_Extension/test/STL_Extension/test_Modifiable_priority_queue.cpp index 4bd359ae3cc..9530c12e624 100644 --- a/STL_Extension/test/STL_Extension/test_Modifiable_priority_queue.cpp +++ b/STL_Extension/test/STL_Extension/test_Modifiable_priority_queue.cpp @@ -149,7 +149,7 @@ int main() q.push(&data[0]+i); } - for (std::size_t i=0;i<10;++i){ + for (unsigned int i=0;i<10;++i){ data[i].second=9-i; q.update(&data[0]+i,true); CGAL_assertion(q.top()->first==i); @@ -169,14 +169,14 @@ int main() q.push(&data[0]+i); } - for (std::size_t i=0;i<9;++i){ + for (unsigned int i=0;i<9;++i){ data[i].second=10+i; q.update(&data[0]+i,true); CGAL_assertion(q.top()->first==i+1); } //revert order - for (std::size_t i=0;i<10;++i){ + for (unsigned int i=0;i<10;++i){ data[9-i].second=i; q.update(&data[0]+9-i,true); CGAL_assertion(q.top()->first==9); diff --git a/Scripts/scripts/cgal_create_cmake_script b/Scripts/scripts/cgal_create_cmake_script index 7251f0cbf26..a663c284909 100755 --- a/Scripts/scripts/cgal_create_cmake_script +++ b/Scripts/scripts/cgal_create_cmake_script @@ -58,7 +58,7 @@ EOF if [ "${TYPE}" = "demo" ] ; then target_name="${PROJECT}_${TYPE}" - for file in `ls *.C *.cpp 2>/dev/null | sort` ; do + for file in `ls "$SOURCE_DIR"*.C "$SOURCE_DIR"*.cpp 2>/dev/null | sort` ; do all="$all $file" done cat <<'EOF' @@ -87,16 +87,16 @@ EOF EOF - if [ -d ../../include ] ; then - echo ' include_directories (BEFORE ../../include)' + if [ -d "${SOURCE_DIR}../../include" ] ; then + echo " include_directories (BEFORE \"${SOURCE_DIR}../../include\")" echo fi - if [ -d ../include ] ; then - echo ' include_directories (BEFORE ../include)' + if [ -d "${SOURCE_DIR}../include" ] ; then + echo " include_directories (BEFORE \"${SOURCE_DIR}../include\")" echo fi - if [ -d include ] ; then - echo ' include_directories (BEFORE include)' + if [ -d "${SOURCE_DIR}include" ] ; then + echo " include_directories (BEFORE \"${SOURCE_DIR}include\")" echo fi cat </dev/null | sort` ; do + for file in `ls "$SOURCE_DIR"*.C "$SOURCE_DIR"*.cpp 2>/dev/null | sort` ; do # Create an executable for each cpp that contains a function "main()" BASE=`basename $file .C` BASE=`basename $BASE .cpp` @@ -173,34 +173,63 @@ EOF usage() { - echo "Usage: cgal_create_cmake_script [TYPE]" + echo "Usage: cgal_create_cmake_script [TYPE] [--source_dir ]" echo - echo " TYPE must be any of example, demo or test." - echo " Default is example." - echo + echo " Create a CMakeLists.txt file in the current working directory." + echo + echo " TYPE must be any of example, demo or test. The default is example." + echo + echo " If the option --source_dir is specified with a directory, the " + echo " CMakeLists.txt uses source files from that directory, otherwise " + echo " the source directory is supposed to be the current directory." } +SOURCE_DIR= -case $# in - 0) TYPE="example";; - 1) TYPE=$1;; - *) usage - exit 1 -esac - - - -if [ "${TYPE}" = "example" -o "${TYPE}" = "demo" -o "${TYPE}" = "test" ]; then - ok='y' -fi - -if [ -z "$ok" ]; then - echo "Invalid type: ${TYPE}. Valid values are example, demo or test" - exit 1 -fi +while [ $1 ]; do + case "$1" in + -h|-help|--h|--help) + usage; exit + ;; + example) + if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi + ;; + demo) + if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi + ;; + test) + if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi + ;; + --source_dir) + if [ -d "$2" ]; then + SOURCE_DIR=$2; + shift; + shift; + else + if [ -z "$2" ]; then + echo "Error: you must specify a directory after the --source_dir option!" + echo + else + echo "Error: \"$2\" is not a directory!" + echo + fi + usage; exit 1; + fi + ;; + *) + echo "Unknown option: $1" + usage; exit 1 + ;; + esac +done OUTPUTFILE=CMakeLists.txt -PROJECT=`basename $PWD` +if [ -n "$SOURCE_DIR" ]; then + PROJECT=`basename $SOURCE_DIR` + SOURCE_DIR=$SOURCE_DIR/ +else + PROJECT=`basename $PWD` +fi if [ -f ${OUTPUTFILE} ] ; then echo "moving $OUTPUTFILE to ${OUTPUTFILE}.bak ..." diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt index 015c6f781d9..bc52acc5cb5 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/CMakeLists.txt @@ -14,6 +14,9 @@ endif() #option(POINT_SET_DEMO_ENABLE_FORWARD_DECL "In the Point Set demo, enable " OFF) #mark_as_advanced(POINT_SET_DEMO_ENABLE_FORWARD_DECL) +# Let plugins be compiled in the same directory as the executable. +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") + # Require packages new or improved since CGAL 3.5 beta 1 include_directories (BEFORE ../../../Installation/include/) include_directories (BEFORE ../../../Point_set_processing_3/include) diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Messages_interface.h b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Messages_interface.h index e881980d0f9..3c8e8dc51e9 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Messages_interface.h +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Messages_interface.h @@ -6,6 +6,7 @@ class Messages_interface { public: + virtual ~Messages_interface() {} virtual void warning(QString) = 0; virtual void error(QString) = 0; virtual void information(QString) = 0; diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_io_plugin_interface.h b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_io_plugin_interface.h index 80d2fdd2fbd..901f9220ff1 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_io_plugin_interface.h +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_io_plugin_interface.h @@ -9,6 +9,7 @@ class Scene_item; class Polyhedron_demo_io_plugin_interface { public: + virtual ~Polyhedron_demo_io_plugin_interface() {} virtual QStringList nameFilters() const = 0; virtual bool canLoad() const = 0; diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_plugin_interface.h b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_plugin_interface.h index afdd1dca5a0..6c23fb815ca 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_plugin_interface.h +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Polyhedron_demo_plugin_interface.h @@ -13,6 +13,7 @@ class Messages_interface; class Polyhedron_demo_plugin_interface { public: + virtual ~Polyhedron_demo_plugin_interface() {} virtual void init(QMainWindow*, Scene_interface*) {}; virtual void init(QMainWindow* mw, Scene_interface* sc, Messages_interface*) { init(mw, sc); diff --git a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Scene_draw_interface.h b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Scene_draw_interface.h index 7e6e60f8296..394ea7ebfd7 100644 --- a/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Scene_draw_interface.h +++ b/Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/Scene_draw_interface.h @@ -3,6 +3,7 @@ class Scene_draw_interface { public: + virtual ~Scene_draw_interface(){} virtual void initializeGL() = 0; virtual void draw() = 0; virtual void drawWithNames() = 0; diff --git a/Triangulation_2/include/CGAL/Triangulation_2.h b/Triangulation_2/include/CGAL/Triangulation_2.h index 03b636dd79c..8a68ef7cb7b 100644 --- a/Triangulation_2/include/CGAL/Triangulation_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_2.h @@ -2978,14 +2978,14 @@ inexact_locate(const Point & t, Face_handle start, int n_of_turns) const } } else if(c->neighbor(1) == prev){ prev = c; - if (inexact_orientation(p1,p2,t) == NEGATIVE) { - c = c->neighbor( 0 ); - continue; - } if (inexact_orientation(p0,p1,t) == NEGATIVE) { c = c->neighbor( 2 ); continue; } + if (inexact_orientation(p1,p2,t) == NEGATIVE) { + c = c->neighbor( 0 ); + continue; + } } else { prev = c; if (inexact_orientation(p2,p0,t) == NEGATIVE) {
}% + \lcRawHtml{
#XC1}% \lcRawHtml{
} } @@ -908,7 +908,7 @@ } %% Tricky definition, since we must have % signs in it. -\newcommand{\lciTwoColsSecond}{\lcRawHtml{
+\newcommand{\lciTwoColsSecond}{\lcRawHtml{
}} \newcommand{\lciTwoColsEnd}{\lcRawHtml{