MeshKit
1.0
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <sys/time.h>
Go to the source code of this file.
Namespaces | |
namespace | QM |
Defines | |
#define | INEXACT volatile |
#define | REAL double /* float or double */ |
#define | REALPRINT doubleprint |
#define | REALRAND doublerand |
#define | NARROWRAND narrowdoublerand |
#define | UNIFORMRAND uniformdoublerand |
#define | Absolute(a) ((a) >= 0.0 ? (a) : -(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 | doublerand () |
double | narrowdoublerand () |
double | uniformdoublerand () |
float | floatrand () |
float | narrowfloatrand () |
float | uniformfloatrand () |
void | exactinit () |
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) |
Variables | |
REAL | splitter |
REAL | epsilon |
REAL | resulterrbound |
REAL | ccwerrboundA |
REAL | ccwerrboundB |
REAL | ccwerrboundC |
REAL | o3derrboundA |
REAL | o3derrboundB |
REAL | o3derrboundC |
REAL | iccerrboundA |
REAL | iccerrboundB |
REAL | iccerrboundC |
REAL | isperrboundA |
REAL | isperrboundB |
REAL | isperrboundC |
#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 | |||
) |
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 295 of file GeomPredicates.cpp.
#define Eight_One_Sum | ( | a7, | |
a6, | |||
a5, | |||
a4, | |||
a3, | |||
a2, | |||
a1, | |||
a0, | |||
b, | |||
x8, | |||
x7, | |||
x6, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 283 of file GeomPredicates.cpp.
#define Eight_Two_Sum | ( | a7, | |
a6, | |||
a5, | |||
a4, | |||
a3, | |||
a2, | |||
a1, | |||
a0, | |||
b1, | |||
b0, | |||
x9, | |||
x8, | |||
x7, | |||
x6, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 288 of file GeomPredicates.cpp.
#define Fast_Two_Diff | ( | a, | |
b, | |||
x, | |||
y | |||
) |
#define Fast_Two_Diff_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
Definition at line 170 of file GeomPredicates.cpp.
#define Fast_Two_Sum | ( | a, | |
b, | |||
x, | |||
y | |||
) |
#define Fast_Two_Sum_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
Definition at line 162 of file GeomPredicates.cpp.
#define Four_Four_Sum | ( | a3, | |
a2, | |||
a1, | |||
a0, | |||
b4, | |||
b3, | |||
b1, | |||
b0, | |||
x7, | |||
x6, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 278 of file GeomPredicates.cpp.
#define Four_One_Product | ( | a3, | |
a2, | |||
a1, | |||
a0, | |||
b, | |||
x7, | |||
x6, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 311 of file GeomPredicates.cpp.
#define Four_One_Sum | ( | a3, | |
a2, | |||
a1, | |||
a0, | |||
b, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_One_Sum(a1, a0, b , _j, x1, x0); \ Two_One_Sum(a3, a2, _j, x4, x3, x2)
Definition at line 270 of file GeomPredicates.cpp.
#define Four_Two_Sum | ( | a3, | |
a2, | |||
a1, | |||
a0, | |||
b1, | |||
b0, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 274 of file GeomPredicates.cpp.
#define INEXACT volatile |
Definition at line 132 of file GeomPredicates.cpp.
#define NARROWRAND narrowdoublerand |
Definition at line 137 of file GeomPredicates.cpp.
#define REAL double /* float or double */ |
Definition at line 134 of file GeomPredicates.cpp.
#define REALPRINT doubleprint |
Definition at line 135 of file GeomPredicates.cpp.
#define REALRAND doublerand |
Definition at line 136 of file GeomPredicates.cpp.
Definition at line 247 of file GeomPredicates.cpp.
#define Square_Tail | ( | a, | |
x, | |||
y | |||
) |
Split(a, ahi, alo); \ err1 = x - (ahi * ahi); \ err3 = err1 - ((ahi + ahi) * alo); \ y = (alo * alo) - err3
Definition at line 241 of file GeomPredicates.cpp.
#define Two_Diff_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
#define Two_One_Diff | ( | a1, | |
a0, | |||
b, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Definition at line 258 of file GeomPredicates.cpp.
#define Two_One_Product | ( | a1, | |
a0, | |||
b, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
#define Two_One_Sum | ( | a1, | |
a0, | |||
b, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Definition at line 254 of file GeomPredicates.cpp.
#define Two_Product | ( | a, | |
b, | |||
x, | |||
y | |||
) |
#define Two_Product_2Presplit | ( | a, | |
ahi, | |||
alo, | |||
b, | |||
bhi, | |||
blo, | |||
x, | |||
y | |||
) |
x = (REAL) (a * b); \ err1 = x - (ahi * bhi); \ err2 = err1 - (alo * bhi); \ err3 = err2 - (ahi * blo); \ y = (alo * blo) - err3
Definition at line 232 of file GeomPredicates.cpp.
#define Two_Product_Presplit | ( | a, | |
b, | |||
bhi, | |||
blo, | |||
x, | |||
y | |||
) |
#define Two_Product_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
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 206 of file GeomPredicates.cpp.
#define Two_Square | ( | a1, | |
a0, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 354 of file GeomPredicates.cpp.
#define Two_Sum_Tail | ( | a, | |
b, | |||
x, | |||
y | |||
) |
#define Two_Two_Diff | ( | a1, | |
a0, | |||
b1, | |||
b0, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_One_Diff(a1, a0, b0, _j, _0, x0); \ Two_One_Diff(_j, _0, b1, x3, x2, x1)
Definition at line 266 of file GeomPredicates.cpp.
#define Two_Two_Product | ( | a1, | |
a0, | |||
b1, | |||
b0, | |||
x7, | |||
x6, | |||
x5, | |||
x4, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
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 324 of file GeomPredicates.cpp.
#define Two_Two_Sum | ( | a1, | |
a0, | |||
b1, | |||
b0, | |||
x3, | |||
x2, | |||
x1, | |||
x0 | |||
) |
Two_One_Sum(a1, a0, b0, _j, _0, x0); \ Two_One_Sum(_j, _0, b1, x3, x2, x1)
Definition at line 262 of file GeomPredicates.cpp.
#define UNIFORMRAND uniformdoublerand |
Definition at line 138 of file GeomPredicates.cpp.