1 #ifndef _newgen_compsec_included
2 #define _newgen_compsec_included
3 #define _gen_compsec_start 154
10 #if !defined(_newgen_reference_domain_defined_)
11 #define _newgen_reference_domain_defined_
12 #define REFERENCE_NEWGEN_DOMAIN (reference_domain)
13 #define reference_NEWGEN_DOMAIN (reference_domain)
17 #if !defined(_newgen_action_domain_defined_)
18 #define _newgen_action_domain_defined_
19 #define ACTION_NEWGEN_DOMAIN (action_domain)
20 #define action_NEWGEN_DOMAIN (action_domain)
24 #if !defined(_newgen_Pvecteur_domain_defined_)
25 #define _newgen_Pvecteur_domain_defined_
26 #define newgen_Pvecteur(p) (p)
27 #define PVECTEUR_NEWGEN_EXTERNAL (_gen_compsec_start+0)
28 #define PVECTEUR_NEWGEN_DOMAIN (PVECTEUR_NEWGEN_EXTERNAL)
29 #define Pvecteur_NEWGEN_DOMAIN (PVECTEUR_NEWGEN_EXTERNAL)
32 #define bound_pair_domain (_gen_compsec_start+1)
33 #if !defined(_newgen_bound_pair_domain_defined_)
34 #define _newgen_bound_pair_domain_defined_
35 #define BOUND_PAIR_NEWGEN_DOMAIN (bound_pair_domain)
36 #define bound_pair_NEWGEN_DOMAIN (bound_pair_domain)
40 #define comp_desc_domain (_gen_compsec_start+2)
41 #if !defined(_newgen_comp_desc_domain_defined_)
42 #define _newgen_comp_desc_domain_defined_
43 #define COMP_DESC_NEWGEN_DOMAIN (comp_desc_domain)
44 #define comp_desc_NEWGEN_DOMAIN (comp_desc_domain)
48 #define comp_desc_set_domain (_gen_compsec_start+3)
49 #if !defined(_newgen_comp_desc_set_domain_defined_)
50 #define _newgen_comp_desc_set_domain_defined_
51 #define COMP_DESC_SET_NEWGEN_DOMAIN (comp_desc_set_domain)
52 #define comp_desc_set_NEWGEN_DOMAIN (comp_desc_set_domain)
56 #define comp_sec_domain (_gen_compsec_start+4)
57 #if !defined(_newgen_comp_sec_domain_defined_)
58 #define _newgen_comp_sec_domain_defined_
59 #define COMP_SEC_NEWGEN_DOMAIN (comp_sec_domain)
60 #define comp_sec_NEWGEN_DOMAIN (comp_sec_domain)
64 #define context_info_domain (_gen_compsec_start+5)
65 #if !defined(_newgen_context_info_domain_defined_)
66 #define _newgen_context_info_domain_defined_
67 #define CONTEXT_INFO_NEWGEN_DOMAIN (context_info_domain)
68 #define context_info_NEWGEN_DOMAIN (context_info_domain)
72 #define dad_struct_domain (_gen_compsec_start+6)
73 #if !defined(_newgen_dad_struct_domain_defined_)
74 #define _newgen_dad_struct_domain_defined_
75 #define DAD_STRUCT_NEWGEN_DOMAIN (dad_struct_domain)
76 #define dad_struct_NEWGEN_DOMAIN (dad_struct_domain)
80 #define ref_temp_domain (_gen_compsec_start+7)
81 #if !defined(_newgen_ref_temp_domain_defined_)
82 #define _newgen_ref_temp_domain_defined_
83 #define REF_TEMP_NEWGEN_DOMAIN (ref_temp_domain)
84 #define ref_temp_NEWGEN_DOMAIN (ref_temp_domain)
88 #define rtype_domain (_gen_compsec_start+8)
89 #if !defined(_newgen_rtype_domain_defined_)
90 #define _newgen_rtype_domain_defined_
91 #define RTYPE_NEWGEN_DOMAIN (rtype_domain)
92 #define rtype_NEWGEN_DOMAIN (rtype_domain)
96 #define simple_section_domain (_gen_compsec_start+9)
97 #if !defined(_newgen_simple_section_domain_defined_)
98 #define _newgen_simple_section_domain_defined_
99 #define SIMPLE_SECTION_NEWGEN_DOMAIN (simple_section_domain)
100 #define simple_section_NEWGEN_DOMAIN (simple_section_domain)
107 #define BOUND_PAIR(x) ((bound_pair)((x).p))
108 #define bound_pair_CAST(x) BOUND_PAIR(x)
109 #define BOUND_PAIR_CAST(x) BOUND_PAIR(x)
110 #define BOUND_PAIR_(x) ((x).e)
111 #define BOUND_PAIR_TYPE bound_pair
112 #define bound_pair_TYPE bound_pair
113 #define bound_pair_undefined ((bound_pair)gen_chunk_undefined)
114 #define bound_pair_undefined_p(x) ((x)==bound_pair_undefined)
121 #define gen_BOUND_PAIR_cons gen_bound_pair_cons
136 #define bound_pair_domain_number(x) ((x)->_type_)
137 #define bound_pair_index_(x) bound_pair_index(x)
138 #define bound_pair_index(x) ((x)->_bound_pair_index_)
139 #define bound_pair_lb_(x) bound_pair_lb(x)
140 #define bound_pair_lb(x) ((x)->_bound_pair_lb_)
141 #define bound_pair_ub_(x) bound_pair_ub(x)
142 #define bound_pair_ub(x) ((x)->_bound_pair_ub_)
146 #define COMP_DESC(x) ((comp_desc)((x).p))
147 #define comp_desc_CAST(x) COMP_DESC(x)
148 #define COMP_DESC_CAST(x) COMP_DESC(x)
149 #define COMP_DESC_(x) ((x).e)
150 #define COMP_DESC_TYPE comp_desc
151 #define comp_desc_TYPE comp_desc
152 #define comp_desc_undefined ((comp_desc)gen_chunk_undefined)
153 #define comp_desc_undefined_p(x) ((x)==comp_desc_undefined)
160 #define gen_COMP_DESC_cons gen_comp_desc_cons
175 #define comp_desc_domain_number(x) ((x)->_type_)
176 #define comp_desc_reference_(x) comp_desc_reference(x)
177 #define comp_desc_reference(x) ((x)->_comp_desc_reference_)
178 #define comp_desc_action_(x) comp_desc_action(x)
179 #define comp_desc_action(x) ((x)->_comp_desc_action_)
180 #define comp_desc_section_(x) comp_desc_section(x)
181 #define comp_desc_section(x) ((x)->_comp_desc_section_)
185 #define COMP_DESC_SET(x) ((comp_desc_set)((x).p))
186 #define comp_desc_set_CAST(x) COMP_DESC_SET(x)
187 #define COMP_DESC_SET_CAST(x) COMP_DESC_SET(x)
188 #define COMP_DESC_SET_(x) ((x).e)
189 #define COMP_DESC_SET_TYPE comp_desc_set
190 #define comp_desc_set_TYPE comp_desc_set
191 #define comp_desc_set_undefined ((comp_desc_set)gen_chunk_undefined)
192 #define comp_desc_set_undefined_p(x) ((x)==comp_desc_set_undefined)
199 #define gen_COMP_DESC_SET_cons gen_comp_desc_set_cons
212 #define comp_desc_set_domain_number(x) ((x)->_type_)
213 #define comp_desc_set_comp_descs(x) ((x)->_comp_desc_set_holder_)
217 #define COMP_SEC(x) ((comp_sec)((x).p))
218 #define comp_sec_CAST(x) COMP_SEC(x)
219 #define COMP_SEC_CAST(x) COMP_SEC(x)
220 #define COMP_SEC_(x) ((x).e)
221 #define COMP_SEC_TYPE comp_sec
222 #define comp_sec_TYPE comp_sec
223 #define comp_sec_undefined ((comp_sec)gen_chunk_undefined)
224 #define comp_sec_undefined_p(x) ((x)==comp_sec_undefined)
231 #define gen_COMP_SEC_cons gen_comp_sec_cons
245 #define comp_sec_domain_number(x) ((x)->_type_)
246 #define comp_sec_hull_(x) comp_sec_hull(x)
247 #define comp_sec_hull(x) ((x)->_comp_sec_hull_)
248 #define comp_sec_complements_(x) comp_sec_complements(x)
249 #define comp_sec_complements(x) ((x)->_comp_sec_complements_)
253 #define CONTEXT_INFO(x) ((context_info)((x).p))
254 #define context_info_CAST(x) CONTEXT_INFO(x)
255 #define CONTEXT_INFO_CAST(x) CONTEXT_INFO(x)
256 #define CONTEXT_INFO_(x) ((x).e)
257 #define CONTEXT_INFO_TYPE context_info
258 #define context_info_TYPE context_info
259 #define context_info_undefined ((context_info)gen_chunk_undefined)
260 #define context_info_undefined_p(x) ((x)==context_info_undefined)
267 #define gen_CONTEXT_INFO_cons gen_context_info_cons
282 #define context_info_domain_number(x) ((x)->_type_)
283 #define context_info_line_(x) context_info_line(x)
284 #define context_info_line(x) ((x)->_context_info_line_)
285 #define context_info_rank_(x) context_info_rank(x)
286 #define context_info_rank(x) ((x)->_context_info_rank_)
287 #define context_info_nest_(x) context_info_nest(x)
288 #define context_info_nest(x) ((x)->_context_info_nest_)
292 #define DAD_STRUCT(x) ((dad_struct)((x).p))
293 #define dad_struct_CAST(x) DAD_STRUCT(x)
294 #define DAD_STRUCT_CAST(x) DAD_STRUCT(x)
295 #define DAD_STRUCT_(x) ((x).e)
296 #define DAD_STRUCT_TYPE dad_struct
297 #define dad_struct_TYPE dad_struct
298 #define dad_struct_undefined ((dad_struct)gen_chunk_undefined)
299 #define dad_struct_undefined_p(x) ((x)==dad_struct_undefined)
306 #define gen_DAD_STRUCT_cons gen_dad_struct_cons
320 #define dad_struct_domain_number(x) ((x)->_type_)
321 #define dad_struct_rtemps_(x) dad_struct_rtemps(x)
322 #define dad_struct_rtemps(x) ((x)->_dad_struct_rtemps_)
323 #define dad_struct_shape_(x) dad_struct_shape(x)
324 #define dad_struct_shape(x) ((x)->_dad_struct_shape_)
328 #define REF_TEMP(x) ((ref_temp)((x).p))
329 #define ref_temp_CAST(x) REF_TEMP(x)
330 #define REF_TEMP_CAST(x) REF_TEMP(x)
331 #define REF_TEMP_(x) ((x).e)
332 #define REF_TEMP_TYPE ref_temp
333 #define ref_temp_TYPE ref_temp
334 #define ref_temp_undefined ((ref_temp)gen_chunk_undefined)
335 #define ref_temp_undefined_p(x) ((x)==ref_temp_undefined)
342 #define gen_REF_TEMP_cons gen_ref_temp_cons
356 #define ref_temp_domain_number(x) ((x)->_type_)
357 #define ref_temp_index_(x) ref_temp_index(x)
358 #define ref_temp_index(x) ((x)->_ref_temp_index_)
359 #define ref_temp_rtype_(x) ref_temp_rtype(x)
360 #define ref_temp_rtype(x) ((x)->_ref_temp_rtype_)
364 #define RTYPE(x) ((rtype)((x).p))
365 #define rtype_CAST(x) RTYPE(x)
366 #define RTYPE_CAST(x) RTYPE(x)
367 #define RTYPE_(x) ((x).e)
368 #define RTYPE_TYPE rtype
369 #define rtype_TYPE rtype
370 #define rtype_undefined ((rtype)gen_chunk_undefined)
371 #define rtype_undefined_p(x) ((x)==rtype_undefined)
378 #define gen_RTYPE_cons gen_rtype_cons
405 #define rtype_domain_number(x) ((x)->_type_)
406 #define rtype_tag(x) ((x)->_rtype_tag__)
407 #define rtype_nonlinear_p(x) (rtype_tag(x)==is_rtype_nonlinear)
408 #define rtype_nonlinear_(x) rtype_nonlinear(x)
409 #define rtype_nonlinear(x) ((x)->_rtype_union_._rtype_nonlinear_.u)
410 #define rtype_linvariant_p(x) (rtype_tag(x)==is_rtype_linvariant)
411 #define rtype_linvariant_(x) rtype_linvariant(x)
412 #define rtype_linvariant(x) ((x)->_rtype_union_._rtype_linvariant_.u)
413 #define rtype_lininvariant_p(x) (rtype_tag(x)==is_rtype_lininvariant)
414 #define rtype_lininvariant_(x) rtype_lininvariant(x)
415 #define rtype_lininvariant(x) ((x)->_rtype_union_._rtype_lininvariant_.u)
419 #define SIMPLE_SECTION(x) ((simple_section)((x).p))
420 #define simple_section_CAST(x) SIMPLE_SECTION(x)
421 #define SIMPLE_SECTION_CAST(x) SIMPLE_SECTION(x)
422 #define SIMPLE_SECTION_(x) ((x).e)
423 #define SIMPLE_SECTION_TYPE simple_section
424 #define simple_section_TYPE simple_section
425 #define simple_section_undefined ((simple_section)gen_chunk_undefined)
426 #define simple_section_undefined_p(x) ((x)==simple_section_undefined)
433 #define gen_SIMPLE_SECTION_cons gen_simple_section_cons
447 #define simple_section_domain_number(x) ((x)->_type_)
448 #define simple_section_context_(x) simple_section_context(x)
449 #define simple_section_context(x) ((x)->_simple_section_context_)
450 #define simple_section_dad_(x) simple_section_dad(x)
451 #define simple_section_dad(x) ((x)->_simple_section_dad_)
453 #define compsec_spec "\
454 --NEWGEN-START 154\n\
455 import reference from \"ri.newgen\";\n\
456 import action from \"ri.newgen\";\n\
457 external Pvecteur;\n\
458 bound_pair = index:int x lb:Pvecteur x ub:Pvecteur;\n\
459 comp_desc = persistant reference:reference x action:action x section:comp_sec;\n\
460 comp_desc_set = comp_descs:comp_desc*;\n\
461 comp_sec = hull:simple_section x complements:simple_section*;\n\
462 context_info = line:int x rank:int x nest:int;\n\
463 dad_struct = rtemps:ref_temp* x shape:bound_pair*;\n\
464 ref_temp = index:int x rtype:rtype;\n\
465 rtype = nonlinear:unit + linvariant:unit + lininvariant:unit;\n\
466 simple_section = context:context_info x dad:dad_struct;\n\
dad_struct check_dad_struct(dad_struct)
context_info copy_context_info(context_info)
CONTEXT_INFO.
context_info read_context_info(FILE *)
bool context_info_consistent_p(context_info)
bool bound_pair_consistent_p(bound_pair)
struct _newgen_struct_reference_ * reference
void write_context_info(FILE *, context_info)
bool simple_section_defined_p(simple_section)
ref_temp make_ref_temp(intptr_t, rtype)
list gen_rtype_cons(rtype, list)
rtype copy_rtype(rtype)
RTYPE.
void dad_struct_non_recursive_free(dad_struct)
void write_rtype(FILE *, rtype)
comp_desc copy_comp_desc(comp_desc)
COMP_DESC.
comp_desc_set make_comp_desc_set(list)
string rtype_tag_as_string(enum rtype_utype)
rtype make_rtype_nonlinear(void)
context_info make_context_info(intptr_t, intptr_t, intptr_t)
struct _newgen_struct_comp_desc_ * comp_desc
void context_info_assign_contents(context_info, context_info)
bound_pair copy_bound_pair(bound_pair)
BOUND_PAIR.
rtype make_rtype_linvariant(void)
bool bound_pair_defined_p(bound_pair)
void free_comp_desc_set(comp_desc_set)
void free_dad_struct(dad_struct)
bool ref_temp_defined_p(ref_temp)
struct _newgen_struct_rtype_ * rtype
bool comp_sec_consistent_p(comp_sec)
bool comp_desc_defined_p(comp_desc)
bound_pair read_bound_pair(FILE *)
void free_comp_sec(comp_sec)
comp_desc make_comp_desc(reference, action, comp_sec)
ref_temp check_ref_temp(ref_temp)
void write_comp_sec(FILE *, comp_sec)
list gen_comp_desc_cons(comp_desc, list)
struct _newgen_struct_context_info_ * context_info
void free_ref_temp(ref_temp)
void comp_desc_assign_contents(comp_desc, comp_desc)
void free_bound_pair(bound_pair)
void write_comp_desc(FILE *, comp_desc)
bool dad_struct_consistent_p(dad_struct)
struct _newgen_struct_ref_temp_ * ref_temp
comp_desc_set read_comp_desc_set(FILE *)
list gen_bound_pair_cons(bound_pair, list)
void comp_sec_non_recursive_free(comp_sec)
comp_sec copy_comp_sec(comp_sec)
COMP_SEC.
void write_simple_section(FILE *, simple_section)
comp_sec make_comp_sec(simple_section, list)
void comp_desc_set_assign_contents(comp_desc_set, comp_desc_set)
list gen_simple_section_cons(simple_section, list)
bool comp_desc_set_consistent_p(comp_desc_set)
struct _newgen_struct_comp_desc_set_ * comp_desc_set
bool ref_temp_consistent_p(ref_temp)
bool rtype_consistent_p(rtype)
struct _newgen_struct_dad_struct_ * dad_struct
void ref_temp_non_recursive_free(ref_temp)
struct _newgen_struct_bound_pair_ * bound_pair
comp_sec check_comp_sec(comp_sec)
bool comp_sec_defined_p(comp_sec)
bool comp_desc_set_defined_p(comp_desc_set)
void context_info_non_recursive_free(context_info)
struct _newgen_struct_simple_section_ * simple_section
struct _newgen_struct_action_ * action
void write_comp_desc_set(FILE *, comp_desc_set)
simple_section make_simple_section(context_info, dad_struct)
bool context_info_defined_p(context_info)
void write_ref_temp(FILE *, ref_temp)
list gen_comp_sec_cons(comp_sec, list)
bool dad_struct_defined_p(dad_struct)
bound_pair check_bound_pair(bound_pair)
comp_desc_set check_comp_desc_set(comp_desc_set)
ref_temp copy_ref_temp(ref_temp)
REF_TEMP.
void rtype_non_recursive_free(rtype)
rtype make_rtype(enum rtype_utype, void *)
list gen_context_info_cons(context_info, list)
struct _newgen_struct_comp_sec_ * comp_sec
list gen_comp_desc_set_cons(comp_desc_set, list)
comp_desc read_comp_desc(FILE *)
void comp_sec_assign_contents(comp_sec, comp_sec)
void free_context_info(context_info)
bool comp_desc_consistent_p(comp_desc)
dad_struct copy_dad_struct(dad_struct)
DAD_STRUCT.
bool simple_section_consistent_p(simple_section)
void bound_pair_non_recursive_free(bound_pair)
simple_section check_simple_section(simple_section)
void bound_pair_assign_contents(bound_pair, bound_pair)
ref_temp read_ref_temp(FILE *)
bound_pair make_bound_pair(intptr_t, Pvecteur, Pvecteur)
void write_bound_pair(FILE *, bound_pair)
void dad_struct_assign_contents(dad_struct, dad_struct)
void comp_desc_set_non_recursive_free(comp_desc_set)
void simple_section_non_recursive_free(simple_section)
dad_struct read_dad_struct(FILE *)
bool rtype_defined_p(rtype)
void ref_temp_assign_contents(ref_temp, ref_temp)
void comp_desc_non_recursive_free(comp_desc)
void write_dad_struct(FILE *, dad_struct)
simple_section copy_simple_section(simple_section)
SIMPLE_SECTION.
void free_simple_section(simple_section)
context_info check_context_info(context_info)
comp_sec read_comp_sec(FILE *)
list gen_ref_temp_cons(ref_temp, list)
void simple_section_assign_contents(simple_section, simple_section)
dad_struct make_dad_struct(list, list)
comp_desc check_comp_desc(comp_desc)
comp_desc_set copy_comp_desc_set(comp_desc_set)
COMP_DESC_SET.
rtype make_rtype_lininvariant(void)
simple_section read_simple_section(FILE *)
void rtype_assign_contents(rtype, rtype)
void free_comp_desc(comp_desc)
list gen_dad_struct_cons(dad_struct, list)
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
intptr_t _bound_pair_index_
Pvecteur _bound_pair_ub_
lb:Pvecteur
Pvecteur _bound_pair_lb_
index:int
action _comp_desc_action_
reference:reference
reference _comp_desc_reference_
comp_sec _comp_desc_section_
action:action
list _comp_desc_set_holder_
list _comp_sec_complements_
hull:simple_section
simple_section _comp_sec_hull_
intptr_t _context_info_nest_
rank:int
intptr_t _context_info_line_
intptr_t _context_info_rank_
line:int
list _dad_struct_shape_
rtemps:ref_temp*
rtype _ref_temp_rtype_
index:int
intptr_t _ref_temp_index_
gen_chunk _rtype_linvariant_
nonlinear:unit
gen_chunk _rtype_nonlinear_
enum rtype_utype _rtype_tag__
gen_chunk _rtype_lininvariant_
linvariant:unit
union _newgen_struct_rtype_::@44 _rtype_union_
dad_struct _simple_section_dad_
context:context_info
context_info _simple_section_context_
The structure used to build lists in NewGen.
A gen_chunk is used to store every object.