ATLAS Offline Software
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
PolygonTriangulator.cxx File Reference
#include "PolygonTriangulator.h"
#include <algorithm>
#include <cmath>
#include <map>
#include <limits>
#include <list>
#include <queue>
#include <set>
#include <iostream>
#include <stack>
#include <cassert>
#include <cstdlib>

Go to the source code of this file.

Classes

class  internal_poltrig::SplayTree< T, KeyType >
 
class  internal_poltrig::SplayTree< T, KeyType >
 
class  internal_poltrig::BTreeNode< T, KeyType >
 
class  internal_poltrig::SplayTree< T, KeyType >
 
class  internal_poltrig::Pointbase
 
class  internal_poltrig::Linebase
 
class  PolygonTriangulator::Polygon
 

Namespaces

 internal_poltrig
 

Macros

#define sqr(t)   (t)*(t)
 
#define INEXACT   /* Nothing */
 
#define REAL   double /* float or double */
 
#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 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_One_Diff(a1, a0, b, x2, x1, x0)
 
#define Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0)
 

Typedefs

typedef std::map< unsigned int, Pointbase * > internal_poltrig::PointbaseMap
 
typedef std::map< unsigned int, Linebase * > internal_poltrig::LineMap
 
typedef std::priority_queue< Pointbase > internal_poltrig::PQueue
 
typedef SplayTree< Linebase *, double > internal_poltrig::EdgeBST
 
typedef std::list< unsigned int > internal_poltrig::Monopoly
 
typedef std::list< Monopoly > internal_poltrig::Monopolys
 
typedef std::vector< unsigned int > internal_poltrig::Triangle
 
typedef std::list< Triangle > internal_poltrig::Triangles
 
typedef std::map< unsigned int, std::set< unsigned int > > internal_poltrig::AdjEdgeMap
 

Enumerations

enum  internal_poltrig::Type {
  internal_poltrig::UNKNOWN, internal_poltrig::INPUT, internal_poltrig::INSERT, internal_poltrig::START,
  internal_poltrig::END, internal_poltrig::MERGE, internal_poltrig::SPLIT, internal_poltrig::REGULAR_UP,
  internal_poltrig::REGULAR_DOWN
}
 

Functions

int internal_poltrig::fast_expansion_sum_zeroelim (const int &elen, REAL *e, const int &flen, REAL *f, REAL *h)
 
REAL internal_poltrig::estimate (const int &elen, REAL *e)
 
REAL internal_poltrig::orient2dadapt (REAL *pa, REAL *pb, REAL *pc, const REAL &detsum)
 
REAL internal_poltrig::orient2d (REAL *pa, REAL *pb, REAL *pc)
 
double internal_poltrig::orient2d (double *pa, double *pb, double *pc)
 
double internal_poltrig::dist_sqr (const Pointbase &sp, const Pointbase &ep)
 
double internal_poltrig::dist_sqr (double *pa, double *pb)
 
void internal_poltrig::UpdateKey (BTreeNode< Linebase *, double > *node, double y)
 
bool internal_poltrig::operator== (const Pointbase &pa, const Pointbase &pb)
 
bool internal_poltrig::operator> (const Pointbase &pa, const Pointbase &pb)
 
bool internal_poltrig::operator< (const Pointbase &pa, const Pointbase &pb)
 
bool internal_poltrig::operator!= (const Pointbase &pa, const Pointbase &pb)
 

Macro Definition Documentation

◆ Absolute

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

Definition at line 271 of file PolygonTriangulator.cxx.

◆ Fast_Two_Sum

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

Definition at line 291 of file PolygonTriangulator.cxx.

◆ Fast_Two_Sum_Tail

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

Definition at line 287 of file PolygonTriangulator.cxx.

◆ INEXACT

#define INEXACT   /* Nothing */

Definition at line 260 of file PolygonTriangulator.cxx.

◆ REAL

#define REAL   double /* float or double */

Definition at line 263 of file PolygonTriangulator.cxx.

◆ Split

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

Definition at line 320 of file PolygonTriangulator.cxx.

◆ sqr

#define sqr (   t)    (t)*(t)

Definition at line 111 of file PolygonTriangulator.cxx.

◆ Two_Diff

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

Definition at line 313 of file PolygonTriangulator.cxx.

◆ Two_Diff_Tail

#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 306 of file PolygonTriangulator.cxx.

◆ Two_One_Diff

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

Definition at line 341 of file PolygonTriangulator.cxx.

◆ Two_Product

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

Definition at line 334 of file PolygonTriangulator.cxx.

◆ Two_Product_Tail

#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 326 of file PolygonTriangulator.cxx.

◆ Two_Sum

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

Definition at line 302 of file PolygonTriangulator.cxx.

◆ Two_Sum_Tail

#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 295 of file PolygonTriangulator.cxx.

◆ Two_Two_Diff

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

Definition at line 345 of file PolygonTriangulator.cxx.

plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Two_One_Diff
#define Two_One_Diff(a1, a0, b, x2, x1, x0)
Definition: PolygonTriangulator.cxx:340
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
x
#define x
Two_Diff
#define Two_Diff(a, b, x, y)
Definition: PolygonTriangulator.cxx:312
REAL
#define REAL
Definition: PolygonTriangulator.cxx:262
a0
double a0
Definition: globals.cxx:27
Split
#define Split(a, ahi, alo)
Definition: PolygonTriangulator.cxx:319
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
python.compressB64.c
def c
Definition: compressB64.py:93