Main Page | Class List | File List | Class Members | File Members

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

Functions

void traite_m_face ()
void scan_m_face ()
PolyhedronPDomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
PolyhedronPDomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
int TestRank (Matrix *Mat)
SatMatrixSMAlloc (int rows, int cols)
void SMPrint (SatMatrix *matrix)
void SMFree (SatMatrix *matrix)
PolyhedronAdd_CEqualities (Polyhedron *D)
void traite_m_face (Polyhedron *D, unsigned int *mf)
int count_sat (unsigned int *mf)
void scan_m_face (int pos, int nb_un, Polyhedron *D, unsigned int *mf)
SatMatrixPoly2Sat (Polyhedron *Pol, unsigned int **L)
Param_PolyhedronGenParamPolyhedron (Polyhedron *Pol)
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, char **param_names)
MatrixVertexCT (Matrix *V, Matrix *CT)
void Print_Domain (FILE *DST, Polyhedron *D, char **pname)
void Param_Vertices_Print (FILE *DST, Param_Vertices *PV, 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)

Variables

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


Function Documentation

Polyhedron* Add_CEqualities Polyhedron D  )  [static]
 

Definition at line 292 of file polyparam.c.

References AddConstraints(), CEqualities, polyhedron::Constraint, Domain_Free(), emptyQ, polyhedron::NbConstraints, polyhedron::next, Polyhedron, Polyhedron_Copy(), and ws.

Referenced by Polyhedron2Param_Domain(), and traite_m_face().

void Compute_PDomains Param_Domain PD,
int  nb_domains,
int  working_space
 

Definition at line 1239 of file polyparam.c.

References _Param_Domain::Domain, Domain_Free(), emptyQ, _Param_Domain::F, MSB, polyhedron::NbEq, NEXT, _Param_Domain::next, P_VALUE_FMT, Param_Domain, PDomainDifference(), PDomainIntersection(), Polyhedron, and Polyhedron_Print().

int count_sat unsigned int *  mf  )  [static]
 

Definition at line 500 of file polyparam.c.

References cntbit, and nr.

Referenced by scan_m_face().

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

Definition at line 894 of file polyparam.c.

References polyhedron::Constraint, Constraints2Polyhedron(), Matrix, Matrix_Alloc(), Matrix_Free(), Matrix_Print(), matrix::NbColumns, polyhedron::NbEq, matrix::NbRows, matrix::p, P_VALUE_FMT, Polyhedron, Polyhedron2Constraints(), Polyhedron_Print(), Value, value_assign, value_clear, value_init, value_multiply, value_notzero_p, value_substract, and ws.

Referenced by Find_m_faces().

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

Definition at line 958 of file polyparam.c.

References align_context(), CEqualities, polyhedron::Constraint, Constraints2Polyhedron(), CTest, _Param_Polyhedron::D, polyhedron::Dimension, Domain_Free(), DomainAddRays(), DomainIntersection(), DomainSimplify(), egalite, Elim_Columns(), emptyQ, GenParamPolyhedron(), KD, m, m_dim, Matrix, Matrix_Alloc(), Matrix_Free(), Matrix_Print(), n, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, nbPV, polyhedron::NbRays, _Param_Polyhedron::nbV, nr, matrix::p, P_VALUE_FMT, Param_Polyhedron, PDomains, Pi, PiInv, PiTest, Poly2Sat(), Polyhedron, Polyhedron_Free(), Polyhedron_Print(), PreElim_Columns(), PV_Result, RaysDi, Sat, scan_m_face(), SMFree(), SMPrint(), Universe_Polyhedron(), _Param_Polyhedron::V, value_assign, value_notzero_p, value_set_si, Vector_Copy(), Vector_Set(), ws, and Xi.

Referenced by Polyhedron2Param_Domain(), Polyhedron2Param_SimplifiedDomain(), and Polyhedron2Param_Vertices().

Param_Polyhedron* GenParamPolyhedron Polyhedron Pol  ) 
 

Definition at line 752 of file polyparam.c.

References _Param_Polyhedron::D, _Param_Domain::Domain, _Param_Vertex::Domain, _Param_Domain::F, Matrix, Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, _Param_Polyhedron::nbV, _Param_Domain::next, _Param_Vertex::next, matrix::p, Param_Domain, Param_Polyhedron, Param_Vertices, Polyhedron, Polyhedron2Rays(), Universe_Polyhedron(), _Param_Polyhedron::V, value_assign, value_notone_p, value_set_si, value_zero_p, and _Param_Vertex::Vertex.

void Param_Domain_Free Param_Domain PD  ) 
 

