EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
predicates.cxx File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "tetgen.h"
+ Include dependency graph for predicates.cxx:

Go to the source code of this file.

Macros

#define INEXACT   /* Nothing */
 
#define REALPRINT   doubleprint
 
#define REALRAND   doublerand
 
#define NARROWRAND   narrowdoublerand
 
#define UNIFORMRAND   uniformdoublerand
 
#define Absolute(a)   fabs(a)
 
#define Fast_Two_Sum_Tail(a, b, x, y)
 
#define Fast_Two_Sum(a, b, x, y)
 
#define Fast_Two_Diff_Tail(a, b, x, y)
 
#define Fast_Two_Diff(a, b, x, y)
 
#define Two_Sum_Tail(a, b, x, y)
 
#define Two_Sum(a, b, x, y)
 
#define Two_Diff_Tail(a, b, x, y)
 
#define Two_Diff(a, b, x, y)
 
#define Split(a, ahi, alo)
 
#define Two_Product_Tail(a, b, x, y)
 
#define Two_Product(a, b, x, y)
 
#define Two_Product_Presplit(a, b, bhi, blo, x, y)
 
#define Two_Product_2Presplit(a, ahi, alo, b, bhi, blo, x, y)
 
#define Square_Tail(a, x, y)
 
#define Square(a, x, y)
 
#define Two_One_Sum(a1, a0, b, x2, x1, x0)
 
#define Two_One_Diff(a1, a0, b, x2, x1, x0)
 
#define Two_Two_Sum(a1, a0, b1, b0, x3, x2, x1, x0)
 
#define Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0)
 
#define Four_One_Sum(a3, a2, a1, a0, b, x4, x3, x2, x1, x0)
 
#define Four_Two_Sum(a3, a2, a1, a0, b1, b0, x5, x4, x3, x2, x1, x0)
 
#define Four_Four_Sum(a3, a2, a1, a0, b4, b3, b1, b0, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Eight_One_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b, x8, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Eight_Two_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b1, b0, x9, x8, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Eight_Four_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b4, b3, b1, b0, x11, x10, x9, x8, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Two_One_Product(a1, a0, b, x3, x2, x1, x0)
 
#define Four_One_Product(a3, a2, a1, a0, b, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Two_Two_Product(a1, a0, b1, b0, x7, x6, x5, x4, x3, x2, x1, x0)
 
#define Two_Square(a1, a0, x5, x4, x3, x2, x1, x0)
 

Functions

double fppow2 (int n)
 
double dstore (double x)
 
int test_double (int verbose)
 
void exactinit (int verbose, int noexact, int nofilter, REAL maxx, REAL maxy, REAL maxz)
 
int grow_expansion (int elen, REAL *e, REAL b, REAL *h)
 
int grow_expansion_zeroelim (int elen, REAL *e, REAL b, REAL *h)
 
