69 lines
2.9 KiB
C
69 lines
2.9 KiB
C
|
|
/*****************************************************************************/
|
||
|
|
/* */
|
||
|
|
/* Routines for Arbitrary Precision Floating-point Arithmetic */
|
||
|
|
/* and Fast Robust Geometric Predicates */
|
||
|
|
/* */
|
||
|
|
/* Declarations */
|
||
|
|
/* */
|
||
|
|
/*****************************************************************************/
|
||
|
|
|
||
|
|
#ifndef PREDICATES_H
|
||
|
|
#define PREDICATES_H
|
||
|
|
|
||
|
|
#include "tetgen.h"
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
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 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 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 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 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 insphere(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe);
|
||
|
|
|
||
|
|
REAL orient4dfast(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
|
||
|
|
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
|
||
|
|
REAL eheight);
|
||
|
|
REAL orient4dexact(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
|
||
|
|
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
|
||
|
|
REAL eheight);
|
||
|
|
REAL orient4d(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
|
||
|
|
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
|
||
|
|
REAL eheight);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|