diff --git a/Packages/Interval_arithmetic/changes.txt b/Packages/Interval_arithmetic/changes.txt index c0a8de1924e..05c3c4f4c88 100644 --- a/Packages/Interval_arithmetic/changes.txt +++ b/Packages/Interval_arithmetic/changes.txt @@ -1,3 +1,6 @@ +Version 4.162 on 6 March 2003 +- Fix stupid bug affecting Lazy_exact_nt's overloaded predicates... + Version 4.161 on 21 February 2003 - Filtered_kernel uses the new true extensibility. diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC2.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC2.h index 88bb00ddd1c..a944a7326e8 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC2.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC2.h @@ -122,7 +122,7 @@ power_testC2( static Profile_counter calls("Lazy IA power_testC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testC2( px.interval(), py.interval(), @@ -143,7 +143,7 @@ power_testC2( static Profile_counter failures("Lazy IA power_testC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testC2( px.exact(), py.exact(), @@ -239,7 +239,7 @@ power_testC2( static Profile_counter calls("Lazy IA power_testC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testC2( px.interval(), py.interval(), @@ -257,7 +257,7 @@ power_testC2( static Profile_counter failures("Lazy IA power_testC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testC2( px.exact(), py.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h index dd28bd48019..9112271a620 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h @@ -154,7 +154,7 @@ power_testC3( static Profile_counter calls("Lazy IA power_testC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testC3( px.interval(), py.interval(), @@ -183,7 +183,7 @@ power_testC3( static Profile_counter failures("Lazy IA power_testC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testC3( px.exact(), py.exact(), @@ -315,7 +315,7 @@ power_testC3( static Profile_counter calls("Lazy IA power_testC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testC3( px.interval(), py.interval(), @@ -340,7 +340,7 @@ power_testC3( static Profile_counter failures("Lazy IA power_testC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testC3( px.exact(), py.exact(), @@ -452,7 +452,7 @@ power_testC3( static Profile_counter calls("Lazy IA power_testC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testC3( px.interval(), py.interval(), @@ -473,7 +473,7 @@ power_testC3( static Profile_counter failures("Lazy IA power_testC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testC3( px.exact(), py.exact(), @@ -491,6 +491,75 @@ power_testC3( } #endif +#ifndef CGAL_CFG_MATCHING_BUG_2 +template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, + class CGAL_IA_CACHE > +#else +static +#endif +/* */ +Oriented_side +power_testC3( + const Filtered_exact &pwt, + const Filtered_exact &qwt) +{ + try + { +#ifdef CGAL_PROFILE + static Profile_counter calls("IA power_testC3 calls"); + ++calls; +#endif + Protect_FPU_rounding Protection; + return power_testC3( + pwt.interval(), + qwt.interval()); + } + catch (Interval_nt_advanced::unsafe_comparison) + { +#ifdef CGAL_PROFILE + static Profile_counter failures("IA power_testC3 failures"); + ++failures; +#endif + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + return power_testC3( + pwt.exact(), + qwt.exact()); + } +} + +#ifndef CGAL_CFG_MATCHING_BUG_2 +template < class ET > +/* */ +Oriented_side +power_testC3( + const Lazy_exact_nt &pwt, + const Lazy_exact_nt &qwt) +{ + try + { +#ifdef CGAL_PROFILE + static Profile_counter calls("Lazy IA power_testC3 calls"); + ++calls; +#endif + Protect_FPU_rounding Protection; + return power_testC3( + pwt.interval(), + qwt.interval()); + } + catch (Interval_nt_advanced::unsafe_comparison) + { +#ifdef CGAL_PROFILE + static Profile_counter failures("Lazy IA power_testC3 failures"); + ++failures; +#endif + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + return power_testC3( + pwt.exact(), + qwt.exact()); + } +} +#endif + CGAL_END_NAMESPACE #endif // CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH2.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH2.h index 98c5684571a..862b0acd4dc 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH2.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH2.h @@ -138,7 +138,7 @@ power_testH2( static Profile_counter calls("Lazy IA power_testH2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testH2( phx.interval(), phy.interval(), @@ -163,7 +163,7 @@ power_testH2( static Profile_counter failures("Lazy IA power_testH2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testH2( phx.exact(), phy.exact(), @@ -275,7 +275,7 @@ power_testH2( static Profile_counter calls("Lazy IA power_testH2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testH2( phx.interval(), phy.interval(), @@ -296,7 +296,7 @@ power_testH2( static Profile_counter failures("Lazy IA power_testH2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testH2( phx.exact(), phy.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h index c8c1e5293cf..bd3aba2bffd 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h @@ -174,7 +174,7 @@ power_testH3( static Profile_counter calls("Lazy IA power_testH3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return power_testH3( phx.interval(), phy.interval(), @@ -208,7 +208,7 @@ power_testH3( static Profile_counter failures("Lazy IA power_testH3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return power_testH3( phx.exact(), phy.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/in_smallest_orthogonalcircle_ftC2.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/in_smallest_orthogonalcircle_ftC2.h index 4a8adca9497..b9de8b6b304 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/in_smallest_orthogonalcircle_ftC2.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/in_smallest_orthogonalcircle_ftC2.h @@ -110,7 +110,7 @@ in_smallest_orthogonalcircleC2( static Profile_counter calls("Lazy IA in_smallest_orthogonalcircleC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return in_smallest_orthogonalcircleC2( px.interval(), py.interval(), @@ -128,7 +128,7 @@ in_smallest_orthogonalcircleC2( static Profile_counter failures("Lazy IA in_smallest_orthogonalcircleC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return in_smallest_orthogonalcircleC2( px.exact(), py.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC2.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC2.h index 2d53fd68b00..1e6b29eae7f 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC2.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC2.h @@ -98,7 +98,7 @@ equal_lineC2( static Profile_counter calls("Lazy IA equal_lineC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return equal_lineC2( l1a.interval(), l1b.interval(), @@ -113,7 +113,7 @@ equal_lineC2( static Profile_counter failures("Lazy IA equal_lineC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return equal_lineC2( l1a.exact(), l1b.exact(), @@ -195,7 +195,7 @@ compare_xC2( static Profile_counter calls("Lazy IA compare_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_xC2( px.interval(), la.interval(), @@ -211,7 +211,7 @@ compare_xC2( static Profile_counter failures("Lazy IA compare_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_xC2( px.exact(), la.exact(), @@ -302,7 +302,7 @@ compare_xC2( static Profile_counter calls("Lazy IA compare_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_xC2( la.interval(), lb.interval(), @@ -320,7 +320,7 @@ compare_xC2( static Profile_counter failures("Lazy IA compare_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_xC2( la.exact(), lb.exact(), @@ -425,7 +425,7 @@ compare_xC2( static Profile_counter calls("Lazy IA compare_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_xC2( l1a.interval(), l1b.interval(), @@ -446,7 +446,7 @@ compare_xC2( static Profile_counter failures("Lazy IA compare_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_xC2( l1a.exact(), l1b.exact(), @@ -526,7 +526,7 @@ compare_y_at_xC2( static Profile_counter calls("Lazy IA compare_y_at_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_y_at_xC2( px.interval(), py.interval(), @@ -540,7 +540,7 @@ compare_y_at_xC2( static Profile_counter failures("Lazy IA compare_y_at_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_y_at_xC2( px.exact(), py.exact(), @@ -621,7 +621,7 @@ compare_y_at_xC2( static Profile_counter calls("Lazy IA compare_y_at_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_y_at_xC2( px.interval(), l1a.interval(), @@ -637,7 +637,7 @@ compare_y_at_xC2( static Profile_counter failures("Lazy IA compare_y_at_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_y_at_xC2( px.exact(), l1a.exact(), @@ -728,7 +728,7 @@ compare_y_at_xC2( static Profile_counter calls("Lazy IA compare_y_at_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_y_at_xC2( l1a.interval(), l1b.interval(), @@ -746,7 +746,7 @@ compare_y_at_xC2( static Profile_counter failures("Lazy IA compare_y_at_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_y_at_xC2( l1a.exact(), l1b.exact(), @@ -851,7 +851,7 @@ compare_y_at_xC2( static Profile_counter calls("Lazy IA compare_y_at_xC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_y_at_xC2( l1a.interval(), l1b.interval(), @@ -872,7 +872,7 @@ compare_y_at_xC2( static Profile_counter failures("Lazy IA compare_y_at_xC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_y_at_xC2( l1a.exact(), l1b.exact(), @@ -968,7 +968,7 @@ compare_y_at_x_segment_C2( static Profile_counter calls("Lazy IA compare_y_at_x_segment_C2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_y_at_x_segment_C2( px.interval(), s1sx.interval(), @@ -986,7 +986,7 @@ compare_y_at_x_segment_C2( static Profile_counter failures("Lazy IA compare_y_at_x_segment_C2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_y_at_x_segment_C2( px.exact(), s1sx.exact(), @@ -1059,7 +1059,7 @@ equal_directionC2( static Profile_counter calls("Lazy IA equal_directionC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return equal_directionC2( dx1.interval(), dy1.interval(), @@ -1072,7 +1072,7 @@ equal_directionC2( static Profile_counter failures("Lazy IA equal_directionC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return equal_directionC2( dx1.exact(), dy1.exact(), @@ -1140,7 +1140,7 @@ compare_slopesC2( static Profile_counter calls("Lazy IA compare_slopesC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_slopesC2( l1a.interval(), l1b.interval(), @@ -1153,7 +1153,7 @@ compare_slopesC2( static Profile_counter failures("Lazy IA compare_slopesC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_slopesC2( l1a.exact(), l1b.exact(), @@ -1237,7 +1237,7 @@ compare_slopesC2( static Profile_counter calls("Lazy IA compare_slopesC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_slopesC2( s1_src_x.interval(), s1_src_y.interval(), @@ -1254,7 +1254,7 @@ compare_slopesC2( static Profile_counter failures("Lazy IA compare_slopesC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_slopesC2( s1_src_x.exact(), s1_src_y.exact(), @@ -1326,7 +1326,7 @@ compare_deltax_deltayC2( static Profile_counter calls("Lazy IA compare_deltax_deltayC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return compare_deltax_deltayC2( px.interval(), qx.interval(), @@ -1339,7 +1339,7 @@ compare_deltax_deltayC2( static Profile_counter failures("Lazy IA compare_deltax_deltayC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return compare_deltax_deltayC2( px.exact(), qx.exact(), @@ -1415,7 +1415,7 @@ orientationC2( static Profile_counter calls("Lazy IA orientationC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return orientationC2( px.interval(), py.interval(), @@ -1430,7 +1430,7 @@ orientationC2( static Profile_counter failures("Lazy IA orientationC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return orientationC2( px.exact(), py.exact(), @@ -1508,7 +1508,7 @@ angleC2( static Profile_counter calls("Lazy IA angleC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return angleC2( px.interval(), py.interval(), @@ -1523,7 +1523,7 @@ angleC2( static Profile_counter failures("Lazy IA angleC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return angleC2( px.exact(), py.exact(), @@ -1609,7 +1609,7 @@ side_of_oriented_circleC2( static Profile_counter calls("Lazy IA side_of_oriented_circleC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_oriented_circleC2( px.interval(), py.interval(), @@ -1626,7 +1626,7 @@ side_of_oriented_circleC2( static Profile_counter failures("Lazy IA side_of_oriented_circleC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_oriented_circleC2( px.exact(), py.exact(), @@ -1714,7 +1714,7 @@ side_of_bounded_circleC2( static Profile_counter calls("Lazy IA side_of_bounded_circleC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_bounded_circleC2( px.interval(), py.interval(), @@ -1731,7 +1731,7 @@ side_of_bounded_circleC2( static Profile_counter failures("Lazy IA side_of_bounded_circleC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_bounded_circleC2( px.exact(), py.exact(), @@ -1811,7 +1811,7 @@ side_of_bounded_circleC2( static Profile_counter calls("Lazy IA side_of_bounded_circleC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_bounded_circleC2( px.interval(), py.interval(), @@ -1826,7 +1826,7 @@ side_of_bounded_circleC2( static Profile_counter failures("Lazy IA side_of_bounded_circleC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_bounded_circleC2( px.exact(), py.exact(), @@ -1904,7 +1904,7 @@ cmp_dist_to_pointC2( static Profile_counter calls("Lazy IA cmp_dist_to_pointC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_dist_to_pointC2( px.interval(), py.interval(), @@ -1919,7 +1919,7 @@ cmp_dist_to_pointC2( static Profile_counter failures("Lazy IA cmp_dist_to_pointC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_dist_to_pointC2( px.exact(), py.exact(), @@ -1997,7 +1997,7 @@ cmp_signed_dist_to_directionC2( static Profile_counter calls("Lazy IA cmp_signed_dist_to_directionC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_signed_dist_to_directionC2( la.interval(), lb.interval(), @@ -2012,7 +2012,7 @@ cmp_signed_dist_to_directionC2( static Profile_counter failures("Lazy IA cmp_signed_dist_to_directionC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_signed_dist_to_directionC2( la.exact(), lb.exact(), @@ -2098,7 +2098,7 @@ cmp_signed_dist_to_lineC2( static Profile_counter calls("Lazy IA cmp_signed_dist_to_lineC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_signed_dist_to_lineC2( px.interval(), py.interval(), @@ -2115,7 +2115,7 @@ cmp_signed_dist_to_lineC2( static Profile_counter failures("Lazy IA cmp_signed_dist_to_lineC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_signed_dist_to_lineC2( px.exact(), py.exact(), @@ -2191,7 +2191,7 @@ side_of_oriented_lineC2( static Profile_counter calls("Lazy IA side_of_oriented_lineC2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_oriented_lineC2( a.interval(), b.interval(), @@ -2205,7 +2205,7 @@ side_of_oriented_lineC2( static Profile_counter failures("Lazy IA side_of_oriented_lineC2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_oriented_lineC2( a.exact(), b.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC3.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC3.h index c6cb873f478..d9b377efa08 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC3.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC3.h @@ -98,7 +98,7 @@ strict_dominanceC3( static Profile_counter calls("Lazy IA strict_dominanceC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return strict_dominanceC3( px.interval(), py.interval(), @@ -113,7 +113,7 @@ strict_dominanceC3( static Profile_counter failures("Lazy IA strict_dominanceC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return strict_dominanceC3( px.exact(), py.exact(), @@ -191,7 +191,7 @@ dominanceC3( static Profile_counter calls("Lazy IA dominanceC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return dominanceC3( px.interval(), py.interval(), @@ -206,7 +206,7 @@ dominanceC3( static Profile_counter failures("Lazy IA dominanceC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return dominanceC3( px.exact(), py.exact(), @@ -296,7 +296,7 @@ collinearC3( static Profile_counter calls("Lazy IA collinearC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return collinearC3( px.interval(), py.interval(), @@ -314,7 +314,7 @@ collinearC3( static Profile_counter failures("Lazy IA collinearC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return collinearC3( px.exact(), py.exact(), @@ -419,7 +419,7 @@ orientationC3( static Profile_counter calls("Lazy IA orientationC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return orientationC3( px.interval(), py.interval(), @@ -440,7 +440,7 @@ orientationC3( static Profile_counter failures("Lazy IA orientationC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return orientationC3( px.exact(), py.exact(), @@ -536,7 +536,7 @@ angleC3( static Profile_counter calls("Lazy IA angleC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return angleC3( px.interval(), py.interval(), @@ -554,7 +554,7 @@ angleC3( static Profile_counter failures("Lazy IA angleC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return angleC3( px.exact(), py.exact(), @@ -659,7 +659,7 @@ coplanar_side_of_bounded_circleC3( static Profile_counter calls("Lazy IA coplanar_side_of_bounded_circleC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return coplanar_side_of_bounded_circleC3( px.interval(), py.interval(), @@ -680,7 +680,7 @@ coplanar_side_of_bounded_circleC3( static Profile_counter failures("Lazy IA coplanar_side_of_bounded_circleC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return coplanar_side_of_bounded_circleC3( px.exact(), py.exact(), @@ -764,7 +764,7 @@ equal_directionC3( static Profile_counter calls("Lazy IA equal_directionC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return equal_directionC3( dx1.interval(), dy1.interval(), @@ -779,7 +779,7 @@ equal_directionC3( static Profile_counter failures("Lazy IA equal_directionC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return equal_directionC3( dx1.exact(), dy1.exact(), @@ -865,7 +865,7 @@ equal_planeC3( static Profile_counter calls("Lazy IA equal_planeC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return equal_planeC3( ha.interval(), hb.interval(), @@ -882,7 +882,7 @@ equal_planeC3( static Profile_counter failures("Lazy IA equal_planeC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return equal_planeC3( ha.exact(), hb.exact(), @@ -966,7 +966,7 @@ side_of_oriented_planeC3( static Profile_counter calls("Lazy IA side_of_oriented_planeC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_oriented_planeC3( a.interval(), b.interval(), @@ -982,7 +982,7 @@ side_of_oriented_planeC3( static Profile_counter failures("Lazy IA side_of_oriented_planeC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_oriented_planeC3( a.exact(), b.exact(), @@ -1097,7 +1097,7 @@ side_of_oriented_sphereC3( static Profile_counter calls("Lazy IA side_of_oriented_sphereC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_oriented_sphereC3( px.interval(), py.interval(), @@ -1121,7 +1121,7 @@ side_of_oriented_sphereC3( static Profile_counter failures("Lazy IA side_of_oriented_sphereC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_oriented_sphereC3( px.exact(), py.exact(), @@ -1244,7 +1244,7 @@ side_of_bounded_sphereC3( static Profile_counter calls("Lazy IA side_of_bounded_sphereC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_bounded_sphereC3( px.interval(), py.interval(), @@ -1268,7 +1268,7 @@ side_of_bounded_sphereC3( static Profile_counter failures("Lazy IA side_of_bounded_sphereC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_bounded_sphereC3( px.exact(), py.exact(), @@ -1367,7 +1367,7 @@ side_of_bounded_sphereC3( static Profile_counter calls("Lazy IA side_of_bounded_sphereC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_bounded_sphereC3( px.interval(), py.interval(), @@ -1385,7 +1385,7 @@ side_of_bounded_sphereC3( static Profile_counter failures("Lazy IA side_of_bounded_sphereC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_bounded_sphereC3( px.exact(), py.exact(), @@ -1478,7 +1478,7 @@ cmp_dist_to_pointC3( static Profile_counter calls("Lazy IA cmp_dist_to_pointC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_dist_to_pointC3( px.interval(), py.interval(), @@ -1496,7 +1496,7 @@ cmp_dist_to_pointC3( static Profile_counter failures("Lazy IA cmp_dist_to_pointC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_dist_to_pointC3( px.exact(), py.exact(), @@ -1601,7 +1601,7 @@ side_of_bounded_sphereC3( static Profile_counter calls("Lazy IA side_of_bounded_sphereC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return side_of_bounded_sphereC3( px.interval(), py.interval(), @@ -1622,7 +1622,7 @@ side_of_bounded_sphereC3( static Profile_counter failures("Lazy IA side_of_bounded_sphereC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return side_of_bounded_sphereC3( px.exact(), py.exact(), @@ -1718,7 +1718,7 @@ cmp_signed_dist_to_directionC3( static Profile_counter calls("Lazy IA cmp_signed_dist_to_directionC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_signed_dist_to_directionC3( pa.interval(), pb.interval(), @@ -1736,7 +1736,7 @@ cmp_signed_dist_to_directionC3( static Profile_counter failures("Lazy IA cmp_signed_dist_to_directionC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_signed_dist_to_directionC3( pa.exact(), pb.exact(), @@ -1853,7 +1853,7 @@ cmp_signed_dist_to_planeC3( static Profile_counter calls("Lazy IA cmp_signed_dist_to_planeC3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return cmp_signed_dist_to_planeC3( ppx.interval(), ppy.interval(), @@ -1877,7 +1877,7 @@ cmp_signed_dist_to_planeC3( static Profile_counter failures("Lazy IA cmp_signed_dist_to_planeC3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return cmp_signed_dist_to_planeC3( ppx.exact(), ppy.exact(), diff --git a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/sign_of_determinant.h b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/sign_of_determinant.h index d07d1f62259..58a4bf4e97d 100644 --- a/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/sign_of_determinant.h +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/sign_of_determinant.h @@ -90,7 +90,7 @@ sign_of_determinant2x2( static Profile_counter calls("Lazy IA sign_of_determinant2x2 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return sign_of_determinant2x2( a00.interval(), a01.interval(), @@ -103,7 +103,7 @@ sign_of_determinant2x2( static Profile_counter failures("Lazy IA sign_of_determinant2x2 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return sign_of_determinant2x2( a00.exact(), a01.exact(), @@ -191,7 +191,7 @@ sign_of_determinant3x3( static Profile_counter calls("Lazy IA sign_of_determinant3x3 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return sign_of_determinant3x3( a00.interval(), a01.interval(), @@ -209,7 +209,7 @@ sign_of_determinant3x3( static Profile_counter failures("Lazy IA sign_of_determinant3x3 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return sign_of_determinant3x3( a00.exact(), a01.exact(), @@ -330,7 +330,7 @@ sign_of_determinant4x4( static Profile_counter calls("Lazy IA sign_of_determinant4x4 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return sign_of_determinant4x4( a00.interval(), a01.interval(), @@ -355,7 +355,7 @@ sign_of_determinant4x4( static Profile_counter failures("Lazy IA sign_of_determinant4x4 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return sign_of_determinant4x4( a00.exact(), a01.exact(), @@ -519,7 +519,7 @@ sign_of_determinant5x5( static Profile_counter calls("Lazy IA sign_of_determinant5x5 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return sign_of_determinant5x5( a00.interval(), a01.interval(), @@ -553,7 +553,7 @@ sign_of_determinant5x5( static Profile_counter failures("Lazy IA sign_of_determinant5x5 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return sign_of_determinant5x5( a00.exact(), a01.exact(), @@ -770,7 +770,7 @@ sign_of_determinant6x6( static Profile_counter calls("Lazy IA sign_of_determinant6x6 calls"); ++calls; #endif - Protect_FPU_rounding Protection; + Protect_FPU_rounding Protection; return sign_of_determinant6x6( a00.interval(), a01.interval(), @@ -815,7 +815,7 @@ sign_of_determinant6x6( static Profile_counter failures("Lazy IA sign_of_determinant6x6 failures"); ++failures; #endif - Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return sign_of_determinant6x6( a00.exact(), a01.exact(), diff --git a/Packages/Interval_arithmetic/scripts/filtered_predicates_generator.pl b/Packages/Interval_arithmetic/scripts/filtered_predicates_generator.pl index 218e5933d94..1969cc624fa 100755 --- a/Packages/Interval_arithmetic/scripts/filtered_predicates_generator.pl +++ b/Packages/Interval_arithmetic/scripts/filtered_predicates_generator.pl @@ -173,7 +173,7 @@ $fct_name($args_call2) static Profile_counter calls(\"Lazy IA $fct_name calls\"); ++calls; #endif - ${CGAL}Protect_FPU_rounding Protection; + ${CGAL}Protect_FPU_rounding Protection; return $fct_name($args_inter); } catch (${CGAL}Interval_nt_advanced::unsafe_comparison) @@ -182,7 +182,7 @@ $fct_name($args_call2) static Profile_counter failures(\"Lazy IA $fct_name failures\"); ++failures; #endif - ${CGAL}Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); + ${CGAL}Protect_FPU_rounding Protection(CGAL_FE_TONEAREST); return $fct_name($args_exact); } }