polylib 5.22.8
types.h File Reference
#include <limits.h>

Go to the source code of this file.

Classes

struct  Vector
 
struct  matrix
 
struct  polyhedron
 
struct  interval
 
struct  _Param_Vertex
 
struct  _Param_Domain
 
struct  _Param_Polyhedron
 
struct  _evalue
 
struct  _enode
 
struct  _enumeration
 
struct  LatticeUnion
 
struct  ZPolyhedron
 

Macros

#define FIRST_PARAMETER_NAME   'P'
 
#define PCHAR   (FIRST_PARAMETER_NAME - 1)
 
#define MAXNOOFRAYS   200
 
#define P_VALUE_FMT   "%4s "
 
#define LB_INFINITY   1
 
#define UB_INFINITY   2
 
#define MSB   ((unsigned)(((unsigned)1) << (sizeof(int) * 8 - 1)))
 
#define TOP   ((int)(MSB - 1))
 
#define NEXT(j, b)
 
#define POL_HIGH_BIT   (UINT_MAX - (UINT_MAX >> 1))
 
#define POL_NO_DUAL   (POL_HIGH_BIT | 0x0001)
 
#define POL_INTEGER   (POL_HIGH_BIT | 0x0002)
 
#define POL_ISSET(flags, f)   ((flags & f) == f)
 
#define FL_INIT(l, f)   (l) = (f) /* Specific flags location. */
 
#define FL_SET(l, f)   ((l) |= (f))
 
#define FL_CLR(l, f)   ((l) &= ~(f))
 
#define FL_ISSET(l, f)   ((l) & (f))
 
#define F_INIT(p, f)   FL_INIT((p)->flags, f) /* Structure element flags. */
 
#define F_SET(p, f)   FL_SET((p)->flags, f)
 
#define F_CLR(p, f)   FL_CLR((p)->flags, f)
 
#define F_ISSET(p, f)   FL_ISSET((p)->flags, f)
 
#define POL_INEQUALITIES   0x00000001
 
#define POL_FACETS   0x00000002
 
#define POL_POINTS   0x00000004
 
#define POL_VERTICES   0x00000008
 
#define POL_VALID   0x00000010
 
#define emptyQ(P)
 
#define universeQ(P)   (P->Dimension == P->NbBid)
 
#define FORALL_PVertex_in_ParamPolyhedron(_V, _D, _P)
 
#define END_FORALL_PVertex_in_ParamPolyhedron
 
#define POLY_UNION_OR_STRUCT   union
 
#define FOREVER   for (;;)
 

Typedefs

typedef struct matrix Matrix
 
typedef struct polyhedron Polyhedron
 
typedef struct interval Interval
 
typedef struct _Param_Vertex Param_Vertices
 
typedef struct _Param_Domain Param_Domain
 
typedef struct _Param_Polyhedron Param_Polyhedron
 
typedef struct _evalue evalue
 
typedef struct _enode enode
 
typedef struct _enumeration Enumeration
 
typedef Matrix Lattice
 
typedef struct LatticeUnion LatticeUnion
 
typedef struct ZPolyhedron ZPolyhedron
 

Enumerations

enum  enode_type { polynomial , periodic , evector }
 
enum  Bool { False = 0 , True = 1 }
 

Variables

int Pol_status
 

Macro Definition Documentation

◆ emptyQ

#define emptyQ (   P)
Value:
((F_ISSET(P, POL_INEQUALITIES) && P->NbEq > P->Dimension) || \
(F_ISSET(P, POL_POINTS) && P->NbRays == 0))
#define POL_INEQUALITIES
Definition: types.h:100
#define F_ISSET(p, f)
Definition: types.h:91
#define POL_POINTS
Definition: types.h:102

Definition at line 118 of file types.h.

◆ END_FORALL_PVertex_in_ParamPolyhedron

#define END_FORALL_PVertex_in_ParamPolyhedron
Value:
} \
NEXT(_ix, _bx); \
} \
}

Definition at line 157 of file types.h.

◆ F_CLR

#define F_CLR (   p,
 
)    FL_CLR((p)->flags, f)

Definition at line 90 of file types.h.

◆ F_INIT

#define F_INIT (   p,
 
)    FL_INIT((p)->flags, f) /* Structure element flags. */

Definition at line 88 of file types.h.

◆ F_ISSET

#define F_ISSET (   p,
 
)    FL_ISSET((p)->flags, f)

Definition at line 91 of file types.h.

◆ F_SET

#define F_SET (   p,
 
)    FL_SET((p)->flags, f)

Definition at line 89 of file types.h.

◆ FIRST_PARAMETER_NAME

#define FIRST_PARAMETER_NAME   'P'

Definition at line 23 of file types.h.

