From 72d58961c770d9f1408710ce35cebbdcfba91b6d Mon Sep 17 00:00:00 2001 From: Sylvain Pion Date: Thu, 5 Aug 1999 17:41:21 +0000 Subject: [PATCH] - Initial revision. --- .../predicates/Regular_triangulation_ftC3.h | 241 +++++++++++++++ .../predicates/Regular_triangulation_rtH3.h | 277 ++++++++++++++++++ 2 files changed, 518 insertions(+) create mode 100644 Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h create mode 100644 Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h 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 new file mode 100644 index 00000000000..d203ea9d791 --- /dev/null +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h @@ -0,0 +1,241 @@ +// ====================================================================== +// +// Copyright (c) 1999 The CGAL Consortium +// +// This software and related documentation is part of an INTERNAL release +// of the Computational Geometry Algorithms Library (CGAL). It is not +// intended for general use. +// +// ---------------------------------------------------------------------- +// +// release : +// release_date : +// +// file : include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h +// package : Interval_arithmetic +// author(s) : Sylvain Pion +// +// coordinator : INRIA Sophia-Antipolis () +// ====================================================================== + +// This file is automatically generated by the script +// examples/Interval_arithmetic/filtered_predicate_converter. + +#ifndef CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H +#define CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H + +CGAL_BEGIN_NAMESPACE + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testC3( + const Filtered_exact &px, + const Filtered_exact &py, + const Filtered_exact &pz, + const Filtered_exact &pwt, + const Filtered_exact &qx, + const Filtered_exact &qy, + const Filtered_exact &qz, + const Filtered_exact &qwt, + const Filtered_exact &rx, + const Filtered_exact &ry, + const Filtered_exact &rz, + const Filtered_exact &rwt, + const Filtered_exact &sx, + const Filtered_exact &sy, + const Filtered_exact &sz, + const Filtered_exact &swt, + const Filtered_exact &tx, + const Filtered_exact &ty, + const Filtered_exact &tz, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testC3( + px.interval(), + py.interval(), + pz.interval(), + pwt.interval(), + qx.interval(), + qy.interval(), + qz.interval(), + qwt.interval(), + rx.interval(), + ry.interval(), + rz.interval(), + rwt.interval(), + sx.interval(), + sy.interval(), + sz.interval(), + swt.interval(), + tx.interval(), + ty.interval(), + tz.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testC3( + px.exact(), + py.exact(), + pz.exact(), + pwt.exact(), + qx.exact(), + qy.exact(), + qz.exact(), + qwt.exact(), + rx.exact(), + ry.exact(), + rz.exact(), + rwt.exact(), + sx.exact(), + sy.exact(), + sz.exact(), + swt.exact(), + tx.exact(), + ty.exact(), + tz.exact(), + twt.exact()); + } +} + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testC3( + const Filtered_exact &px, + const Filtered_exact &py, + const Filtered_exact &pz, + const Filtered_exact &pwt, + const Filtered_exact &qx, + const Filtered_exact &qy, + const Filtered_exact &qz, + const Filtered_exact &qwt, + const Filtered_exact &rx, + const Filtered_exact &ry, + const Filtered_exact &rz, + const Filtered_exact &rwt, + const Filtered_exact &tx, + const Filtered_exact &ty, + const Filtered_exact &tz, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testC3( + px.interval(), + py.interval(), + pz.interval(), + pwt.interval(), + qx.interval(), + qy.interval(), + qz.interval(), + qwt.interval(), + rx.interval(), + ry.interval(), + rz.interval(), + rwt.interval(), + tx.interval(), + ty.interval(), + tz.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testC3( + px.exact(), + py.exact(), + pz.exact(), + pwt.exact(), + qx.exact(), + qy.exact(), + qz.exact(), + qwt.exact(), + rx.exact(), + ry.exact(), + rz.exact(), + rwt.exact(), + tx.exact(), + ty.exact(), + tz.exact(), + twt.exact()); + } +} + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testC3( + const Filtered_exact &px, + const Filtered_exact &py, + const Filtered_exact &pz, + const Filtered_exact &pwt, + const Filtered_exact &qx, + const Filtered_exact &qy, + const Filtered_exact &qz, + const Filtered_exact &qwt, + const Filtered_exact &tx, + const Filtered_exact &ty, + const Filtered_exact &tz, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testC3( + px.interval(), + py.interval(), + pz.interval(), + pwt.interval(), + qx.interval(), + qy.interval(), + qz.interval(), + qwt.interval(), + tx.interval(), + ty.interval(), + tz.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testC3( + px.exact(), + py.exact(), + pz.exact(), + pwt.exact(), + qx.exact(), + qy.exact(), + qz.exact(), + qwt.exact(), + tx.exact(), + ty.exact(), + tz.exact(), + twt.exact()); + } +} + +CGAL_END_NAMESPACE + +#endif // CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H 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 new file mode 100644 index 00000000000..1f02c74d93a --- /dev/null +++ b/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h @@ -0,0 +1,277 @@ +// ====================================================================== +// +// Copyright (c) 1999 The CGAL Consortium +// +// This software and related documentation is part of an INTERNAL release +// of the Computational Geometry Algorithms Library (CGAL). It is not +// intended for general use. +// +// ---------------------------------------------------------------------- +// +// release : +// release_date : +// +// file : include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h +// package : Interval_arithmetic +// author(s) : Sylvain Pion +// +// coordinator : INRIA Sophia-Antipolis () +// ====================================================================== + +// This file is automatically generated by the script +// examples/Interval_arithmetic/filtered_predicate_converter. + +#ifndef CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H +#define CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H + +CGAL_BEGIN_NAMESPACE + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testH3( + const Filtered_exact &phx, + const Filtered_exact &phy, + const Filtered_exact &phz, + const Filtered_exact &phw, + const Filtered_exact &pwt, + const Filtered_exact &qhx, + const Filtered_exact &qhy, + const Filtered_exact &qhz, + const Filtered_exact &qhw, + const Filtered_exact &qwt, + const Filtered_exact &rhx, + const Filtered_exact &rhy, + const Filtered_exact &rhz, + const Filtered_exact &rhw, + const Filtered_exact &rwt, + const Filtered_exact &shx, + const Filtered_exact ­, + const Filtered_exact &shz, + const Filtered_exact &shw, + const Filtered_exact &swt, + const Filtered_exact &thx, + const Filtered_exact &thy, + const Filtered_exact &thz, + const Filtered_exact &thw, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testH3( + phx.interval(), + phy.interval(), + phz.interval(), + phw.interval(), + pwt.interval(), + qhx.interval(), + qhy.interval(), + qhz.interval(), + qhw.interval(), + qwt.interval(), + rhx.interval(), + rhy.interval(), + rhz.interval(), + rhw.interval(), + rwt.interval(), + shx.interval(), + shy.interval(), + shz.interval(), + shw.interval(), + swt.interval(), + thx.interval(), + thy.interval(), + thz.interval(), + thw.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testH3( + phx.exact(), + phy.exact(), + phz.exact(), + phw.exact(), + pwt.exact(), + qhx.exact(), + qhy.exact(), + qhz.exact(), + qhw.exact(), + qwt.exact(), + rhx.exact(), + rhy.exact(), + rhz.exact(), + rhw.exact(), + rwt.exact(), + shx.exact(), + shy.exact(), + shz.exact(), + shw.exact(), + swt.exact(), + thx.exact(), + thy.exact(), + thz.exact(), + thw.exact(), + twt.exact()); + } +} + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testH3( + const Filtered_exact &phx, + const Filtered_exact &phy, + const Filtered_exact &phz, + const Filtered_exact &phw, + const Filtered_exact &pwt, + const Filtered_exact &qhx, + const Filtered_exact &qhy, + const Filtered_exact &qhz, + const Filtered_exact &qhw, + const Filtered_exact &qwt, + const Filtered_exact &rhx, + const Filtered_exact &rhy, + const Filtered_exact &rhz, + const Filtered_exact &rhw, + const Filtered_exact &rwt, + const Filtered_exact &thx, + const Filtered_exact &thy, + const Filtered_exact &thz, + const Filtered_exact &thw, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testH3( + phx.interval(), + phy.interval(), + phz.interval(), + phw.interval(), + pwt.interval(), + qhx.interval(), + qhy.interval(), + qhz.interval(), + qhw.interval(), + qwt.interval(), + rhx.interval(), + rhy.interval(), + rhz.interval(), + rhw.interval(), + rwt.interval(), + thx.interval(), + thy.interval(), + thz.interval(), + thw.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testH3( + phx.exact(), + phy.exact(), + phz.exact(), + phw.exact(), + pwt.exact(), + qhx.exact(), + qhy.exact(), + qhz.exact(), + qhw.exact(), + qwt.exact(), + rhx.exact(), + rhy.exact(), + rhz.exact(), + rhw.exact(), + rwt.exact(), + thx.exact(), + thy.exact(), + thz.exact(), + thw.exact(), + twt.exact()); + } +} + +#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION +template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE > +#endif +/* */ +Oriented_side +power_testH3( + const Filtered_exact &phx, + const Filtered_exact &phy, + const Filtered_exact &phz, + const Filtered_exact &phw, + const Filtered_exact &pwt, + const Filtered_exact &qhx, + const Filtered_exact &qhy, + const Filtered_exact &qhz, + const Filtered_exact &qhw, + const Filtered_exact &qwt, + const Filtered_exact &thx, + const Filtered_exact &thy, + const Filtered_exact &thz, + const Filtered_exact &thw, + const Filtered_exact &twt) +{ + CGAL_assertion(Interval_nt_advanced::want_exceptions); + FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up); + try + { + Oriented_side result = power_testH3( + phx.interval(), + phy.interval(), + phz.interval(), + phw.interval(), + pwt.interval(), + qhx.interval(), + qhy.interval(), + qhz.interval(), + qhw.interval(), + qwt.interval(), + thx.interval(), + thy.interval(), + thz.interval(), + thw.interval(), + twt.interval()); + FPU_set_cw(backup); + return result; + } + catch (Interval_nt_advanced::unsafe_comparison) + { + FPU_set_cw(backup); + return power_testH3( + phx.exact(), + phy.exact(), + phz.exact(), + phw.exact(), + pwt.exact(), + qhx.exact(), + qhy.exact(), + qhz.exact(), + qhw.exact(), + qwt.exact(), + thx.exact(), + thy.exact(), + thz.exact(), + thw.exact(), + twt.exact()); + } +} + +CGAL_END_NAMESPACE + +#endif // CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H