UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Predicates.inl File Reference

Go to the source code of this file.

Macros

#define INEXACT   volatile
 
#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

void exactinit ()
 
bool IsExactPredicateDataInitialized ()
 
int grow_expansion (int elen, const REAL *e, REAL b, REAL *h)
 
int grow_expansion_zeroelim (int elen, const REAL *e, REAL b, REAL *h)
 
int expansion_sum (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int expansion_sum_zeroelim1 (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int expansion_sum_zeroelim2 (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int fast_expansion_sum (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int fast_expansion_sum_zeroelim (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int linear_expansion_sum (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int linear_expansion_sum_zeroelim (int elen, const REAL *e, int flen, const REAL *f, REAL *h)
 
int scale_expansion (int elen, const REAL *e, REAL b, REAL *h)
 
int scale_expansion_zeroelim (int elen, const REAL *e, REAL b, REAL *h)
 
int compress (int elen, const REAL *e, REAL *h)
 
REAL estimate (int elen, const REAL *e)
 
REAL orient2dfast (const REAL *pa, const REAL *pb, const REAL *pc)
 
REAL orient2dexact (const REAL *pa, const REAL *pb, const REAL *pc)
 
REAL orient2dslow (const REAL *pa, const REAL *pb, const REAL *pc)
 
REAL orient2dadapt_origin (const REAL ax, const REAL ay, const REAL bx, const REAL by)
 
REAL orient2d_origin (const REAL ax, const REAL ay, const REAL bx, const REAL by)
 
REAL orient2dadapt (const REAL *pa, const REAL *pb, const REAL *pc, const REAL detsum)
 
REAL orient2d (const REAL *pa, const REAL *pb, const REAL *pc)
 
REAL facing2dadapt (const REAL *pa, const REAL *pc, const REAL *dir, REAL detsum)
 
REAL facing2d (const REAL *pa, const REAL *pc, const REAL *dir)
 
REAL orient3dfast (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL orient3dexact (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL orient3dslow (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL orient3dadapt (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, REAL permanent)
 
REAL orient3d (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL facing3dadapt (const REAL *pa, const REAL *pb, const REAL *pd, const REAL *dir, const REAL permanent)
 
REAL facing3d (const REAL *pa, const REAL *pb, const REAL *pd, const REAL *dir)
 
REAL incirclefast (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL incircleexact (REAL *pa, REAL *pb, REAL *pc, REAL *pd)
 
REAL incircleslow (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL incircleadapt (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, REAL permanent)
 
REAL incircle (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd)
 
REAL inspherefast (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, const REAL *pe)
 
REAL insphereexact (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, const REAL *pe)
 
REAL insphereadapt (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, const REAL *pe, REAL permanent)
 
REAL insphere (const REAL *pa, const REAL *pb, const REAL *pc, const REAL *pd, const REAL *pe)
 

Macro Definition Documentation

◆ Absolute

#define Absolute (   a)    ((a) >= 0.0 ? (a) : -(a))

◆ Eight_Four_Sum

#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)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define Eight_Two_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b1, b0, x9, x8, x7, x6, x5, x4, x3, x2, x1, x0)
Definition Predicates.inl:292

◆ Eight_One_Sum

#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); \
#define Four_One_Sum(a3, a2, a1, a0, b, x4, x3, x2, x1, x0)
Definition Predicates.inl:274

◆ Eight_Two_Sum

#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)
#define Eight_One_Sum(a7, a6, a5, a4, a3, a2, a1, a0, b, x8, x7, x6, x5, x4, x3, x2, x1, x0)
Definition Predicates.inl:287

◆ Fast_Two_Diff

#define Fast_Two_Diff (   a,
  b,
  x,
 
)
Value:
x = (REAL) (a - b); \
#define REAL
Definition Predicates.cpp:154

◆ Fast_Two_Diff_Tail

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

◆ Fast_Two_Sum

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

◆ Fast_Two_Sum_Tail

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

◆ Four_Four_Sum

#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); \
#define Four_Two_Sum(a3, a2, a1, a0, b1, b0, x5, x4, x3, x2, x1, x0)
Definition Predicates.inl:278

◆ Four_One_Product

#define Four_One_Product (   a3,
  a2,
  a1,
  a0,
  b,
  x7,
  x6,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Split(b, bhi, blo); \
#define Split(a, ahi, alo)
Definition Predicates.inl:204

◆ Four_One_Sum

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

◆ Four_Two_Sum

#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); \

◆ INEXACT

#define INEXACT   volatile

◆ Split

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

◆ Square

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

◆ Square_Tail

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

◆ Two_Diff

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

◆ Two_Diff_Tail

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

◆ Two_One_Diff

#define Two_One_Diff (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Diff(a0, b , _i, x0); \
#define Two_Diff(a, b, x, y)
Definition Predicates.inl:200

◆ Two_One_Product

#define Two_One_Product (   a1,
  a0,
  b,
  x3,
  x2,
  x1,
  x0 
)

◆ Two_One_Sum

#define Two_One_Sum (   a1,
  a0,
  b,
  x2,
  x1,
  x0 
)
Value:
Two_Sum(a0, b , _i, x0); \
#define Two_Sum(a, b, x, y)
Definition Predicates.inl:189

◆ Two_Product

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

◆ Two_Product_2Presplit

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

◆ Two_Product_Presplit

#define Two_Product_Presplit (   a,
  b,
  bhi,
  blo,
  x,
 
)
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

◆ Two_Product_Tail

#define Two_Product_Tail (   a,
  b,
  x,
 
)
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

◆ Two_Square

#define Two_Square (   a1,
  a0,
  x5,
  x4,
  x3,
  x2,
  x1,
  x0 
)
Value:
Square(a0, _j, x0); \
_0 = a0 + a0; \
#define Square(a, x, y)
Definition Predicates.inl:251

◆ Two_Sum

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

◆ Two_Sum_Tail

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

◆ Two_Two_Diff

#define Two_Two_Diff (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:
#define Two_One_Diff(a1, a0, b, x2, x1, x0)
Definition Predicates.inl:262

◆ Two_Two_Product

◆ Two_Two_Sum

#define Two_Two_Sum (   a1,
  a0,
  b1,
  b0,
  x3,
  x2,
  x1,
  x0 
)
Value:

Function Documentation

◆ compress()

int compress ( int  elen,
const REAL e,
REAL h 
)

◆ estimate()

REAL estimate ( int  elen,
const REAL e 
)

◆ exactinit()

void exactinit ( )

◆ expansion_sum()

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

◆ expansion_sum_zeroelim1()

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

◆ expansion_sum_zeroelim2()

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

◆ facing2d()

REAL facing2d ( const REAL pa,
const REAL pc,
const REAL dir 
)

◆ facing2dadapt()

REAL facing2dadapt ( const REAL pa,
const REAL pc,
const REAL dir,
REAL  detsum 
)

◆ facing3d()

REAL facing3d ( const REAL pa,
const REAL pb,
const REAL pd,
const REAL dir 
)

◆ facing3dadapt()

REAL facing3dadapt ( const REAL pa,
const REAL pb,
const REAL pd,
const REAL dir,
const REAL  permanent 
)

◆ fast_expansion_sum()

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

◆ fast_expansion_sum_zeroelim()

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

◆ grow_expansion()

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

◆ grow_expansion_zeroelim()

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

◆ incircle()

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

◆ incircleadapt()

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

◆ incircleexact()

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

◆ incirclefast()

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

◆ incircleslow()

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

◆ insphere()

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

◆ insphereadapt()

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

◆ insphereexact()

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

◆ inspherefast()

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

◆ IsExactPredicateDataInitialized()

bool IsExactPredicateDataInitialized ( )

◆ linear_expansion_sum()

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

◆ linear_expansion_sum_zeroelim()

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

◆ orient2d()

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

◆ orient2d_origin()

REAL orient2d_origin ( const REAL  ax,
const REAL  ay,
const REAL  bx,
const REAL  by 
)

◆ orient2dadapt()

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

◆ orient2dadapt_origin()

REAL orient2dadapt_origin ( const REAL  ax,
const REAL  ay,
const REAL  bx,
const REAL  by 
)

◆ orient2dexact()

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

◆ orient2dfast()

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

◆ orient2dslow()

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

◆ orient3d()

REAL orient3d ( const REAL pa,
const REAL pb,
const REAL pc,
const REAL pd 
)

◆ orient3dadapt()

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

◆ orient3dexact()

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

◆ orient3dfast()

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

◆ orient3dslow()

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

◆ scale_expansion()

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

◆ scale_expansion_zeroelim()

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