compare_quadratic.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 639 行 · 第 1/2 页
H
639 行
#ifdef CGAL_PROFILE static Profile_counter failures("IA dfmt_compare_l1_r2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return dfmt_compare_l1_r2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultdfmt_compare_r1_l2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA dfmt_compare_r1_l2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return dfmt_compare_r1_l2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA dfmt_compare_r1_l2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return dfmt_compare_r1_l2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultdfmt_compare_r1_r2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA dfmt_compare_r1_r2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return dfmt_compare_r1_r2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA dfmt_compare_r1_r2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return dfmt_compare_r1_r2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultke_compare_l1_l2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA ke_compare_l1_l2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return ke_compare_l1_l2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA ke_compare_l1_l2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return ke_compare_l1_l2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultke_compare_l1_r2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA ke_compare_l1_r2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return ke_compare_l1_r2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA ke_compare_l1_r2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return ke_compare_l1_r2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultke_compare_r1_l2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA ke_compare_r1_l2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return ke_compare_r1_l2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA ke_compare_r1_l2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return ke_compare_r1_l2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}template < class CGAL_IA_CT, class CGAL_IA_ET, bool CGAL_IA_PROTECTED, class CGAL_IA_CACHE >/* inline */Comparison_resultke_compare_r1_r2( const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c1, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &a2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &b2, const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, Dynamic, CGAL_IA_PROTECTED, CGAL_IA_CACHE> &c2){ try {#ifdef CGAL_PROFILE static Profile_counter calls("IA ke_compare_r1_r2 calls"); ++calls;#endif Protect_FPU_rounding<CGAL_IA_PROTECTED> Protection; return ke_compare_r1_r2( a1.interval(), b1.interval(), c1.interval(), a2.interval(), b2.interval(), c2.interval()); } catch (Interval_nt_advanced::unsafe_comparison) {#ifdef CGAL_PROFILE static Profile_counter failures("IA ke_compare_r1_r2 failures"); ++failures;#endif Protect_FPU_rounding<!CGAL_IA_PROTECTED> Protection(CGAL_FE_TONEAREST); return ke_compare_r1_r2( a1.exact(), b1.exact(), c1.exact(), a2.exact(), b2.exact(), c2.exact()); }}CGAL_END_NAMESPACE#endif // CGAL_ARITHMETIC_FILTER_COMPARE_QUADRATIC_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?