polyparam.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <polylib/polylib.h>

Go to the source code of this file.

Classes

struct  SatMatrix

Defines

#define INT_BITS   (sizeof(unsigned) * 8)

Functions

static void traite_m_face (Polyhedron *, unsigned int *, unsigned int *)
static void scan_m_face (int, int, Polyhedron *, unsigned int *)
PolyhedronPDomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
PolyhedronPDomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
static int TestRank (Matrix *Mat)
static SatMatrixSMAlloc (int rows, int cols)
static void SMPrint (SatMatrix *matrix)
static void SMFree (SatMatrix *matrix)
static PolyhedronAdd_CEqualities (Polyhedron *D)
unsigned int * int_array2bit_vector (unsigned int *array, int n)
static int count_sat (unsigned int *mf)
static int bit_vector_includes (unsigned int *bv, int len, unsigned int *part)
static SatMatrixPoly2Sat (Polyhedron *Pol, unsigned int **L)
Param_PolyhedronGenParamPolyhedron (Polyhedron *Pol, Matrix *Rays)
MatrixPreElim_Columns (Polyhedron *E, int *p, int *ref, int m)
PolyhedronElim_Columns (Polyhedron *A, Polyhedron *E, int *p, int *ref)
Param_PolyhedronFind_m_faces (Polyhedron **Di, Polyhedron *C, int keep_dom, int working_space, Polyhedron **CEq, Matrix **CT)
void Compute_PDomains (Param_Domain *PD, int nb_domains, int working_space)
Param_PolyhedronPolyhedron2Param_Vertices (Polyhedron *Din, Polyhedron *Cin, int working_space)
void Param_Vertices_Free (Param_Vertices *PV)
void Print_Vertex (FILE *DST, Matrix *V, const char **param_names)
MatrixVertexCT (Matrix *V, Matrix *CT)
void Print_Domain (FILE *DST, Polyhedron *D, const char **pname)
void Param_Vertices_Print (FILE *DST, Param_Vertices *PV, const char **param_names)
Param_PolyhedronPolyhedron2Param_Domain (Polyhedron *Din, Polyhedron *Cin, int working_space)
Param_PolyhedronPolyhedron2Param_SimplifiedDomain (Polyhedron **Din, Polyhedron *Cin, int working_space, Polyhedron **CEq, Matrix **CT)
void Param_Domain_Free (Param_Domain *PD)
void Param_Polyhedron_Free (Param_Polyhedron *P)
void Param_Polyhedron_Scale_Integer (Param_Polyhedron *PP, Polyhedron **P, Value *det, unsigned MaxRays)

Variables

static int m
static int m_dim
static int n
static int ws
static int nr
static PolyhedronCEqualities
static SatMatrixSat
static unsigned int * egalite
static MatrixXi
static MatrixPi
static MatrixPiTest
static MatrixCTest
static MatrixPiInv
static MatrixRaysDi
static int KD
static int nbPV
static Param_VerticesPV_Result
static Param_DomainPDomains
int cntbit [256]


Define Documentation

#define INT_BITS   (sizeof(unsigned) * 8)

Definition at line 322 of file polyparam.c.

Referenced by int_array2bit_vector().


Function Documentation

static Polyhedron* Add_CEqualities ( Polyhedron D  )  [static]

static int bit_vector_includes ( unsigned int *  bv,
int  len,
unsigned int *  part 
) [static]

Definition at line 542 of file polyparam.c.

Referenced by scan_m_face().

void Compute_PDomains ( Param_Domain PD,
int  nb_domains,
int  working_space 
)

static int count_sat ( unsigned int *  mf  )  [static]

Definition at line 525 of file polyparam.c.

References cntbit, and nr.

Referenced by scan_m_face().

Polyhedron* Elim_Columns ( Polyhedron A,
Polyhedron E,
int *  p,
int *  ref 
)

Param_Polyhedron* Find_m_faces ( Polyhedron **  Di,
Polyhedron C,
int  keep_dom,
int  working_space,
Polyhedron **  CEq,
Matrix **  CT 
)

Param_Polyhedron* GenParamPolyhedron ( Polyhedron Pol,
Matrix Rays 
)

unsigned int* int_array2bit_vector ( unsigned int *  array,
int  n 
)

Definition at line 324 of file polyparam.c.

References assert, INT_BITS, MSB, and NEXT.

Referenced by traite_m_face().

void Param_Domain_Free ( Param_Domain PD  ) 

void Param_Polyhedron_Free ( Param_Polyhedron P  ) 

