Predicates.hpp
Go to the documentation of this file.
00001 // ========================================================================================
00002 //  ApproxMVBB
00003 //  Copyright (C) 2014 by Gabriel Nützi <nuetzig (at) imes (d0t) mavt (d0t) ethz (døt) ch>
00004 //
00005 //  This Source Code Form is subject to the terms of the Mozilla Public
00006 //  License, v. 2.0. If a copy of the MPL was not distributed with this
00007 //  file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008 // ========================================================================================
00009 
00010 #ifndef ApproxMVBB_GeometryPredicates_Predicates_hpp
00011 #define ApproxMVBB_GeometryPredicates_Predicates_hpp
00012 
00013 namespace GeometryPredicates{
00014 
00015     /* On some machines, the exact arithmetic routines might be defeated by the  */
00016     /*   use of internal extended precision floating-point registers.  Sometimes */
00017     /*   this problem can be fixed by defining certain values to be volatile,    */
00018     /*   thus forcing them to be stored to memory and rounded off.  This isn't   */
00019     /*   a great solution, though, as it slows the arithmetic down.              */
00020     /*                                                                           */
00021     /* To try this out, write "#define INEXACT volatile" below.  Normally,       */
00022     /*   however, INEXACT should be defined to be nothing.  ("#define INEXACT".) */
00023 
00024     #define INEXACT                          /* Nothing */
00025     /* #define INEXACT volatile */
00026 
00027     #define REAL double                      /* float or double */
00028     #define REALPRINT doubleprint
00029     #define REALRAND doublerand
00030     #define NARROWRAND narrowdoublerand
00031     #define UNIFORMRAND uniformdoublerand
00032 
00033 
00034     REAL orient2d(REAL * pa,
00035                     REAL * pb,
00036                     REAL * pc);
00037     REAL orient3d(REAL * pa,
00038                     REAL * pb,
00039                     REAL * pc,
00040                     REAL * pd);
00041     REAL incircle(REAL * pa,
00042                     REAL * pb,
00043                     REAL * pc,
00044                     REAL * pd);
00045     REAL insphere(REAL * pa,
00046                     REAL * pb,
00047                     REAL * pc,
00048                     REAL * pd,
00049                     REAL * pe);
00050 }
00051 
00052 #endif


asr_approx_mvbb
Author(s): Gassner Nikolai
autogenerated on Sat Jun 8 2019 20:21:49