1 #ifndef SECTION_ARRAY_H
2 #define SECTION_ARRAY_H
3
4 #include <barvinok/evalue.h>
5
6 #define REALLOCN(ptr,type,n) (type*)realloc(ptr, (n) * sizeof(type))
7
8 struct evalue_section_array {
9 struct evalue_section *s;
10 int size;
11 int ns;
12 };
13
evalue_section_array_init(struct evalue_section_array * sections)14 static void evalue_section_array_init(struct evalue_section_array *sections)
15 {
16 sections->size = 0;
17 sections->ns = 0;
18 sections->s = NULL;
19 }
20
evalue_section_array_ensure(struct evalue_section_array * sections,int size)21 static void evalue_section_array_ensure(struct evalue_section_array *sections,
22 int size)
23 {
24 if (size <= sections->size)
25 return;
26
27 sections->size = size + 32;
28 sections->s = REALLOCN(sections->s, struct evalue_section, sections->size);
29 }
30
evalue_section_array_add(struct evalue_section_array * sections,Polyhedron * D,evalue * e)31 static void evalue_section_array_add(struct evalue_section_array *sections,
32 Polyhedron *D, evalue *e)
33 {
34 sections->s[sections->ns].E = e;
35 sections->s[sections->ns].D = D;
36 ++sections->ns;
37 }
38
39 #endif
40