int expansion_sum (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int expansion_sum_zeroelim1 (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int expansion_sum_zeroelim2 (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int fast_expansion_sum (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int fast_expansion_sum_zeroelim (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int linear_expansion_sum (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int linear_expansion_sum_zeroelim (int elen, REAL *e, int flen, REAL *f, REAL *h)
 
int scale_expansion (int elen, REAL *e, REAL b, REAL *h)
 
int scale_expansion_zeroelim (int elen, REAL *e, REAL b, REAL *h)
 
int compress (int elen, REAL *e, REAL *h)
 
REAL estimate (int elen, REAL *e)
 
REAL orient2dfast (REAL *pa, REAL *pb, REAL *pc)
 
REAL orient2dexact (REAL *pa, REAL *pb, REAL *pc)
 
REAL orient2dslow (REAL *pa, REAL *pb, REAL *pc)
 
REAL orient2dadapt (REAL *pa, REAL *pb, REAL *pc, REAL detsum)
 
REAL orient2d (REAL *pa, REAL *pb, REAL *pc)
 
REAL orient3dfast (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL orient3dexact (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL orient3dslow (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL orient3dadapt (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL permanent)
 
REAL orient3d (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL incirclefast (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL incircleexact (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL incircleslow (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL incircleadapt (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL permanent)
 
REAL incircle (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL inspherefast (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe)
 
REAL insphereexact (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe)
 
REAL insphereslow (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe)
 
REAL insphereadapt (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe, REAL permanent)
 
REAL insphere (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe)
 
REAL orient4dexact (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe, REAL aheight, REAL bheight, REAL cheight, REAL dheight, REAL eheight)
 
REAL orient4dadapt (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe, REAL aheight, REAL bheight, REAL cheight, REAL dheight, REAL eheight, REAL permanent)
 
REAL orient4d (REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe, REAL aheight, REAL bheight, REAL cheight, REAL dheight, REAL eheight)
 

Variables

static REAL splitter
 
static REAL epsilon
 
static REAL resulterrbound
 
static REAL ccwerrboundA
 
static REAL ccwerrboundB
 
static REAL ccwerrboundC
 
static REAL o3derrboundA
 
static REAL o3derrboundB
 
static REAL o3derrboundC
 
static REAL iccerrboundA
 
static REAL iccerrboundB
 
static REAL iccerrboundC
 
static REAL isperrboundA
 
static REAL isperrboundB
 
static REAL isperrboundC
 
static int _use_inexact_arith
 
static int _use_static_filter
 
static REAL o3dstaticfilter
 
static REAL ispstaticfilter
 

Macro Definition Documentation

#define Absolute (   a)    fabs(a)

Definition at line 160 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 160 of file predicates.cxx

Referenced by incircle(), incircleadapt(), insphere(), insphereadapt(), orient2dadapt(), orient3d(), orient3dadapt(), orient4d(), and orient4dadapt().

#define Eight_Four_Sum (   a7,
  a6,
  a5,
  a4,
  a3,
  a2,
  a1,
  a0,
  b4,
  b3,
  b1,
  b0,
  x11,
  x10,
  x9,
  x8,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Eight_Two_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b1, b0, _l, _6, _5, _4, _3, \
_2, _1, _0, x1, x0); \
Eight_Two_Sum(_l, _6, _5, _4, _3, _2, _1, _0, b4, b3, x11, x10, x9, x8, \
x7, x6, x5, x4, x3, x2)

Definition at line 308 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 308 of file predicates.cxx

#define Eight_One_Sum (   a7,
  a6,
  a5,
  a4,
  a3,
  a2,
  a1,
  a0,
  b,
  x8,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Four_One_Sum(a3, a2, a1, a0, b , _j, x3, x2, x1, x0); \
Four_One_Sum(a7, a6, a5, a4, _j, x8, x7, x6, x5, x4)

Definition at line 296 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 296 of file predicates.cxx

#define Eight_Two_Sum (   a7,
  a6,
  a5,
  a4,
  a3,
  a2,
  a1,
  a0,
  b1,
  b0,
  x9,
  x8,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Eight_One_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b0, _k, _6, _5, _4, _3, _2, \
_1, _0, x0); \
Eight_One_Sum(_k, _6, _5, _4, _3, _2, _1, _0, b1, x9, x8, x7, x6, x5, x4, \
x3, x2, x1)

Definition at line 301 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 301 of file predicates.cxx

#define Fast_Two_Diff (   a,
  b,
  x,
  y 
)
Value:
x = (REAL) (a - b); \
Fast_Two_Diff_Tail(a, b, x, y)

Definition at line 187 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 187 of file predicates.cxx

#define Fast_Two_Diff_Tail (   a,
  b,
  x,
  y 
)
Value:
bvirt = a - x; \
y = bvirt - b

Definition at line 183 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 183 of file predicates.cxx

#define Fast_Two_Sum (   a,
  b,
  x,
  y 
)
Value:
x = (REAL) (a + b); \
Fast_Two_Sum_Tail(a, b, x, y)

Definition at line 179 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 179 of file predicates.cxx

Referenced by compress(), fast_expansion_sum(), fast_expansion_sum_zeroelim(), linear_expansion_sum(), linear_expansion_sum_zeroelim(), and scale_expansion_zeroelim().

#define Fast_Two_Sum_Tail (   a,
  b,
  x,
  y 
)
Value:
bvirt = x - a; \
y = b - bvirt

Definition at line 175 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 175 of file predicates.cxx

#define Four_Four_Sum (   a3,
  a2,
  a1,
  a0,
  b4,
  b3,
  b1,
  b0,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Four_Two_Sum(a3, a2, a1, a0, b1, b0, _l, _2, _1, _0, x1, x0); \
Four_Two_Sum(_l, _2, _1, _0, b4, b3, x7, x6, x5, x4, x3, x2)

Definition at line 291 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 291 of file predicates.cxx

#define Four_One_Product (   a3,
  a2,
  a1,
  a0,
  b,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Split(b, bhi, blo); \
Two_Product_Presplit(a0, b, bhi, blo, _i, x0); \
Two_Product_Presplit(a1, b, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, x1); \
Fast_Two_Sum(_j, _k, _i, x2); \
Two_Product_Presplit(a2, b, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, x3); \
Fast_Two_Sum(_j, _k, _i, x4); \
Two_Product_Presplit(a3, b, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, x5); \
Fast_Two_Sum(_j, _k, x7, x6)

Definition at line 324 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 324 of file predicates.cxx

#define Four_One_Sum (   a3,
  a2,
  a1,
  a0,
  b,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Two_One_Sum(a1, a0, b , _j, x1, x0); \
Two_One_Sum(a3, a2, _j, x4, x3, x2)

Definition at line 283 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 283 of file predicates.cxx

#define Four_Two_Sum (   a3,
  a2,
  a1,
  a0,
  b1,
  b0,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Four_One_Sum(a3, a2, a1, a0, b0, _k, _2, _1, _0, x0); \
Four_One_Sum(_k, _2, _1, _0, b1, x5, x4, x3, x2, x1)

Definition at line 287 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 287 of file predicates.cxx

#define NARROWRAND   narrowdoublerand

Definition at line 150 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 150 of file predicates.cxx

#define REALPRINT   doubleprint

Definition at line 148 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 148 of file predicates.cxx

#define REALRAND   doublerand

Definition at line 149 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 149 of file predicates.cxx

#define Split (   a,
  ahi,
  alo 
)
Value:
c = (REAL) (splitter * a); \
abig = (REAL) (c - a); \
ahi = c - abig; \
alo = a - ahi

Definition at line 213 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 213 of file predicates.cxx

Referenced by scale_expansion(), and scale_expansion_zeroelim().

#define Square (   a,
  x,
  y 
)
Value:
x = (REAL) (a * a); \
Square_Tail(a, x, y)

Definition at line 260 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 260 of file predicates.cxx

Referenced by incircleadapt().

#define Square_Tail (   a,
  x,
  y 
)
Value:
Split(a, ahi, alo); \
err1 = x - (ahi * ahi); \
err3 = err1 - ((ahi + ahi) * alo); \
y = (alo * alo) - err3

Definition at line 254 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 254 of file predicates.cxx

#define Two_Diff (   a,
  b,
  x,
  y 
)
Value:
x = (REAL) (a - b); \
Two_Diff_Tail(a, b, x, y)

Definition at line 209 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 209 of file predicates.cxx

Referenced by incircleslow(), insphereslow(), orient2dslow(), and orient3dslow().

#define Two_Diff_Tail (   a,
  b,
  x,
  y 
)
Value:
bvirt = (REAL) (a - x); \
avirt = x + bvirt; \
bround = bvirt - b; \
around = a - avirt; \
y = around + bround

Definition at line 202 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 202 of file predicates.cxx

Referenced by incircleadapt(), insphereadapt(), orient2dadapt(), orient3dadapt(), and orient4dadapt().

#define Two_One_Diff (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Diff(a0, b , _i, x0); \
Two_Sum( a1, _i, x2, x1)

Definition at line 271 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 271 of file predicates.cxx

#define Two_One_Product (   a1,
  a0,
  b,
  x3,
  x2,
  x1,
  x0 
)
Value:
Split(b, bhi, blo); \
Two_Product_Presplit(a0, b, bhi, blo, _i, x0); \
Two_Product_Presplit(a1, b, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, x1); \
Fast_Two_Sum(_j, _k, x3, x2)

Definition at line 317 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 317 of file predicates.cxx

Referenced by orient3dadapt().

#define Two_One_Sum (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Sum(a0, b , _i, x0); \
Two_Sum(a1, _i, x2, x1)

Definition at line 267 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 267 of file predicates.cxx

#define Two_Product (   a,
  b,
  x,
  y 
)
Value:
x = (REAL) (a * b); \
Two_Product_Tail(a, b, x, y)

Definition at line 227 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 227 of file predicates.cxx

Referenced by incircleadapt(), incircleexact(), insphereadapt(), insphereexact(), orient2dadapt(), orient2dexact(), orient3dadapt(), orient3dexact(), orient4dadapt(), and orient4dexact().

#define Two_Product_2Presplit (   a,
  ahi,
  alo,
  b,
  bhi,
  blo,
  x,
  y 
)
Value:
x = (REAL) (a * b); \
err1 = x - (ahi * bhi); \
err2 = err1 - (alo * bhi); \
err3 = err2 - (ahi * blo); \
y = (alo * blo) - err3

