sign_of_determinant.h

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

H
771
字号
// 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/sign_of_determinant.h,v $// $Revision: 1.38 $ $Date: 2004/01/18 12:06:29 $// $Name:  $//// Author(s)     : Sylvain Pion// This file is automatically generated by// scripts/filtered_predicates_generator.pl#ifndef CGAL_ARITHMETIC_FILTER_PREDICATES_SIGN_OF_DETERMINANT_H#define CGAL_ARITHMETIC_FILTER_PREDICATES_SIGN_OF_DETERMINANT_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 */Signsign_of_determinant2x2(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a00,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a01,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a10,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a11){  try  {    CGAL_PROFILER("IA sign_of_determinant2x2 calls");    Protect_FPU_rounding<Protected> Protection;    return sign_of_determinant2x2(		a00.interval(),		a01.interval(),		a10.interval(),		a11.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA sign_of_determinant2x2 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant2x2(		a00.exact(),		a01.exact(),		a10.exact(),		a11.exact());  }}template < class ET >/* inline */Signsign_of_determinant2x2(    const Lazy_exact_nt<ET> &a00,    const Lazy_exact_nt<ET> &a01,    const Lazy_exact_nt<ET> &a10,    const Lazy_exact_nt<ET> &a11){  try  {    CGAL_PROFILER("Lazy IA sign_of_determinant2x2 calls");    Protect_FPU_rounding<true> Protection;    return sign_of_determinant2x2(		a00.interval(),		a01.interval(),		a10.interval(),		a11.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA sign_of_determinant2x2 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant2x2(		a00.exact(),		a01.exact(),		a10.exact(),		a11.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* inline */Signsign_of_determinant3x3(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a00,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a01,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a02,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a10,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a11,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a12,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a20,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a21,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a22){  try  {    CGAL_PROFILER("IA sign_of_determinant3x3 calls");    Protect_FPU_rounding<Protected> Protection;    return sign_of_determinant3x3(		a00.interval(),		a01.interval(),		a02.interval(),		a10.interval(),		a11.interval(),		a12.interval(),		a20.interval(),		a21.interval(),		a22.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA sign_of_determinant3x3 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant3x3(		a00.exact(),		a01.exact(),		a02.exact(),		a10.exact(),		a11.exact(),		a12.exact(),		a20.exact(),		a21.exact(),		a22.exact());  }}template < class ET >/* inline */Signsign_of_determinant3x3(    const Lazy_exact_nt<ET> &a00,    const Lazy_exact_nt<ET> &a01,    const Lazy_exact_nt<ET> &a02,    const Lazy_exact_nt<ET> &a10,    const Lazy_exact_nt<ET> &a11,    const Lazy_exact_nt<ET> &a12,    const Lazy_exact_nt<ET> &a20,    const Lazy_exact_nt<ET> &a21,    const Lazy_exact_nt<ET> &a22){  try  {    CGAL_PROFILER("Lazy IA sign_of_determinant3x3 calls");    Protect_FPU_rounding<true> Protection;    return sign_of_determinant3x3(		a00.interval(),		a01.interval(),		a02.interval(),		a10.interval(),		a11.interval(),		a12.interval(),		a20.interval(),		a21.interval(),		a22.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA sign_of_determinant3x3 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant3x3(		a00.exact(),		a01.exact(),		a02.exact(),		a10.exact(),		a11.exact(),		a12.exact(),		a20.exact(),		a21.exact(),		a22.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* inline */Signsign_of_determinant4x4(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a00,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a01,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a02,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a03,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a10,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a11,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a12,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a13,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a20,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a21,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a22,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a23,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a30,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a31,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a32,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a33){  try  {    CGAL_PROFILER("IA sign_of_determinant4x4 calls");    Protect_FPU_rounding<Protected> Protection;    return sign_of_determinant4x4(		a00.interval(),		a01.interval(),		a02.interval(),		a03.interval(),		a10.interval(),		a11.interval(),		a12.interval(),		a13.interval(),		a20.interval(),		a21.interval(),		a22.interval(),		a23.interval(),		a30.interval(),		a31.interval(),		a32.interval(),		a33.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("IA sign_of_determinant4x4 failures");    Protect_FPU_rounding<!Protected> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant4x4(		a00.exact(),		a01.exact(),		a02.exact(),		a03.exact(),		a10.exact(),		a11.exact(),		a12.exact(),		a13.exact(),		a20.exact(),		a21.exact(),		a22.exact(),		a23.exact(),		a30.exact(),		a31.exact(),		a32.exact(),		a33.exact());  }}template < class ET >/* inline */Signsign_of_determinant4x4(    const Lazy_exact_nt<ET> &a00,    const Lazy_exact_nt<ET> &a01,    const Lazy_exact_nt<ET> &a02,    const Lazy_exact_nt<ET> &a03,    const Lazy_exact_nt<ET> &a10,    const Lazy_exact_nt<ET> &a11,    const Lazy_exact_nt<ET> &a12,    const Lazy_exact_nt<ET> &a13,    const Lazy_exact_nt<ET> &a20,    const Lazy_exact_nt<ET> &a21,    const Lazy_exact_nt<ET> &a22,    const Lazy_exact_nt<ET> &a23,    const Lazy_exact_nt<ET> &a30,    const Lazy_exact_nt<ET> &a31,    const Lazy_exact_nt<ET> &a32,    const Lazy_exact_nt<ET> &a33){  try  {    CGAL_PROFILER("Lazy IA sign_of_determinant4x4 calls");    Protect_FPU_rounding<true> Protection;    return sign_of_determinant4x4(		a00.interval(),		a01.interval(),		a02.interval(),		a03.interval(),		a10.interval(),		a11.interval(),		a12.interval(),		a13.interval(),		a20.interval(),		a21.interval(),		a22.interval(),		a23.interval(),		a30.interval(),		a31.interval(),		a32.interval(),		a33.interval());  }   catch (Interval_nt_advanced::unsafe_comparison)  {    CGAL_PROFILER("Lazy IA sign_of_determinant4x4 failures");    Protect_FPU_rounding<false> Protection(CGAL_FE_TONEAREST);    return sign_of_determinant4x4(		a00.exact(),		a01.exact(),		a02.exact(),		a03.exact(),		a10.exact(),		a11.exact(),		a12.exact(),		a13.exact(),		a20.exact(),		a21.exact(),		a22.exact(),		a23.exact(),		a30.exact(),		a31.exact(),		a32.exact(),		a33.exact());  }}template < class CT, class ET, bool Protected, class Cache >/* CGAL_KERNEL_LARGE_INLINE */Signsign_of_determinant5x5(    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a00,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a01,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a02,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a03,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a04,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a10,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a11,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a12,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a13,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a14,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a20,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a21,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a22,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a23,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a24,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a30,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a31,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a32,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a33,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a34,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a40,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a41,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a42,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a43,    const Filtered_exact <CT, ET, Dynamic, Protected, Cache> &a44){  try  {    CGAL_PROFILER("IA sign_of_determinant5x5 calls");    Protect_FPU_rounding<Protected> Protection;    return sign_of_determinant5x5(		a00.interval(),		a01.interval(),		a02.interval(),		a03.interval(),		a04.interval(),		a10.interval(),		a11.interval(),		a12.interval(),		a13.interval(),		a14.interval(),		a20.interval(),		a21.interval(),		a22.interval(),		a23.interval(),		a24.interval(),		a30.interval(),		a31.interval(),		a32.interval(),		a33.interval(),		a34.interval(),		a40.interval(),		a41.interval(),		a42.interval(),		a43.interval(),		a44.interval());  } 

⌨️ 快捷键说明

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