polylib: types.h File Reference

# types.h File Reference

`#include <gmp.h>`
`#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
## Defines
#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) { if (!((b)>>=1)) { (b)=MSB; (j)++; } }
#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)
#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)
#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
## Enumerations
enum | enode_type { polynomial, periodic, evector }
enum | Bool { False = 0, True = 1 }
## Variables
int | Pol_status

## Define Documentation

#define emptyQ | ( | P |  | ) |

Value:

    ((F_ISSET(P, POL_INEQUALITIES) && P->NbEq > P->Dimension) ||    \
             (F_ISSET(P, POL_POINTS) && P->NbRays == 0))

Definition at line 134 of file types.h.

Referenced by Add_CEqualities(), AddPolyToDomain(), Compute_PDomains(), count_points(), Disjoint_Domain(), Domain_Enumerate(), DomainConstraintSimplify(), DomainDifference(), DomainSimplify(), Ehrhart_Quick_Apx_Full_Dim(), eliminable_vars(), Enumerate_NoParameters(), Find_m_faces(), FindHermiteBasisofDomain(), FindSimple(), isEmptyZPolyhedron(), PDomainDifference(), Polyhedron2Param_Domain(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess(), PolyhedronLTQ(), SimplifyConstraints(), Stras_DomainSimplify(), ZDomainSimplify(), ZPolyhedronDifference(), ZPolyhedronImage(), ZPolyhedronIncludes(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().

#define END_FORALL_PVertex_in_ParamPolyhedron

Value:

    }                                \
                  NEXT(_ix, _bx);                  \
          }                                        \
    }

Definition at line 173 of file types.h.

Referenced by main().

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

Definition at line 106 of file types.h.

Referenced by p_simplify_constraints().

#define F_INIT | ( | p,
|  | f |  | ) | FL_INIT((p)->flags, f)

Definition at line 104 of file types.h.

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

Definition at line 107 of file types.h.

Referenced by align_context(), Polyhedron_Compute_Dual(), and Polyhedron_Remove_parm_eqs().

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

Definition at line 105 of file types.h.

Referenced by Constraints2Polyhedron(), Empty_Polyhedron(), Remove_Redundants(), and Universe_Polyhedron().

#define FIRST_PARAMETER_NAME 'P'

Definition at line 44 of file types.h.

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

Definition at line 101 of file types.h.

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

Definition at line 99 of file types.h.

Referenced by Polyhedron_Remove_parm_eqs().

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

Definition at line 102 of file types.h.

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

Definition at line 100 of file types.h.

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

Definition at line 165 of file types.h.

Referenced by main().

#define FOREVER for(;;)

Definition at line 248 of file types.h.

Referenced by main().

#define LB_INFINITY 1

Definition at line 65 of file types.h.

Referenced by cherche_min(), lower_upper_bounds(), and P_Enum().

#define MAXNOOFRAYS 200

Definition at line 50 of file types.h.

Referenced by AddZPolytoZDomain(), CanonicalForm(), FindHermiteBasisofDomain(), IntegraliseLattice(), ZDomainSimplify(), ZPolyhedronDifference(), ZPolyhedronImage(), ZPolyhedronIncludes(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().

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

Definition at line 70 of file types.h.

Referenced by addToFilter(), BuildSat(), Chernikova(), Compute_PDomains(), DomainSimplify(), FindSimple(), int_array2bit_vector(), Poly2Sat(), Remove_Redundants(), Scan_Vertices(), SimplifyEqualities(), Stras_DomainSimplify(), traite_m_face(), and TransformSat().

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

Definition at line 76 of file types.h.

Referenced by addToFilter(), BuildSat(), Chernikova(), Compute_PDomains(), DomainSimplify(), FindSimple(), int_array2bit_vector(), Poly2Sat(), Remove_Redundants(), Scan_Vertices(), SimplifyEqualities(), Stras_DomainSimplify(), traite_m_face(), and TransformSat().

#define P_VALUE_FMT "%4s "

Definition at line 61 of file types.h.

Referenced by AffConstraints(), AffContraintes(), check_poly(), cherche_min(), Chernikova(), Compute_PDomains(), ComputeNPLinesRays(), count_points(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), Enumerate_NoParameters(), Find_m_faces(), main(), Matrix_Print(), P_Enum(), Polyhedron_Enumerate(), Polyhedron_Image_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), PolyhedronLTQ(), PreElim_Columns(), scan_m_face(), test_Constraints_fullDimensionize(), traite_m_face(), and Vector_Print().

#define PCHAR (FIRST_PARAMETER_NAME-1)

Definition at line 49 of file types.h.

Referenced by Read_ParamNames().

#define POL_FACETS 0x00000002

Definition at line 117 of file types.h.

Referenced by Empty_Polyhedron(), p_simplify_constraints(), Polyhedron_Compute_Dual(), Remove_Redundants(), and Universe_Polyhedron().

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

Definition at line 81 of file types.h.

#define POL_INEQUALITIES 0x00000001

Definition at line 116 of file types.h.

Referenced by align_context(), Constraints2Polyhedron(), Empty_Polyhedron(), Polyhedron_Compute_Dual(), Polyhedron_Remove_parm_eqs(), Remove_Redundants(), and Universe_Polyhedron().

#define POL_INTEGER (POL_HIGH_BIT | 0x0002)

Definition at line 83 of file types.h.

Referenced by Constraints2Polyhedron().

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

Definition at line 84 of file types.h.

Referenced by AddConstraints(), AddRays(), Constraints2Polyhedron(), p_simplify_constraints(), Polyhedron_Enumerate(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().

#define POL_NO_DUAL (POL_HIGH_BIT | 0x0001)

Definition at line 82 of file types.h.

Referenced by AddConstraints(), AddRays(), Constraints2Polyhedron(), LexSmaller(), main(), p_simplify_constraints(), Polyhedron_Enumerate(), Polyhedron_Remove_parm_eqs(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().

#define POL_POINTS 0x00000004

Definition at line 118 of file types.h.

Referenced by align_context(), Empty_Polyhedron(), p_simplify_constraints(), Remove_Redundants(), and Universe_Polyhedron().

#define POL_VALID 0x00000010

Definition at line 123 of file types.h.

Referenced by align_context(), Constraints2Polyhedron(), Empty_Polyhedron(), Polyhedron_Compute_Dual(), Polyhedron_Remove_parm_eqs(), Remove_Redundants(), and Universe_Polyhedron().

#define POL_VERTICES 0x00000008

Definition at line 119 of file types.h.

Referenced by Empty_Polyhedron(), p_simplify_constraints(), Polyhedron_Compute_Dual(), Remove_Redundants(), and Universe_Polyhedron().

#define POLY_UNION_OR_STRUCT union

Definition at line 186 of file types.h.

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

Definition at line 73 of file types.h.

#define UB_INFINITY 2

Definition at line 66 of file types.h.

Referenced by cherche_min(), lower_upper_bounds(), and P_Enum().

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

Definition at line 139 of file types.h.

## Typedef Documentation

typedef struct _enode enode

typedef struct _enumeration Enumeration

typedef struct _evalue evalue

typedef struct interval Interval

typedef Matrix Lattice

Definition at line 235 of file types.h.

typedef struct matrix Matrix

typedef struct _Param_Domain Param_Domain

typedef struct _Param_Polyhedron Param_Polyhedron

typedef struct _Param_Vertex Param_Vertices

typedef struct polyhedron Polyhedron

## Enumeration Type Documentation

enum Bool

Enumerator:

  False |
  True |

Definition at line 234 of file types.h.

enum enode_type

Enumerator:

  polynomial |
  periodic |
  evector |

Definition at line 181 of file types.h.

## Variable Documentation

int Pol_status

Definition at line 89 of file polyhedron.c.