Definition at line 245 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 245 of file predicates.cxx

#define Two_Product_Presplit (   a,
  b,
  bhi,
  blo,
  x,
  y 
)
Value:
x = (REAL) (a * b); \
Split(a, ahi, alo); \
err1 = x - (ahi * bhi); \
err2 = err1 - (alo * bhi); \
err3 = err2 - (ahi * blo); \
y = (alo * blo) - err3

Definition at line 234 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 234 of file predicates.cxx

Referenced by scale_expansion(), and scale_expansion_zeroelim().

#define Two_Product_Tail (   a,
  b,
  x,
  y 
)
Value:
Split(a, ahi, alo); \
Split(b, bhi, blo); \
err1 = x - (ahi * bhi); \
err2 = err1 - (alo * bhi); \
err3 = err2 - (ahi * blo); \
y = (alo * blo) - err3

Definition at line 219 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 219 of file predicates.cxx

#define Two_Square (   a1,
  a0,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Square(a0, _j, x0); \
_0 = a0 + a0; \
Two_Product(a1, _0, _k, _1); \
Two_One_Sum(_k, _1, _j, _l, _2, x1); \
Square(a1, _j, _1); \
Two_Two_Sum(_j, _1, _l, _2, x5, x4, x3, x2)

Definition at line 367 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 367 of file predicates.cxx