◆ FL_CLR

#define FL_CLR (   l,
 
)    ((l) &= ~(f))

Definition at line 85 of file types.h.

◆ FL_INIT

#define FL_INIT (   l,
 
)    (l) = (f) /* Specific flags location. */

Definition at line 83 of file types.h.

◆ FL_ISSET

#define FL_ISSET (   l,
 
)    ((l) & (f))

Definition at line 86 of file types.h.

◆ FL_SET

#define FL_SET (   l,
 
)    ((l) |= (f))

Definition at line 84 of file types.h.

◆ FORALL_PVertex_in_ParamPolyhedron

#define FORALL_PVertex_in_ParamPolyhedron (   _V,
  _D,
  _P 
)
Value:
{ \
int _i, _ix; \
unsigned _bx; \
for (_i = 0, _ix = 0, _bx = MSB, _V = _P->V; _V && (_i < _P->nbV); \
_i++, _V = _V->next) { \
if (_D->F[_ix] & _bx) {
#define MSB
Definition: types.h:48

Definition at line 149 of file types.h.

◆ FOREVER

#define FOREVER   for (;;)

Definition at line 232 of file types.h.

◆ LB_INFINITY

#define LB_INFINITY   1

Definition at line 43 of file types.h.

◆ MAXNOOFRAYS

#define MAXNOOFRAYS   200

Definition at line 28 of file types.h.

◆ MSB

#define MSB   ((unsigned)(((unsigned)1) << (sizeof(int) * 8 - 1)))

Definition at line 48 of file types.h.

◆ NEXT

#define NEXT (   j,
 
)
Value:
{ \
if (!((b) >>= 1)) { \
(b) = MSB; \
(j)++; \
} \
}

Definition at line 54 of file types.h.

◆ P_VALUE_FMT

#define P_VALUE_FMT   "%4s "

Definition at line 39 of file types.h.

◆ PCHAR

#define PCHAR   (FIRST_PARAMETER_NAME - 1)

Definition at line 27 of file types.h.

◆ POL_FACETS

#define POL_FACETS   0x00000002

Definition at line 101 of file types.h.

◆ POL_HIGH_BIT

#define POL_HIGH_BIT   (UINT_MAX - (UINT_MAX >> 1))

Definition at line 65 of file types.h.

◆ POL_INEQUALITIES

#define POL_INEQUALITIES   0x00000001

Definition at line 100 of file types.h.

◆ POL_INTEGER

#define POL_INTEGER   (POL_HIGH_BIT | 0x0002)

Definition at line 67 of file types.h.

◆ POL_ISSET

#define POL_ISSET (   flags,
 
)    ((flags & f) == f)

Definition at line 68 of file types.h.

◆ POL_NO_DUAL

#define POL_NO_DUAL   (POL_HIGH_BIT | 0x0001)

Definition at line 66 of file types.h.

◆ POL_POINTS

#define POL_POINTS   0x00000004

Definition at line 102 of file types.h.

◆ POL_VALID

#define POL_VALID   0x00000010

Definition at line 107 of file types.h.

◆ POL_VERTICES

#define POL_VERTICES   0x00000008

Definition at line 103 of file types.h.

◆ POLY_UNION_OR_STRUCT

#define POLY_UNION_OR_STRUCT   union

Definition at line 170 of file types.h.

◆ TOP

#define TOP   ((int)(MSB - 1))

Definition at line 51 of file types.h.

◆ UB_INFINITY

#define UB_INFINITY   2

Definition at line 44 of file types.h.

◆ universeQ

#define universeQ (   P)    (P->Dimension == P->NbBid)

Definition at line 123 of file types.h.

Typedef Documentation

◆ enode

typedef struct _enode enode

◆ Enumeration

typedef struct _enumeration Enumeration

◆ evalue

typedef struct _evalue evalue

◆ Interval

typedef struct interval Interval

◆ Lattice

typedef Matrix Lattice

Definition at line 219 of file types.h.

◆ LatticeUnion

typedef struct LatticeUnion LatticeUnion

◆ Matrix

typedef struct matrix Matrix

◆ Param_Domain

typedef struct _Param_Domain Param_Domain

◆ Param_Polyhedron

◆ Param_Vertices

typedef struct _Param_Vertex Param_Vertices

◆ Polyhedron

typedef struct polyhedron Polyhedron

◆ ZPolyhedron

typedef struct ZPolyhedron ZPolyhedron

Enumeration Type Documentation

◆ Bool

enum Bool
Enumerator
False 
True 

Definition at line 218 of file types.h.

◆ enode_type

enum enode_type
Enumerator
polynomial 
periodic 
evector 

Definition at line 165 of file types.h.

Variable Documentation

◆ Pol_status