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