#define Two_Sum (   a,
  b,
  x,
  y 
)
#define Two_Sum_Tail (   a,
  b,
  x,
  y 
)
Value:
bvirt = (REAL) (x - a); \
avirt = x - bvirt; \
bround = b - bvirt; \
around = a - avirt; \
y = around + bround

Definition at line 191 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 191 of file predicates.cxx

#define Two_Two_Diff (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:
Two_One_Diff(a1, a0, b0, _j, _0, x0); \
Two_One_Diff(_j, _0, b1, x3, x2, x1)

Definition at line 279 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 279 of file predicates.cxx

Referenced by incircleadapt(), incircleexact(), insphereadapt(), insphereexact(), orient2dadapt(), orient2dexact(), orient3dadapt(), orient3dexact(), orient4dadapt(), and orient4dexact().

#define Two_Two_Product (   a1,
  a0,
  b1,
  b0,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Split(a0, a0hi, a0lo); \
Split(b0, bhi, blo); \
Two_Product_2Presplit(a0, a0hi, a0lo, b0, bhi, blo, _i, x0); \
Split(a1, a1hi, a1lo); \
Two_Product_2Presplit(a1, a1hi, a1lo, b0, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _k, _1); \
Fast_Two_Sum(_j, _k, _l, _2); \
Split(b1, bhi, blo); \
Two_Product_2Presplit(a0, a0hi, a0lo, b1, bhi, blo, _i, _0); \
Two_Sum(_1, _0, _k, x1); \
Two_Sum(_2, _k, _j, _1); \
Two_Sum(_l, _j, _m, _2); \
Two_Product_2Presplit(a1, a1hi, a1lo, b1, bhi, blo, _j, _0); \
Two_Sum(_i, _0, _n, _0); \
Two_Sum(_1, _0, _i, x2); \
Two_Sum(_2, _i, _k, _1); \
Two_Sum(_m, _k, _l, _2); \
Two_Sum(_j, _n, _k, _0); \
Two_Sum(_1, _0, _j, x3); \
Two_Sum(_2, _j, _i, _1); \
Two_Sum(_l, _i, _m, _2); \
Two_Sum(_1, _k, _i, x4); \
Two_Sum(_2, _i, _k, x5); \
Two_Sum(_m, _k, x7, x6)

Definition at line 337 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 337 of file predicates.cxx

Referenced by incircleslow(), insphereslow(), orient2dslow(), and orient3dslow().

#define Two_Two_Sum (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:
Two_One_Sum(a1, a0, b0, _j, _0, x0); \
Two_One_Sum(_j, _0, b1, x3, x2, x1)

Definition at line 275 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 275 of file predicates.cxx

Referenced by incircleadapt().

#define UNIFORMRAND   uniformdoublerand

Definition at line 151 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 151 of file predicates.cxx

