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