kernel_ftc2.h

来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 1,955 行 · 第 1/4 页

H
1,955
字号
// Copyright (c) 1997-2003  Utrecht University (The Netherlands),// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),// and Tel-Aviv University (Israel).  All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $Source: /CVSROOT/CGAL/Packages/Interval_arithmetic/include/CGAL/Arithmetic_filter/predicates/kernel_ftC2.h,v $// $Revision: 1.36 $ $Date: 2004/01/18 12:06:27 $// $Name:  $//// Author(s)     : Sylvain Pion// This file is automatically generated by// scripts/filtered_predicates_generator.pl#ifndef CGAL_ARITHMETIC_FILTER_PREDICATES_KERNEL_FTC2_H#define CGAL_ARITHMETIC_FILTER_PREDICATES_KERNEL_FTC2_H#include <CGAL/Profile_counter.h>CGAL_BEGIN_NAMESPACEtemplate <class ET> class Lazy_exact_nt;CGAL_END_NAMESPACECGAL_BEGIN_NAMESPACEtemplate < class CT, class ET, bool Protected, class Cache >/* inline */boolparallelC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2b){  try  {    CGAL_PROFILER("IA parallelC2 calls");    Protect_FPU_rounding<Protected> Protection;    return parallelC2(		l1a.interval(),		l1b.interval(),		l2a.interval(),		l2b.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA parallelC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return parallelC2(		l1a.exact(),		l1b.exact(),		l2a.exact(),		l2b.exact());  }}template < class ET >/* inline */boolparallelC2(    const Lazy_exact_nt<ET> &l1a,    const Lazy_exact_nt<ET> &l1b,    const Lazy_exact_nt<ET> &l2a,    const Lazy_exact_nt<ET> &l2b){  try  {    CGAL_PROFILER("Lazy IA parallelC2 calls");    Protect_FPU_rounding<true> Protection;    return parallelC2(		l1a.interval(),		l1b.interval(),		l2a.interval(),		l2b.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA parallelC2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return parallelC2(		l1a.exact(),		l1b.exact(),		l2a.exact(),		l2b.exact());  }}template < class CT, class ET, bool Protected, class Cache >/*  */boolparallelC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s1sx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s1sy,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s1tx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s1ty,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2sx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2sy,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2tx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2ty){  try  {    CGAL_PROFILER("IA parallelC2 calls");    Protect_FPU_rounding<Protected> Protection;    return parallelC2(		s1sx.interval(),		s1sy.interval(),		s1tx.interval(),		s1ty.interval(),		s2sx.interval(),		s2sy.interval(),		s2tx.interval(),		s2ty.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA parallelC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return parallelC2(		s1sx.exact(),		s1sy.exact(),		s1tx.exact(),		s1ty.exact(),		s2sx.exact(),		s2sy.exact(),		s2tx.exact(),		s2ty.exact());  }}template < class ET >/*  */boolparallelC2(    const Lazy_exact_nt<ET> &s1sx,    const Lazy_exact_nt<ET> &s1sy,    const Lazy_exact_nt<ET> &s1tx,    const Lazy_exact_nt<ET> &s1ty,    const Lazy_exact_nt<ET> &s2sx,    const Lazy_exact_nt<ET> &s2sy,    const Lazy_exact_nt<ET> &s2tx,    const Lazy_exact_nt<ET> &s2ty){  try  {    CGAL_PROFILER("Lazy IA parallelC2 calls");    Protect_FPU_rounding<true> Protection;    return parallelC2(		s1sx.interval(),		s1sy.interval(),		s1tx.interval(),		s1ty.interval(),		s2sx.interval(),		s2sy.interval(),		s2tx.interval(),		s2ty.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA parallelC2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return parallelC2(		s1sx.exact(),		s1sy.exact(),		s1tx.exact(),		s1ty.exact(),		s2sx.exact(),		s2sy.exact(),		s2tx.exact(),		s2ty.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */boolequal_lineC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1c,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2c){  try  {    CGAL_PROFILER("IA equal_lineC2 calls");    Protect_FPU_rounding<Protected> Protection;    return equal_lineC2(		l1a.interval(),		l1b.interval(),		l1c.interval(),		l2a.interval(),		l2b.interval(),		l2c.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA equal_lineC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return equal_lineC2(		l1a.exact(),		l1b.exact(),		l1c.exact(),		l2a.exact(),		l2b.exact(),		l2c.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */boolequal_lineC2(    const Lazy_exact_nt<ET> &l1a,    const Lazy_exact_nt<ET> &l1b,    const Lazy_exact_nt<ET> &l1c,    const Lazy_exact_nt<ET> &l2a,    const Lazy_exact_nt<ET> &l2b,    const Lazy_exact_nt<ET> &l2c){  try  {    CGAL_PROFILER("Lazy IA equal_lineC2 calls");    Protect_FPU_rounding<true> Protection;    return equal_lineC2(		l1a.interval(),		l1b.interval(),		l1c.interval(),		l2a.interval(),		l2b.interval(),		l2c.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA equal_lineC2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return equal_lineC2(		l1a.exact(),		l1b.exact(),		l1c.exact(),		l2a.exact(),		l2b.exact(),		l2c.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_resultcompare_xC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &px,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &la,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &lb,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &lc,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &ha,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &hb,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &hc){  try  {    CGAL_PROFILER("IA compare_xC2 calls");    Protect_FPU_rounding<Protected> Protection;    return compare_xC2(		px.interval(),		la.interval(),		lb.interval(),		lc.interval(),		ha.interval(),		hb.interval(),		hc.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA compare_xC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return compare_xC2(		px.exact(),		la.exact(),		lb.exact(),		lc.exact(),		ha.exact(),		hb.exact(),		hc.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_resultcompare_xC2(    const Lazy_exact_nt<ET> &px,    const Lazy_exact_nt<ET> &la,    const Lazy_exact_nt<ET> &lb,    const Lazy_exact_nt<ET> &lc,    const Lazy_exact_nt<ET> &ha,    const Lazy_exact_nt<ET> &hb,    const Lazy_exact_nt<ET> &hc){  try  {    CGAL_PROFILER("Lazy IA compare_xC2 calls");    Protect_FPU_rounding<true> Protection;    return compare_xC2(		px.interval(),		la.interval(),		lb.interval(),		lc.interval(),		ha.interval(),		hb.interval(),		hc.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA compare_xC2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return compare_xC2(		px.exact(),		la.exact(),		lb.exact(),		lc.exact(),		ha.exact(),		hb.exact(),		hc.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_resultcompare_xC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &la,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &lb,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &lc,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1c,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2c){  try  {    CGAL_PROFILER("IA compare_xC2 calls");    Protect_FPU_rounding<Protected> Protection;    return compare_xC2(		la.interval(),		lb.interval(),		lc.interval(),		h1a.interval(),		h1b.interval(),		h1c.interval(),		h2a.interval(),		h2b.interval(),		h2c.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA compare_xC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return compare_xC2(		la.exact(),		lb.exact(),		lc.exact(),		h1a.exact(),		h1b.exact(),		h1c.exact(),		h2a.exact(),		h2b.exact(),		h2c.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_resultcompare_xC2(    const Lazy_exact_nt<ET> &la,    const Lazy_exact_nt<ET> &lb,    const Lazy_exact_nt<ET> &lc,    const Lazy_exact_nt<ET> &h1a,    const Lazy_exact_nt<ET> &h1b,    const Lazy_exact_nt<ET> &h1c,    const Lazy_exact_nt<ET> &h2a,    const Lazy_exact_nt<ET> &h2b,    const Lazy_exact_nt<ET> &h2c){  try  {    CGAL_PROFILER("Lazy IA compare_xC2 calls");    Protect_FPU_rounding<true> Protection;    return compare_xC2(		la.interval(),		lb.interval(),		lc.interval(),		h1a.interval(),		h1b.interval(),		h1c.interval(),		h2a.interval(),		h2b.interval(),		h2c.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA compare_xC2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return compare_xC2(		la.exact(),		lb.exact(),		lc.exact(),		h1a.exact(),		h1b.exact(),		h1c.exact(),		h2a.exact(),		h2b.exact(),		h2c.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_resultcompare_xC2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l1c,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h1c,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &l2c,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2a,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2b,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &h2c){  try  {    CGAL_PROFILER("IA compare_xC2 calls");    Protect_FPU_rounding<Protected> Protection;    return compare_xC2(		l1a.interval(),		l1b.interval(),		l1c.interval(),		h1a.interval(),		h1b.interval(),		h1c.interval(),		l2a.interval(),		l2b.interval(),		l2c.interval(),		h2a.interval(),		h2b.interval(),		h2c.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA compare_xC2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return compare_xC2(		l1a.exact(),		l1b.exact(),		l1c.exact(),		h1a.exact(),		h1b.exact(),		h1c.exact(),		l2a.exact(),		l2b.exact(),		l2c.exact(),		h2a.exact(),		h2b.exact(),		h2c.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */Comparison_result

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?