1 #ifndef _newgen_complexity_ri_included
2 #define _newgen_complexity_ri_included
3 #define _gen_complexity_ri_start 164
10 #if !defined(_newgen_statement_domain_defined_)
11 #define _newgen_statement_domain_defined_
12 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
13 #define statement_NEWGEN_DOMAIN (statement_domain)
17 #if !defined(_newgen_Ppolynome_domain_defined_)
18 #define _newgen_Ppolynome_domain_defined_
19 #define newgen_Ppolynome(p) (p)
20 #define PPOLYNOME_NEWGEN_EXTERNAL (_gen_complexity_ri_start+0)
21 #define PPOLYNOME_NEWGEN_DOMAIN (PPOLYNOME_NEWGEN_EXTERNAL)
22 #define Ppolynome_NEWGEN_DOMAIN (PPOLYNOME_NEWGEN_EXTERNAL)
25 #define complexity_domain (_gen_complexity_ri_start+1)
26 #if !defined(_newgen_complexity_domain_defined_)
27 #define _newgen_complexity_domain_defined_
28 #define COMPLEXITY_NEWGEN_DOMAIN (complexity_domain)
29 #define complexity_NEWGEN_DOMAIN (complexity_domain)
33 #define ifcount_domain (_gen_complexity_ri_start+2)
34 #if !defined(_newgen_ifcount_domain_defined_)
35 #define _newgen_ifcount_domain_defined_
36 #define IFCOUNT_NEWGEN_DOMAIN (ifcount_domain)
37 #define ifcount_NEWGEN_DOMAIN (ifcount_domain)
41 #define rangecount_domain (_gen_complexity_ri_start+3)
42 #if !defined(_newgen_rangecount_domain_defined_)
43 #define _newgen_rangecount_domain_defined_
44 #define RANGECOUNT_NEWGEN_DOMAIN (rangecount_domain)
45 #define rangecount_NEWGEN_DOMAIN (rangecount_domain)
49 #define varcount_domain (_gen_complexity_ri_start+4)
50 #if !defined(_newgen_varcount_domain_defined_)
51 #define _newgen_varcount_domain_defined_
52 #define VARCOUNT_NEWGEN_DOMAIN (varcount_domain)
53 #define varcount_NEWGEN_DOMAIN (varcount_domain)
60 #define COMPLEXITY(x) ((complexity)((x).p))
61 #define complexity_CAST(x) COMPLEXITY(x)
62 #define COMPLEXITY_CAST(x) COMPLEXITY(x)
63 #define COMPLEXITY_(x) ((x).e)
64 #define COMPLEXITY_TYPE complexity
65 #define complexity_TYPE complexity
66 #define complexity_undefined ((complexity)gen_chunk_undefined)
67 #define complexity_undefined_p(x) ((x)==complexity_undefined)
74 #define gen_COMPLEXITY_cons gen_complexity_cons
90 #define complexity_domain_number(x) ((x)->_type_)
91 #define complexity_eval_(x) complexity_eval(x)
92 #define complexity_eval(x) ((x)->_complexity_eval_)
93 #define complexity_varcount_(x) complexity_varcount(x)
94 #define complexity_varcount(x) ((x)->_complexity_varcount_)
95 #define complexity_rangecount_(x) complexity_rangecount(x)
96 #define complexity_rangecount(x) ((x)->_complexity_rangecount_)
97 #define complexity_ifcount_(x) complexity_ifcount(x)
98 #define complexity_ifcount(x) ((x)->_complexity_ifcount_)
102 #define IFCOUNT(x) ((ifcount)((x).p))
103 #define ifcount_CAST(x) IFCOUNT(x)
104 #define IFCOUNT_CAST(x) IFCOUNT(x)
105 #define IFCOUNT_(x) ((x).e)
106 #define IFCOUNT_TYPE ifcount
107 #define ifcount_TYPE ifcount
108 #define ifcount_undefined ((ifcount)gen_chunk_undefined)
109 #define ifcount_undefined_p(x) ((x)==ifcount_undefined)
116 #define gen_IFCOUNT_cons gen_ifcount_cons
131 #define ifcount_domain_number(x) ((x)->_type_)
132 #define ifcount_profiled_(x) ifcount_profiled(x)
133 #define ifcount_profiled(x) ((x)->_ifcount_profiled_)
134 #define ifcount_computed_(x) ifcount_computed(x)
135 #define ifcount_computed(x) ((x)->_ifcount_computed_)
136 #define ifcount_halfhalf_(x) ifcount_halfhalf(x)
137 #define ifcount_halfhalf(x) ((x)->_ifcount_halfhalf_)
141 #define RANGECOUNT(x) ((rangecount)((x).p))
142 #define rangecount_CAST(x) RANGECOUNT(x)
143 #define RANGECOUNT_CAST(x) RANGECOUNT(x)
144 #define RANGECOUNT_(x) ((x).e)
145 #define RANGECOUNT_TYPE rangecount
146 #define rangecount_TYPE rangecount
147 #define rangecount_undefined ((rangecount)gen_chunk_undefined)
148 #define rangecount_undefined_p(x) ((x)==rangecount_undefined)
155 #define gen_RANGECOUNT_cons gen_rangecount_cons
171 #define rangecount_domain_number(x) ((x)->_type_)
172 #define rangecount_profiled_(x) rangecount_profiled(x)
173 #define rangecount_profiled(x) ((x)->_rangecount_profiled_)
174 #define rangecount_guessed_(x) rangecount_guessed(x)
175 #define rangecount_guessed(x) ((x)->_rangecount_guessed_)
176 #define rangecount_bounded_(x) rangecount_bounded(x)
177 #define rangecount_bounded(x) ((x)->_rangecount_bounded_)
178 #define rangecount_unknown_(x) rangecount_unknown(x)
179 #define rangecount_unknown(x) ((x)->_rangecount_unknown_)
183 #define VARCOUNT(x) ((varcount)((x).p))
184 #define varcount_CAST(x) VARCOUNT(x)
185 #define VARCOUNT_CAST(x) VARCOUNT(x)
186 #define VARCOUNT_(x) ((x).e)
187 #define VARCOUNT_TYPE varcount
188 #define varcount_TYPE varcount
189 #define varcount_undefined ((varcount)gen_chunk_undefined)
190 #define varcount_undefined_p(x) ((x)==varcount_undefined)
197 #define gen_VARCOUNT_cons gen_varcount_cons
213 #define varcount_domain_number(x) ((x)->_type_)
214 #define varcount_symbolic_(x) varcount_symbolic(x)
215 #define varcount_symbolic(x) ((x)->_varcount_symbolic_)
216 #define varcount_guessed_(x) varcount_guessed(x)
217 #define varcount_guessed(x) ((x)->_varcount_guessed_)
218 #define varcount_bounded_(x) varcount_bounded(x)
219 #define varcount_bounded(x) ((x)->_varcount_bounded_)
220 #define varcount_unknown_(x) varcount_unknown(x)
221 #define varcount_unknown(x) ((x)->_varcount_unknown_)
223 #define complexity_ri_spec "\
224 --NEWGEN-START 164\n\
225 import statement from \"ri.newgen\";\n\
226 external Ppolynome;\n\
227 complexity = eval:Ppolynome x varcount:varcount x rangecount:rangecount x ifcount:ifcount;\n\
228 ifcount = profiled:int x computed:int x halfhalf:int;\n\
229 rangecount = profiled:int x guessed:int x bounded:int x unknown:int;\n\
230 varcount = symbolic:int x guessed:int x bounded:int x unknown:int;\n\
void complexity_assign_contents(complexity, complexity)
complexity copy_complexity(complexity)
COMPLEXITY.
void free_rangecount(rangecount)
void write_varcount(FILE *, varcount)
bool complexity_defined_p(complexity)
varcount copy_varcount(varcount)
VARCOUNT.
struct _newgen_struct_ifcount_ * ifcount
varcount make_varcount(intptr_t, intptr_t, intptr_t, intptr_t)
bool ifcount_defined_p(ifcount)
void rangecount_assign_contents(rangecount, rangecount)
struct _newgen_struct_rangecount_ * rangecount
ifcount make_ifcount(intptr_t, intptr_t, intptr_t)
bool complexity_consistent_p(complexity)
void write_rangecount(FILE *, rangecount)
struct _newgen_struct_statement_ * statement
rangecount check_rangecount(rangecount)
void write_complexity(FILE *, complexity)
bool rangecount_defined_p(rangecount)
void rangecount_non_recursive_free(rangecount)
void free_varcount(varcount)
void free_complexity(complexity)
list gen_complexity_cons(complexity, list)
void ifcount_non_recursive_free(ifcount)
rangecount copy_rangecount(rangecount)
RANGECOUNT.
ifcount copy_ifcount(ifcount)
IFCOUNT.
ifcount check_ifcount(ifcount)
complexity make_complexity(Ppolynome, varcount, rangecount, ifcount)
varcount read_varcount(FILE *)
bool rangecount_consistent_p(rangecount)
void ifcount_assign_contents(ifcount, ifcount)
varcount check_varcount(varcount)
void write_ifcount(FILE *, ifcount)
ifcount read_ifcount(FILE *)
void varcount_non_recursive_free(varcount)
struct _newgen_struct_complexity_ * complexity
void free_ifcount(ifcount)
complexity check_complexity(complexity)
list gen_varcount_cons(varcount, list)
rangecount make_rangecount(intptr_t, intptr_t, intptr_t, intptr_t)
bool varcount_defined_p(varcount)
bool varcount_consistent_p(varcount)
list gen_rangecount_cons(rangecount, list)
void complexity_non_recursive_free(complexity)
bool ifcount_consistent_p(ifcount)
rangecount read_rangecount(FILE *)
struct _newgen_struct_varcount_ * varcount
complexity read_complexity(FILE *)
list gen_ifcount_cons(ifcount, list)
void varcount_assign_contents(varcount, varcount)
varcount _complexity_varcount_
eval:Ppolynome
Ppolynome _complexity_eval_
ifcount _complexity_ifcount_
rangecount:rangecount
rangecount _complexity_rangecount_
varcount:varcount
intptr_t _ifcount_halfhalf_
computed:int
intptr_t _ifcount_computed_
profiled:int
intptr_t _ifcount_profiled_
intptr_t _rangecount_guessed_
profiled:int
intptr_t _rangecount_bounded_
guessed:int
intptr_t _rangecount_unknown_
bounded:int
intptr_t _rangecount_profiled_
intptr_t _varcount_unknown_
bounded:int
intptr_t _varcount_symbolic_
intptr_t _varcount_guessed_
symbolic:int
intptr_t _varcount_bounded_
guessed:int
The structure used to build lists in NewGen.