kernel_ftc3.h

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

H
1,787
字号
// 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_ftC3.h,v $// $Revision: 1.34 $ $Date: 2004/01/18 12:06:28 $// $Name:  $//// Author(s)     : Sylvain Pion// This file is automatically generated by// scripts/filtered_predicates_generator.pl#ifndef CGAL_ARITHMETIC_FILTER_PREDICATES_KERNEL_FTC3_H#define CGAL_ARITHMETIC_FILTER_PREDICATES_KERNEL_FTC3_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 */boolparallelC3(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v1x,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v1y,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v1z,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v2x,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v2y,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &v2z){  try  {    CGAL_PROFILER("IA parallelC3 calls");    Protect_FPU_rounding<Protected> Protection;    return parallelC3(		v1x.interval(),		v1y.interval(),		v1z.interval(),		v2x.interval(),		v2y.interval(),		v2z.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA parallelC3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return parallelC3(		v1x.exact(),		v1y.exact(),		v1z.exact(),		v2x.exact(),		v2y.exact(),		v2z.exact());  }}template < class ET >/* inline */boolparallelC3(    const Lazy_exact_nt<ET> &v1x,    const Lazy_exact_nt<ET> &v1y,    const Lazy_exact_nt<ET> &v1z,    const Lazy_exact_nt<ET> &v2x,    const Lazy_exact_nt<ET> &v2y,    const Lazy_exact_nt<ET> &v2z){  try  {    CGAL_PROFILER("Lazy IA parallelC3 calls");    Protect_FPU_rounding<true> Protection;    return parallelC3(		v1x.interval(),		v1y.interval(),		v1z.interval(),		v2x.interval(),		v2y.interval(),		v2z.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA parallelC3 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return parallelC3(		v1x.exact(),		v1y.exact(),		v1z.exact(),		v2x.exact(),		v2y.exact(),		v2z.exact());  }}template < class CT, class ET, bool Protected, class Cache >/*  */boolparallelC3(    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> &s1sz,    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> &s1tz,    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> &s2sz,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2tx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2ty,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &s2tz){  try  {    CGAL_PROFILER("IA parallelC3 calls");    Protect_FPU_rounding<Protected> Protection;    return parallelC3(		s1sx.interval(),		s1sy.interval(),		s1sz.interval(),		s1tx.interval(),		s1ty.interval(),		s1tz.interval(),		s2sx.interval(),		s2sy.interval(),		s2sz.interval(),		s2tx.interval(),		s2ty.interval(),		s2tz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA parallelC3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return parallelC3(		s1sx.exact(),		s1sy.exact(),		s1sz.exact(),		s1tx.exact(),		s1ty.exact(),		s1tz.exact(),		s2sx.exact(),		s2sy.exact(),		s2sz.exact(),		s2tx.exact(),		s2ty.exact(),		s2tz.exact());  }}template < class ET >/*  */boolparallelC3(    const Lazy_exact_nt<ET> &s1sx,    const Lazy_exact_nt<ET> &s1sy,    const Lazy_exact_nt<ET> &s1sz,    const Lazy_exact_nt<ET> &s1tx,    const Lazy_exact_nt<ET> &s1ty,    const Lazy_exact_nt<ET> &s1tz,    const Lazy_exact_nt<ET> &s2sx,    const Lazy_exact_nt<ET> &s2sy,    const Lazy_exact_nt<ET> &s2sz,    const Lazy_exact_nt<ET> &s2tx,    const Lazy_exact_nt<ET> &s2ty,    const Lazy_exact_nt<ET> &s2tz){  try  {    CGAL_PROFILER("Lazy IA parallelC3 calls");    Protect_FPU_rounding<true> Protection;    return parallelC3(		s1sx.interval(),		s1sy.interval(),		s1sz.interval(),		s1tx.interval(),		s1ty.interval(),		s1tz.interval(),		s2sx.interval(),		s2sy.interval(),		s2sz.interval(),		s2tx.interval(),		s2ty.interval(),		s2tz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA parallelC3 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return parallelC3(		s1sx.exact(),		s1sy.exact(),		s1sz.exact(),		s1tx.exact(),		s1ty.exact(),		s1tz.exact(),		s2sx.exact(),		s2sy.exact(),		s2sz.exact(),		s2tx.exact(),		s2ty.exact(),		s2tz.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */boolstrict_dominanceC3(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &px,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &py,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &pz,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qy,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qz){  try  {    CGAL_PROFILER("IA strict_dominanceC3 calls");    Protect_FPU_rounding<Protected> Protection;    return strict_dominanceC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA strict_dominanceC3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return strict_dominanceC3(		px.exact(),		py.exact(),		pz.exact(),		qx.exact(),		qy.exact(),		qz.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */boolstrict_dominanceC3(    const Lazy_exact_nt<ET> &px,    const Lazy_exact_nt<ET> &py,    const Lazy_exact_nt<ET> &pz,    const Lazy_exact_nt<ET> &qx,    const Lazy_exact_nt<ET> &qy,    const Lazy_exact_nt<ET> &qz){  try  {    CGAL_PROFILER("Lazy IA strict_dominanceC3 calls");    Protect_FPU_rounding<true> Protection;    return strict_dominanceC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA strict_dominanceC3 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return strict_dominanceC3(		px.exact(),		py.exact(),		pz.exact(),		qx.exact(),		qy.exact(),		qz.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */booldominanceC3(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &px,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &py,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &pz,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qy,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qz){  try  {    CGAL_PROFILER("IA dominanceC3 calls");    Protect_FPU_rounding<Protected> Protection;    return dominanceC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA dominanceC3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return dominanceC3(		px.exact(),		py.exact(),		pz.exact(),		qx.exact(),		qy.exact(),		qz.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */booldominanceC3(    const Lazy_exact_nt<ET> &px,    const Lazy_exact_nt<ET> &py,    const Lazy_exact_nt<ET> &pz,    const Lazy_exact_nt<ET> &qx,    const Lazy_exact_nt<ET> &qy,    const Lazy_exact_nt<ET> &qz){  try  {    CGAL_PROFILER("Lazy IA dominanceC3 calls");    Protect_FPU_rounding<true> Protection;    return dominanceC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA dominanceC3 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return dominanceC3(		px.exact(),		py.exact(),		pz.exact(),		qx.exact(),		qy.exact(),		qz.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_MEDIUM_INLINE */boolcollinearC3(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &px,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &py,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &pz,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qy,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &qz,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &rx,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &ry,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &rz){  try  {    CGAL_PROFILER("IA collinearC3 calls");    Protect_FPU_rounding<Protected> Protection;    return collinearC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval(),		rx.interval(),		ry.interval(),		rz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA collinearC3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return collinearC3(		px.exact(),		py.exact(),		pz.exact(),		qx.exact(),		qy.exact(),		qz.exact(),		rx.exact(),		ry.exact(),		rz.exact());  }}template < class ET >/* CGAL_KERNEL_MEDIUM_INLINE */boolcollinearC3(    const Lazy_exact_nt<ET> &px,    const Lazy_exact_nt<ET> &py,    const Lazy_exact_nt<ET> &pz,    const Lazy_exact_nt<ET> &qx,    const Lazy_exact_nt<ET> &qy,    const Lazy_exact_nt<ET> &qz,    const Lazy_exact_nt<ET> &rx,    const Lazy_exact_nt<ET> &ry,    const Lazy_exact_nt<ET> &rz){  try  {    CGAL_PROFILER("Lazy IA collinearC3 calls");    Protect_FPU_rounding<true> Protection;    return collinearC3(		px.interval(),		py.interval(),		pz.interval(),		qx.interval(),		qy.interval(),		qz.interval(),		rx.interval(),		ry.interval(),		rz.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA collinearC3 failures");

⌨️ 快捷键说明

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