Definition at line 1709 of file polyparam.c.

References _Param_Domain::Domain, Domain_Free(), _Param_Domain::F, _Param_Domain::next, and Param_Domain.

void Param_Polyhedron_Free Param_Polyhedron P  ) 
 

Definition at line 1726 of file polyparam.c.

References _Param_Polyhedron::D, Param_Domain_Free(), Param_Polyhedron, Param_Vertices_Free(), and _Param_Polyhedron::V.

void Param_Vertices_Free Param_Vertices PV  ) 
 

Definition at line 1440 of file polyparam.c.

References _Param_Vertex::Domain, Matrix_Free(), _Param_Vertex::next, Param_Vertices, and _Param_Vertex::Vertex.

void Param_Vertices_Print FILE *  DST,
Param_Vertices PV,
char **  param_names
 

Definition at line 1609 of file polyparam.c.

References Constraints2Polyhedron(), _Param_Vertex::Domain, Domain_Free(), _Param_Vertex::next, Param_Vertices, Polyhedron, Print_Domain(), Print_Vertex(), and _Param_Vertex::Vertex.

Polyhedron* PDomainDifference Polyhedron Pol1,
Polyhedron Pol2,
unsigned  NbMaxRays
 

Definition at line 86 of file polyparam.c.

References AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Domain_Free(), emptyQ, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::next, Polyhedron, Polyhedron_Free(), and SubConstraint().

Polyhedron* PDomainIntersection Polyhedron Pol1,
Polyhedron Pol2,
unsigned  NbMaxRays
 

Definition at line 50 of file polyparam.c.

References AddConstraints(), AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::next, Polyhedron, and Polyhedron_Free().

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

Definition at line 699 of file polyparam.c.

References polyhedron::Constraint, polyhedron::Dimension, MSB, polyhedron::NbConstraints, polyhedron::NbRays, NEXT, nr, SatMatrix::p, SatMatrix::p_init, Polyhedron, polyhedron::Ray, Sat, SMAlloc(), Value, value_addto, value_clear, value_init, value_multiply, value_set_si, and value_zero_p.

Referenced by Find_m_faces().

Param_Polyhedron* Polyhedron2Param_Domain Polyhedron Din,
Polyhedron Cin,
int  working_space
 

Definition at line 1634 of file polyparam.c.

References Add_CEqualities(), CEqualities, Compute_PDomains(), _Param_Polyhedron::D, polyhedron::Dimension, _Param_Domain::Domain, Find_m_faces(), _Param_Polyhedron::nbV, _Param_Domain::next, Param_Domain, Param_Polyhedron, and Polyhedron.

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

Definition at line 1670 of file polyparam.c.

References Compute_PDomains(), _Param_Polyhedron::D, polyhedron::Dimension, Find_m_faces(), Matrix, _Param_Polyhedron::nbV, Param_Polyhedron, and Polyhedron.

Param_Polyhedron* Polyhedron2Param_Vertices Polyhedron Din,
Polyhedron Cin,
int  working_space
 

Definition at line 1414 of file polyparam.c.

References Find_m_faces(), _Param_Polyhedron::nbV, Param_Polyhedron, and Polyhedron.

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

Definition at line 821 of file polyparam.c.

References polyhedron::Constraint, polyhedron::Dimension, m, Matrix, Matrix_Alloc(), Matrix_Print(), matrix::NbColumns, polyhedron::NbEq, matrix::NbRows, matrix::p, P_VALUE_FMT, Polyhedron, Polyhedron_Print(), value_notzero_p, value_set_si, and value_zero_p.

Referenced by Find_m_faces().

void Print_Domain FILE *  DST,
Polyhedron D,
char **  pname
 

Definition at line 1559 of file polyparam.c.

References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::next, Polyhedron, Print_Domain(), VALUE_FMT, value_mone_p, value_notzero_p, value_one_p, value_pos_p, and value_print.

void Print_Vertex FILE *  DST,
Matrix V,
char **  param_names
 

Definition at line 1456 of file polyparam.c.

References Gcd(), Matrix, matrix::NbColumns, matrix::NbRows, matrix::p, Value, value_absolute, value_clear, value_division, VALUE_FMT, value_init, value_mone_p, value_notone_p, value_notzero_p, value_posz_p, and value_print.

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

Definition at line 557 of file polyparam.c.

References polyhedron::Constraint, count_sat(), CTest, polyhedron::Dimension, egalite, m, m_dim, Matrix_Print(), n, matrix::NbColumns, polyhedron::NbConstraints, nr, matrix::p, SatMatrix::p, P_VALUE_FMT, Polyhedron, Sat, scan_m_face(), TestRank(), traite_m_face(), and value_assign.