Function Documentation

double dstore ( double  x)

Definition at line 470 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 470 of file predicates.cxx

Referenced by test_double().

+ Here is the caller graph for this function:

REAL estimate ( int  elen,
REAL e 
)

Definition at line 1314 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1314 of file predicates.cxx

References REAL.

Referenced by approx(), incircleadapt(), insphereadapt(), orient2dadapt(), orient3dadapt(), and orient4dadapt().

+ Here is the caller graph for this function:

void exactinit ( int  verbose,
int  noexact,
int  nofilter,
REAL  maxx,
REAL  maxy,
REAL  maxz 
)

Definition at line 543 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 543 of file predicates.cxx

References _use_inexact_arith, _use_static_filter, ccwerrboundA, ccwerrboundB, ccwerrboundC, epsilon, half, iccerrboundA, iccerrboundB, iccerrboundC, isperrboundA, isperrboundB, isperrboundC, ispstaticfilter, G4BECAL::maxz, o3derrboundA, o3derrboundB, o3derrboundC, o3dstaticfilter, printf(), REAL, resulterrbound, splitter, and test_double().

Referenced by tetrahedralize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int expansion_sum ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 737 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 737 of file predicates.cxx

References INEXACT, REAL, and Two_Sum.

int expansion_sum_zeroelim1 ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 781 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 781 of file predicates.cxx

References INEXACT, REAL, and Two_Sum.

int expansion_sum_zeroelim2 ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 836 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 836 of file predicates.cxx

References INEXACT, REAL, and Two_Sum.

int fast_expansion_sum ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 888 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 888 of file predicates.cxx

References Fast_Two_Sum, INEXACT, REAL, and Two_Sum.

int fast_expansion_sum_zeroelim ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 961 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 961 of file predicates.cxx

References Fast_Two_Sum, INEXACT, REAL, and Two_Sum.

Referenced by incircleadapt(), incircleexact(), incircleslow(), insphereadapt(), insphereexact(), insphereslow(), orient2dadapt(), orient2dexact(), orient2dslow(), orient3dadapt(), orient3dexact(), orient3dslow(), orient4dadapt(), and orient4dexact().

+ Here is the caller graph for this function:

double fppow2 ( int  n)

Definition at line 402 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 402 of file predicates.cxx

References x.

Referenced by test_double().

+ Here is the caller graph for this function:

int grow_expansion ( int  elen,
REAL e,
REAL  b,
REAL h 
)

Definition at line 664 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 664 of file predicates.cxx

References INEXACT, REAL, and Two_Sum.

int grow_expansion_zeroelim ( int  elen,
REAL e,
REAL  b,
REAL h 
)

Definition at line 698 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 698 of file predicates.cxx

References INEXACT, REAL, and Two_Sum.

REAL incircle ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 3125 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 3125 of file predicates.cxx

References Absolute, iccerrboundA, incircleadapt(), and REAL.

+ Here is the call graph for this function:

REAL incircleadapt ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL  permanent 
)

Definition at line 2553 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 2553 of file predicates.cxx

References Absolute, c, estimate(), fast_expansion_sum_zeroelim(), iccerrboundB, iccerrboundC, INEXACT, REAL, resulterrbound, scale_expansion_zeroelim(), Square, Two_Diff_Tail, Two_Product, Two_Two_Diff, Two_Two_Sum, Acts::UnitConstants::u, v, and v3.

Referenced by incircle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL incircleexact ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 2299 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 2299 of file predicates.cxx

References c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Product, and Two_Two_Diff.

+ Here is the call graph for this function:

REAL incirclefast ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 2276 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 2276 of file predicates.cxx

References REAL.

REAL incircleslow ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 2397 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 2397 of file predicates.cxx

References _2, c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Diff, Two_Two_Product, and x2.

+ Here is the call graph for this function:

REAL insphere ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe 
)

Definition at line 4050 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 4050 of file predicates.cxx

References _use_inexact_arith, _use_static_filter, Absolute, insphereadapt(), isperrboundA, ispstaticfilter, and REAL.

Referenced by tetgenmesh::checkregular(), tetgenmesh::flipcertify(), and tetgenmesh::insphere_s().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL insphereadapt ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe,
REAL  permanent 
)

Definition at line 3819 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 3819 of file predicates.cxx

