00001
00002
00003
00004
00005
00006
00007 #ifndef _polyparam_H_
00008 #define _polyparam_H_
00009 #if (defined(__STDC__) || defined(__cplusplus))
00010
00011 #if defined(__cplusplus)
00012 extern "C" {
00013 #endif
00014
00015 extern void Compute_PDomains ( Param_Domain *PD, int nb_domains, int
00016 working_space );
00017 extern Param_Polyhedron *GenParamPolyhedron (Polyhedron *Pol);
00018 extern void Param_Domain_Free (Param_Domain *PD);
00019 extern void Param_Polyhedron_Free ( Param_Polyhedron *P );
00020 extern void Param_Vertices_Free ( Param_Vertices *PV );
00021 extern void Param_Vertices_Print ( FILE *DST, Param_Vertices *PV,
00022 char **param_names );
00023 extern Polyhedron *PDomainDifference ( Polyhedron *Pol1, Polyhedron
00024 *Pol2, unsigned NbMaxRays );
00025 extern Polyhedron *PDomainIntersection ( Polyhedron *Pol1, Polyhedron
00026 *Pol2, unsigned NbMaxRays );
00027 extern Param_Polyhedron *Polyhedron2Param_Domain ( Polyhedron *Din,
00028 Polyhedron *Cin, int
00029 working_space );
00030 extern Param_Polyhedron *Polyhedron2Param_SimplifiedDomain (
00031 Polyhedron **Din, Polyhedron *Cin, int working_space,
00032 Polyhedron **CEq, Matrix **CT );
00033 extern Param_Polyhedron *Polyhedron2Param_Vertices ( Polyhedron *Din,
00034 Polyhedron *Cin, int
00035 working_space );
00036 extern void Print_Domain ( FILE *DST, Polyhedron *D, char **param_names );
00037 extern void Print_Vertex ( FILE *DST, Matrix *V, char **param_names );
00038 extern Matrix *VertexCT( Matrix *V, Matrix *CT );
00039 void Param_Polyhedron_Scale_Integer(Param_Polyhedron *PP, Polyhedron **P,
00040 Value *det, unsigned MaxRays);
00041
00042 #if defined(__cplusplus)
00043 }
00044 #endif
00045
00046 #else
00047
00048 extern void Compute_PDomains (
00049 );
00050 extern Param_Polyhedron *GenParamPolyhedron ();
00051 extern void Param_Domain_Free ();
00052 extern void Param_Polyhedron_Free ();
00053 extern void Param_Vertices_Free ();
00054 extern void Param_Vertices_Print (
00055 );
00056 extern Polyhedron *PDomainDifference (
00057 );
00058 extern Polyhedron *PDomainIntersection (
00059 );
00060 extern Param_Polyhedron *Polyhedron2Param_Domain (
00061
00062 );
00063 extern Param_Polyhedron *Polyhedron2Param_SimplifiedDomain (
00064
00065 );
00066 extern Param_Polyhedron *Polyhedron2Param_Vertices (
00067
00068 );
00069 extern void Print_Domain ();
00070 extern void Print_Vertex ();
00071 extern Matrix *VertexCT();
00072
00073 #endif
00074 #endif