00001 #ifndef _ehrhart_H_
00002 #define _ehrhart_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ALL_OVERFLOW_WARNINGS
00013 extern int overflow_warning_flag;
00014 #endif
00015
00016 #if defined(__cplusplus)
00017 extern "C" {
00018 #endif
00019
00020 extern void count_points ( int pos, Polyhedron *P, Value *context, Value *res );
00021 extern void eadd ( evalue *e1, evalue *res );
00022 extern enode *ecopy ( enode *e );
00023 extern void edot ( enode *v1, enode *v2, evalue *res );
00024 extern enode *new_enode( enode_type type,int size, int pos );
00025 extern void free_evalue_refs ( evalue *e );
00026 extern Enumeration *Polyhedron_Enumerate(Polyhedron *P, Polyhedron *C,
00027 unsigned MAXRAYS, const char **pname);
00028 extern void print_enode(FILE *DST, enode *p, const char **pname);
00029 extern void print_evalue(FILE *DST, evalue *e, const char **pname);
00030 extern void reduce_evalue (evalue *e);
00031 extern void Enumeration_Free(Enumeration *en);
00032 extern Enumeration *Ehrhart_Quick_Apx(Matrix * M, Matrix * C,
00033 Matrix ** Validity_Lattice,
00034 unsigned MAXRAYS);
00035 extern Enumeration * Enumeration_zero(unsigned int nbParms,
00036 unsigned int maxRays);
00037
00038 #if defined(__cplusplus)
00039 }
00040 #endif
00041
00042 #endif