References Absolute, c, estimate(), fast_expansion_sum_zeroelim(), INEXACT, insphereexact(), isperrboundB, isperrboundC, REAL, resulterrbound, scale_expansion_zeroelim(), Two_Diff_Tail, Two_Product, and Two_Two_Diff.

Referenced by insphere().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL insphereexact ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe 
)

Definition at line 3237 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 3237 of file predicates.cxx

References c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Product, and Two_Two_Diff.

Referenced by insphereadapt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL inspherefast ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe 
)

Definition at line 3194 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 3194 of file predicates.cxx

References REAL.

REAL insphereslow ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe 
)

Definition at line 3490 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 3490 of file predicates.cxx

References _2, c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Diff, Two_Two_Product, x2, z1, and z2.

+ Here is the call graph for this function:

int linear_expansion_sum ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 1042 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1042 of file predicates.cxx

References Fast_Two_Sum, INEXACT, Acts::IntegrationTest::R, REAL, and Two_Sum.

int linear_expansion_sum_zeroelim ( int  elen,
REAL e,
int  flen,
REAL f,
REAL h 
)

Definition at line 1102 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1102 of file predicates.cxx

References Fast_Two_Sum, INEXACT, Acts::IntegrationTest::R, REAL, and Two_Sum.

REAL orient2d ( REAL pa,
REAL pb,
REAL pc 
)

Definition at line 1526 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1526 of file predicates.cxx

References ccwerrboundA, orient2dadapt(), and REAL.

+ Here is the call graph for this function:

REAL orient2dadapt ( REAL pa,
REAL pb,
REAL pc,
REAL  detsum 
)

Definition at line 1446 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1446 of file predicates.cxx

References Absolute, c, ccwerrboundB, ccwerrboundC, estimate(), fast_expansion_sum_zeroelim(), INEXACT, REAL, resulterrbound, s1, t1, Two_Diff_Tail, Two_Product, Two_Two_Diff, and Acts::UnitConstants::u.

Referenced by orient2d().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL orient2dexact ( REAL pa,
REAL pb,
REAL pc 
)

Definition at line 1363 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1363 of file predicates.cxx

References c, fast_expansion_sum_zeroelim(), INEXACT, REAL, Two_Product, Two_Two_Diff, and v.

+ Here is the call graph for this function:

REAL orient2dfast ( REAL pa,
REAL pb,
REAL pc 
)

Definition at line 1352 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1352 of file predicates.cxx

References REAL.

REAL orient2dslow ( REAL pa,
REAL pb,
REAL pc 
)

Definition at line 1405 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1405 of file predicates.cxx

References _2, c, fast_expansion_sum_zeroelim(), INEXACT, REAL, Two_Diff, and Two_Two_Product.

+ Here is the call graph for this function:

REAL orient3dadapt ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL  permanent 
)

Definition at line 1778 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1778 of file predicates.cxx

References Absolute, c, estimate(), fast_expansion_sum_zeroelim(), INEXACT, o3derrboundB, o3derrboundC, REAL, resulterrbound, scale_expansion_zeroelim(), Two_Diff_Tail, Two_One_Product, Two_Product, Two_Two_Diff, Acts::UnitConstants::u, and v.

Referenced by orient3d().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL orient3dexact ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 1609 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1609 of file predicates.cxx

References c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Product, and Two_Two_Diff.

+ Here is the call graph for this function:

REAL orient3dfast ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 1588 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1588 of file predicates.cxx

References REAL.

REAL orient3dslow ( REAL pa,
REAL pb,
REAL pc,
REAL pd 
)

Definition at line 1686 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1686 of file predicates.cxx

References _2, c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Diff, and Two_Two_Product.

+ Here is the call graph for this function:

REAL orient4d ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe,
REAL  aheight,
REAL  bheight,
REAL  cheight,
REAL  dheight,
REAL  eheight 
)

Definition at line 4600 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 4600 of file predicates.cxx

References Absolute, isperrboundA, orient4dadapt(), and REAL.

Referenced by tetgenmesh::checkregular(), tetgenmesh::flipcertify(), tetgenmesh::orient4d_s(), and tetgenmesh::tetprismvol().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL orient4dadapt ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe,
REAL  aheight,
REAL  bheight,
REAL  cheight,
REAL  dheight,
REAL  eheight,
REAL  permanent 
)

Definition at line 4404 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 4404 of file predicates.cxx