void Param_Polyhedron_Scale_Integer ( Param_Polyhedron PP,
Polyhedron **  P,
Value *  det,
unsigned  MaxRays 
)

void Param_Vertices_Free ( Param_Vertices PV  ) 

void Param_Vertices_Print ( FILE *  DST,
Param_Vertices PV,
const char **  param_names 
)

Polyhedron* PDomainDifference ( Polyhedron Pol1,
Polyhedron Pol2,
unsigned  NbMaxRays 
)

Polyhedron* PDomainIntersection ( Polyhedron Pol1,
Polyhedron Pol2,
unsigned  NbMaxRays 
)

static SatMatrix* Poly2Sat ( Polyhedron Pol,
unsigned int **  L 
) [static]

Param_Polyhedron* Polyhedron2Param_Domain ( Polyhedron Din,
Polyhedron Cin,
int  working_space 
)

Param_Polyhedron* Polyhedron2Param_SimplifiedDomain ( Polyhedron **  Din,
Polyhedron Cin,
int  working_space,
Polyhedron **  CEq,
Matrix **  CT 
)

Param_Polyhedron* Polyhedron2Param_Vertices ( Polyhedron Din,
Polyhedron Cin,
int  working_space 
)

Definition at line 1527 of file polyparam.c.

References Find_m_faces(), _Param_Polyhedron::nbV, POL_ENSURE_FACETS, and POL_ENSURE_VERTICES.

Referenced by main().

Matrix* PreElim_Columns ( Polyhedron E,
int *  p,
int *  ref,
int  m 
)

void Print_Domain ( FILE *  DST,
Polyhedron D,
const char **  pname 
)

void Print_Vertex ( FILE *  DST,
Matrix V,
const char **  param_names 
)

static void scan_m_face ( int  pos,
int  nb_un,
Polyhedron D,
unsigned int *  mf 
) [static]

static SatMatrix* SMAlloc ( int  rows,
int  cols 
) [static]

Definition at line 212 of file polyparam.c.

References assert, SatMatrix::NbColumns, SatMatrix::NbRows, SatMatrix::p, p, and SatMatrix::p_init.

static void SMFree ( SatMatrix matrix  )  [static]

Definition at line 251 of file polyparam.c.

References SatMatrix::p, and SatMatrix::p_init.

static void SMPrint ( SatMatrix matrix  )  [static]

Definition at line 235 of file polyparam.c.

References SatMatrix::NbColumns, SatMatrix::NbRows, SatMatrix::p, and p.

static int TestRank ( Matrix Mat  )  [static]

static void traite_m_face ( Polyhedron D,
unsigned int *  mf,
unsigned int *  egalite 
) [static]

Matrix* VertexCT ( Matrix V,
Matrix CT 
)


Variable Documentation

Definition at line 271 of file polyparam.c.

int cntbit[256]

Initial value:

 {                              
0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,

1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,

1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,

2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 }

Definition at line 504 of file polyparam.c.

Referenced by count_sat().

Matrix* CTest [static]

Definition at line 276 of file polyparam.c.

unsigned int* egalite [static]

Definition at line 273 of file polyparam.c.

Referenced by Find_m_faces(), and scan_m_face().

int KD [static]

Definition at line 281 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

int m [static]

Definition at line 265 of file polyparam.c.

Referenced by Chernikova(), compute_enode(), Find_m_faces(), main(), scan_m_face(), and traite_m_face().

int m_dim [static]

Definition at line 266 of file polyparam.c.

Referenced by Find_m_faces(), and scan_m_face().

int n [static]

int nbPV [static]

Definition at line 284 of file polyparam.c.

Referenced by Find_m_faces(), main(), and traite_m_face().

int nr [static]

Definition at line 286 of file polyparam.c.

Matrix * Pi [static]

Definition at line 274 of file polyparam.c.

Matrix* PiInv [static]

Definition at line 277 of file polyparam.c.

Matrix* PiTest [static]

Definition at line 275 of file polyparam.c.

Definition at line 285 of file polyparam.c.

Matrix* RaysDi [static]

Definition at line 279 of file polyparam.c.

SatMatrix* Sat [static]

int ws [static]

Definition at line 268 of file polyparam.c.

Referenced by Add_CEqualities(), Elim_Columns(), Find_m_faces(), and traite_m_face().

Matrix* Xi [static]

Definition at line 274 of file polyparam.c.


Generated on Wed Jul 2 16:22:48 2008 for polylib by  doxygen 1.5.6