void scan_m_face  )  [static]
 

Referenced by Find_m_faces(), and scan_m_face().

SatMatrix* SMAlloc int  rows,
int  cols
[static]
 

Definition at line 207 of file polyparam.c.

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

Referenced by BuildSat(), Constraints2Polyhedron(), FindSimple(), Poly2Sat(), Rays2Polyhedron(), and TransformSat().

void SMFree SatMatrix matrix  )  [static]
 

Definition at line 246 of file polyparam.c.

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

Referenced by AddConstraints(), AddRays(), BuildSat(), Constraints2Polyhedron(), Find_m_faces(), FindSimple(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().

void SMPrint SatMatrix matrix  )  [static]
 

Definition at line 230 of file polyparam.c.

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

Referenced by Chernikova(), Constraints2Polyhedron(), Find_m_faces(), and Rays2Polyhedron().

int TestRank Matrix Mat  )  [static]
 

Definition at line 129 of file polyparam.c.

References Gcd(), Matrix, matrix::NbColumns, matrix::NbRows, matrix::p, Value, value_assign, value_clear, value_division, value_init, value_multiply, value_notzero_p, value_substract, and value_zero_p.

Referenced by scan_m_face(), and traite_m_face().

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

Definition at line 321 of file polyparam.c.

References Add_CEqualities(), _Param_Domain::Domain, _Param_Vertex::Domain, _Param_Domain::F, KD, m, MatInverse(), Matrix, Matrix_Alloc(), Matrix_Print(), MSB, n, matrix::NbColumns, nbPV, polyhedron::NbRays, matrix::NbRows, _Param_Domain::next, _Param_Vertex::next, NEXT, matrix::p, P_VALUE_FMT, Param_Domain, Param_Vertices, PDomains, Pi, PiInv, PiTest, Polyhedron, Polyhedron2Constraints(), Polyhedron_Free(), Polyhedron_Print(), PV_Result, rat_prodmat(), polyhedron::Ray, Rays2Polyhedron(), RaysDi, TestRank(), value_assign, Vector_Copy(), _Param_Vertex::Vertex, ws, and Xi.

void traite_m_face  )  [static]
 

Referenced by scan_m_face().

Matrix* VertexCT Matrix V,
Matrix CT
 

Definition at line 1529 of file polyparam.c.

References Matrix, Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, value_notzero_p, and value_set_si.


Variable Documentation

Polyhedron* CEqualities [static]
 

Definition at line 266 of file polyparam.c.

Referenced by Add_CEqualities(), Find_m_faces(), and Polyhedron2Param_Domain().

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 479 of file polyparam.c.

Referenced by count_sat().

Matrix* CTest [static]
 

Definition at line 271 of file polyparam.c.

Referenced by Find_m_faces(), and scan_m_face().

int* egalite [static]
 

Definition at line 268 of file polyparam.c.

Referenced by Find_m_faces(), and scan_m_face().

int KD [static]
 

Definition at line 276 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

int m [static]
 

Definition at line 260 of file polyparam.c.

Referenced by Find_m_faces(), PreElim_Columns(), scan_m_face(), and traite_m_face().

int m_dim [static]
 

Definition at line 261 of file polyparam.c.

Referenced by Find_m_faces(), and scan_m_face().

int n [static]
 

Definition at line 262 of file polyparam.c.

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

int nbPV [static]
 

Definition at line 279 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

int nr [static]
 

Definition at line 264 of file polyparam.c.

Referenced by count_sat(), Find_m_faces(), Poly2Sat(), and scan_m_face().

Param_Domain* PDomains [static]
 

Definition at line 281 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

Matrix * Pi [static]
 

Definition at line 269 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

Matrix* PiInv [static]
 

Definition at line 272 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

Matrix* PiTest [static]
 

Definition at line 270 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

Param_Vertices* PV_Result [static]
 

Definition at line 280 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

Matrix* RaysDi [static]
 

Definition at line 274 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().

SatMatrix* Sat [static]
 

Definition at line 267 of file polyparam.c.

Referenced by Find_m_faces(), Poly2Sat(), and scan_m_face().

int ws [static]
 

Definition at line 263 of file polyparam.c.

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

Matrix* Xi [static]
 

Definition at line 269 of file polyparam.c.

Referenced by Find_m_faces(), and traite_m_face().


Generated on Mon Sep 12 14:48:30 2005 for polylib by doxygen 1.3.5