References Absolute, c, estimate(), fast_expansion_sum_zeroelim(), INEXACT, isperrboundB, isperrboundC, orient4dexact(), REAL, resulterrbound, scale_expansion_zeroelim(), Two_Diff_Tail, Two_Product, and Two_Two_Diff.

Referenced by orient4d().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

REAL orient4dexact ( REAL pa,
REAL pb,
REAL pc,
REAL pd,
REAL pe,
REAL  aheight,
REAL  bheight,
REAL  cheight,
REAL  dheight,
REAL  eheight 
)

Definition at line 4189 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 4189 of file predicates.cxx

References c, fast_expansion_sum_zeroelim(), INEXACT, REAL, scale_expansion_zeroelim(), Two_Product, and Two_Two_Diff.

Referenced by orient4dadapt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int scale_expansion ( int  elen,
REAL e,
REAL  b,
REAL h 
)

Definition at line 1173 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1173 of file predicates.cxx

References c, INEXACT, REAL, Split, Two_Product_Presplit, and Two_Sum.

int scale_expansion_zeroelim ( int  elen,
REAL e,
REAL  b,
REAL h 
)

Definition at line 1219 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 1219 of file predicates.cxx

References c, Fast_Two_Sum, INEXACT, REAL, Split, Two_Product_Presplit, and Two_Sum.

Referenced by incircleadapt(), incircleexact(), incircleslow(), insphereadapt(), insphereexact(), insphereslow(), orient3dadapt(), orient3dexact(), orient3dslow(), orient4dadapt(), and orient4dexact().

+ Here is the caller graph for this function:

int test_double ( int  verbose)

Definition at line 475 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 475 of file predicates.cxx

References dstore(), fppow2(), printf(), nlohmann::detail::void(), and x.

Referenced by exactinit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

int _use_inexact_arith
static

Definition at line 387 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 387 of file predicates.cxx

Referenced by exactinit(), insphere(), and orient3d().

int _use_static_filter
static

Definition at line 388 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 388 of file predicates.cxx

Referenced by exactinit(), insphere(), and orient3d().

REAL ccwerrboundA
static

Definition at line 380 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 380 of file predicates.cxx

Referenced by exactinit(), and orient2d().

REAL ccwerrboundB
static

Definition at line 380 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 380 of file predicates.cxx

Referenced by exactinit(), and orient2dadapt().

REAL ccwerrboundC
static

Definition at line 380 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 380 of file predicates.cxx

Referenced by exactinit(), and orient2dadapt().

REAL iccerrboundA
static

Definition at line 382 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 382 of file predicates.cxx

Referenced by exactinit(), and incircle().

REAL iccerrboundB
static

Definition at line 382 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 382 of file predicates.cxx

Referenced by exactinit(), and incircleadapt().

REAL iccerrboundC
static

Definition at line 382 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 382 of file predicates.cxx

Referenced by exactinit(), and incircleadapt().

REAL isperrboundA
static

Definition at line 383 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 383 of file predicates.cxx

Referenced by exactinit(), insphere(), and orient4d().

REAL isperrboundB
static

Definition at line 383 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 383 of file predicates.cxx

Referenced by exactinit(), insphereadapt(), and orient4dadapt().

REAL isperrboundC
static

Definition at line 383 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 383 of file predicates.cxx

Referenced by exactinit(), insphereadapt(), and orient4dadapt().

REAL ispstaticfilter
static

Definition at line 394 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 394 of file predicates.cxx

Referenced by exactinit(), and insphere().

REAL o3derrboundA
static

Definition at line 381 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 381 of file predicates.cxx

Referenced by exactinit(), and orient3d().

REAL o3derrboundB
static

Definition at line 381 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 381 of file predicates.cxx

Referenced by exactinit(), and orient3dadapt().

REAL o3derrboundC
static

Definition at line 381 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 381 of file predicates.cxx

Referenced by exactinit(), and orient3dadapt().

REAL o3dstaticfilter
static

Definition at line 393 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 393 of file predicates.cxx

Referenced by exactinit(), and orient3d().

REAL resulterrbound
static

Definition at line 379 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 379 of file predicates.cxx

Referenced by exactinit(), incircleadapt(), insphereadapt(), orient2dadapt(), orient3dadapt(), and orient4dadapt().

REAL splitter
static

Definition at line 376 of file predicates.cxx.

View newest version in sPHENIX GitHub at line 376 of file predicates.cxx

Referenced by exactinit(), and import_ascii_field_map().