PIPS
union.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/union/union-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef union_header_included
7 #define union_header_included
8 /* union-local.h */
9 
10 
11 typedef struct Ssyslist {
12  Psysteme psys;
13  struct Ssyslist *succ;
15 
16 #define SL_NULL (Psyslist) NULL
17 
19 
20 #define DJ_UNDEFINED (Pdisjunct) NULL
21 
23 
24 #define CO_UNDEFINED (Pcomplement) NULL
26 typedef struct Spath {
27  Psysteme psys;
30 
31 #define PA_UNDEFINED (Ppath) NULL
32 
33 typedef struct Sunion {
34  Pdisjunct pdi;
35  Ppath ppa;
37 
38 #define UN_UNDEFINED (Punion) NULL
39 #define UN_FULL_SPACE (Punion) NULL
40 #define UN_EMPTY_SPACE (Punion) NULL
41 
42 /* Implementation of the finite parallel half space lattice hspara
43  *
44  * ________ full
45  * / |
46  * / empty ___
47  * / | \
48  * / keep \
49  * / / \ \
50  * ssplus / opplus \
51  * | ssminus | opminus
52  * sszero \ opzero /
53  * \ \ / /
54  * \________ unpara _____/
55  */
57 { /* compare {h1: a1 X + b1 <= 0} with {hj: aj X + bj <= 0} */
58  unpara = 0, /* unparallel -> h1/hj = h1 */
59  /**/ /* a1 == aj for same sign (ss) part lattice */
60  sszero = 1, /* b1 == bj -> h1/hj = full */
61  ssplus = 2, /* bj > b1 -> h1/hj = full */
62  /**/
63  /**/ /* keep part */
64  /**/
65  ssminus = 3, /* bj < b1 -> h1/hj = h1 */
66  /**/ /* -a1 == aj for opposite sign (op) part lattice */
67  opzero = 4, /* b1 == bj -> h1/hj = h1 */
68  opplus = 5, /* bj > b1 -> h1/hj = h1 */
69  keep = 6,
70  /**/ /* empty part */
71  opminus = 7, /* b1 < bj -> h1/hj = empty */
72  empty = 8,
73  full = 9
74 };
75 
76 /* FOR BACKWARD COMPATIBILITY */
77 #define my_sc_full() sc_full()
78 #define my_sc_empty() sc_empty((Pbase) NULL)
79 #define is_sc_my_empty_p(ps) sc_empty_p((ps))
80 #define is_dj_full_p(dj) dj_full_p((dj))
81 #define is_dj_empty_p(dj) dj_empty_p((dj))
82 #define is_pa_full_p(pa) pa_full_p((pa))
83 #define is_pa_empty_p(pa) pa_empty_p((pa))
84 
85 
86 /* FOR BACKWARD COMPATIBILITY */
87 #define sc_difference(ps1, ps2) pa_system_difference_ofl_ctrl((ps1),(ps2),FWD_OFL_CTRL)
88 #define sc_inclusion_p(ps1, ps2) pa_inclusion_p_ofl_ctrl((ps1), (ps2), NO_OFL_CTRL)
89 #define sc_inclusion_p_ofl(ps1, ps2) pa_inclusion_p_ofl_ctrl((ps1), (ps2), FWD_OFL_CTRL)
90 #define sc_inclusion_p_ofl_ctrl(ps1, ps2, ofl) pa_inclusion_p_ofl_ctrl((ps1), (ps2), (ofl))
91 #define sc_equal_p(ps1,ps2) pa_system_equal_p_ofl_ctrl((ps1), (ps2), NO_OFL_CTRL)
92 #define sc_equal_p_ofl(ps1,ps2) pa_system_equal_p_ofl_ctrl((ps1), (ps2), FWD_OFL_CTRL)
93 #define sc_equal_p_ofl_ctrl(ps1, ps2, ofl) pa_system_equal_p_ofl_ctrl((ps1), (ps2), (ofl))
94 #define sc_convex_hull_equals_union_p(conv_hull, ps1, ps2) \
95  pa_convex_hull_equals_union_p_ofl_ctrl((conv_hull), (ps1), (ps2),NO_OFL_CTRL, false)
96 #define sc_convex_hull_equals_union_p_ofl(conv_hull, ps1, ps2) \
97  pa_convex_hull_equals_union_p_ofl_ctrl((conv_hull), (ps1), (ps2), OFL_CTRL, false)
98 #define sc_convex_hull_equals_union_p_ofl_ctrl(conv_hull, ps1, ps2, ofl, bo) \
99  pa_convex_hull_equals_union_p_ofl_ctrl((conv_hull), (ps1), (ps2), (ofl), (bo))
100 
101 /* OTHERS */
102 #define sc_elim_redund_with_first(ps1, ps2) sc_elim_redund_with_first_ofl_ctrl((ps1), (ps2), NO_OFL_CTRL)
103 
104 #define dj_fprint(fi,dj,fu) dj_fprint_tab((fi), (dj), (fu), 0)
105 #define DJ_UNDEFINED_P(dj) ((dj) == DJ_UNDEFINED)
106 #define dj_faisabilite(dj) dj_feasibility_ofl_ctrl((dj), NO_OFL_CTRL)
107 #define dj_feasibility(dj) dj_feasibility_ofl_ctrl((dj), NO_OFL_CTRL)
108 #define dj_faisabilite_ofl(dj) dj_feasibility_ofl_ctrl((dj), FWD_OFL_CTRL)
109 #define dj_intersection(dj1, dj2) dj_intersection_ofl_ctrl((dj1), (dj2), NO_OFL_CTRL)
110 #define dj_intersect_system(dj,ps) dj_intersect_system_ofl_ctrl((dj), (ps), NO_OFL_CTRL )
111 #define dj_intersect_djcomp(dj1,dj2) dj_intersect_djcomp_ofl_ctrl( (dj1), (dj2), NO_OFL_CTRL )
112 #define dj_projection_along_variables(dj,pv) \
113  dj_projection_along_variables_ofl_ctrl((dj),(pv),NO_OFL_CTRL)
114 #define dj_variable_substitution_with_eqs(dj,co,pv) \
115  dj_variable_substitution_with_eqs_ofl_ctrl( (dj), (co), (pv), NO_OFL_CTRL )
116 
117 #define pa_fprint(fi,pa,fu) pa_fprint_tab((fi), (pa), (fu), 0)
118 #define PA_UNDEFINED_P(pa) ((pa) == PA_UNDEFINED)
119 #define pa_new() pa_make(NULL, NULL)
120 #define pa_faisabilite(pa) pa_feasibility_ofl_ctrl((pa), NO_OFL_CTRL)
121 #define pa_feasibility(pa) pa_feasibility_ofl_ctrl((pa), NO_OFL_CTRL)
122 #define pa_faisabilite_ofl(pa) pa_feasibility_ofl_ctrl((pa), FWD_OFL_CTRL)
123 #define pa_path_to_disjunct(pa) pa_path_to_disjunct_ofl_ctrl((pa), NO_OFL_CTRL )
124 #define pa_path_dup_to_disjunct(pa) pa_path_to_disjunct_ofl_ctrl((pa), NO_OFL_CTRL )
125 #define pa_system_difference(ps1,ps2) pa_system_difference_ofl_ctrl((ps1),(ps2),NO_OFL_CTRL)
126 #define pa_system_equal_p(ps1,ps2) pa_system_equal_p_ofl_ctrl((ps1),(ps2),NO_OFL_CTRL)
127 #define pa_inclusion_p(ps1,ps2) pa_inclusion_p_ofl_ctrl((ps1),(ps2),NO_OFL_CTRL)
128 #define pa_path_to_disjunct_ofl(pa) pa_path_to_disjunct_ofl_ctrl((pa), FWD_OFL_CTRL )
129 #define pa_path_to_disjunct_rule4(pa) pa_path_to_disjunct_rule4_ofl_ctrl((pa), FWD_OFL_CTRL )
130 #define pa_path_to_few_disjunct(pa) pa_path_to_few_disjunct_ofl_ctrl((pa), NO_OFL_CTRL)
131 #define pa_system_difference(ps1,ps2) pa_system_difference_ofl_ctrl((ps1),(ps2),NO_OFL_CTRL)
132 #define pa_convex_hull_equals_union_p(conv_hull, ps1, ps2) \
133  pa_convex_hull_equals_union_p_ofl_ctrl((conv_hull), (ps1), (ps2), NO_OFL_CTRL, false)
134 
135 #define un_fprint(fi,un,fu,ty) un_fprint_tab((fi), (un), (fu), (ty), 0)
136 
137 
138 /* Misceleanous (debuging...) */
139 #define PATH_MAX_CONSTRAINTS 12
140 
141 #define IS_SC 1
142 #define IS_SL 2
143 #define IS_DJ 3
144 #define IS_PA 4
145 
146 extern char* (*union_variable_name)(Variable);
147 
148 #if(defined(DEBUG_UNION_C3) || defined(DEBUG_UNION_PIPS))
149 #define C3_DEBUG( fun, code ) \
150  {if(getenv("DEBUG_UNION")){fprintf(stderr,"[%s]\n", fun); {code}}}
151 #define C3_RETURN( type, val ) \
152  {if(getenv("DEBUG_UNION")){ \
153  char* val1 = (char*) val; \
154  fprintf(stderr,"Returning:\n"); \
155  un_fprint_tab(stderr,(char*)val1,union_variable_name,type,1); return val1;} \
156  else{ return val; }}
157 #else
158 #define C3_DEBUG( fun, code )
159 #define C3_RETURN( type, val ) {return val;}
160 #endif
161 /* cproto-generated files */
162 /* disjunct.c */
163 extern Pdisjunct dj_new(void);
164 extern Pdisjunct dj_dup(Pdisjunct /*in_dj*/);
165 extern Pdisjunct dj_free(Pdisjunct /*in_dj*/);
166 extern Pdisjunct dj_dup1(Pdisjunct /*in_dj*/);
167 extern Pdisjunct dj_free1(Pdisjunct /*in_dj*/);
168 extern Pdisjunct dj_full(void);
169 extern bool dj_full_p(Pdisjunct /*in_dj*/);
170 extern Pdisjunct dj_empty(void);
171 extern bool dj_empty_p(Pdisjunct /*in_dj*/);
172 extern Pdisjunct dj_intersection_ofl_ctrl(Pdisjunct /*in_dj1*/, Pdisjunct /*in_dj2*/, int /*ofl_ctrl*/);
173 extern Pdisjunct dj_intersect_system_ofl_ctrl(Pdisjunct /*in_dj*/, Psysteme /*in_ps*/, int /*ofl_ctrl*/);
174 extern Pdisjunct dj_intersect_djcomp_ofl_ctrl(Pdisjunct /*in_dj1*/, Pdisjunct /*in_dj2*/, int /*ofl_ctrl*/);
175 extern Pdisjunct dj_union(Pdisjunct /*in_dj1*/, Pdisjunct /*in_dj2*/);
176 extern bool dj_feasibility_ofl_ctrl(Pdisjunct /*in_dj*/, int /*ofl_ctrl*/);
177 extern Pdisjunct dj_system_complement(Psysteme /*in_ps*/);
178 extern Pdisjunct dj_disjunct_complement(Pdisjunct /*in_dj*/);
179 extern Pdisjunct dj_projection_along_variables_ofl_ctrl(Pdisjunct /*in_dj*/, Pvecteur /*in_pv*/, int /*ofl_ctrl*/);
180 extern Pdisjunct dj_simple_inegs_to_eg(Pdisjunct /*in_dj*/);
181 extern bool dj_is_system_p(Pdisjunct /*in_dj*/);
182 extern Pdisjunct dj_append_system(Pdisjunct /*in_dj*/, Psysteme /*in_ps*/);
183 extern Pdisjunct dj_variable_rename(Pdisjunct /*in_dj*/, Variable /*in_vold*/, Variable /*in_vnew*/);
184 extern Pdisjunct dj_variable_substitution_with_eqs_ofl_ctrl(Pdisjunct /*in_dj*/, Pcontrainte /*in_pc*/, Pvecteur /*in_pv*/, int /*ofl_ctrl*/);
185 extern void dj_fprint_tab(FILE */*in_fi*/, Pdisjunct /*in_dj*/, char *(* /*in_fu*/)(void), int /*in_tab*/);
186 extern Pdisjunct dj_read(char */*nomfic*/);
187 /* path.c */
188 extern Ppath pa_make(Psysteme /*in_ps*/, Pcomplist /*in_pcomp*/);
189 extern Ppath pa_dup(Ppath /*in_pa*/);
190 extern Ppath pa_free(Ppath /*in_pa*/);
191 extern Ppath pa_dup1(Ppath /*in_pa*/);
192 extern Ppath pa_free1(Ppath /*in_pa*/);
193 extern Ppath pa_full(void);
194 extern bool pa_full_p(Ppath /*in_pa*/);
195 extern Ppath pa_empty(void);
196 extern bool pa_empty_p(Ppath /*in_pa*/);
197 extern int pa_max_constraints_nb(Ppath /*in_pa*/);
198 extern Ppath pa_intersect_system(Ppath /*in_pa*/, Psysteme /*in_ps*/);
199 extern Ppath pa_intersect_complement(Ppath /*in_pa*/, Pcomplement /*in_pc*/);
200 extern Ppath pa_reduce_simple_complement(Ppath /*in_pa*/);
201 extern Ppath pa_transform_eg_in_ineg(Ppath /*in_pa*/);
202 extern bool pa_feasibility_ofl_ctrl(Ppath /*in_pa*/, int /*ofl_ctrl*/);
203 extern Pdisjunct pa_path_to_disjunct_ofl_ctrl(Ppath /*in_pa*/, int /*ofl_ctrl*/);
204 extern void pa_fprint_tab(FILE */*in_fi*/, Ppath /*in_pa*/, char *(* /*in_fu*/)(void), int /*in_tab*/);
205 extern Ppath pa_read(char */*nomfic*/);
206 /* reduc.c */
207 extern enum hspara_elem vect_parallel(Pvecteur /*in_v1*/, Pvecteur /*in_v2*/);
208 extern enum hspara_elem contrainte_parallel_in_liste(Pcontrainte /*in_co*/, Pcontrainte /*in_lc*/);
210 extern Psysteme sc_supress_same_constraints(Psysteme /*in_ps1*/, Psysteme /*in_ps2*/);
211 extern Psysteme sc_elim_redund_with_first_ofl_ctrl(Psysteme /*in_ps1*/, Psysteme /*in_ps2*/, int /*ofl_ctrl*/);
212 extern Ppath pa_supress_same_constraints(Ppath /*in_pa*/);
213 extern Pdisjunct pa_path_to_disjunct_rule4_ofl_ctrl(Ppath /*in_pa*/, int /*ofl_ctrl*/);
214 extern Pdisjunct pa_path_to_few_disjunct_ofl_ctrl(Ppath /*in_pa*/, int /*ofl_ctrl*/);
215 extern bool pa_inclusion_p_ofl_ctrl(Psysteme /*ps1*/, Psysteme /*ps2*/, int /*ofl_ctrl*/);
216 extern bool pa_system_equal_p_ofl_ctrl(Psysteme /*ps1*/, Psysteme /*ps2*/, int /*ofl_ctrl*/);
217 extern Pdisjunct pa_system_difference_ofl_ctrl(Psysteme /*ps1*/, Psysteme /*ps2*/, int /*ofl_ctrl*/);
218 extern bool pa_convex_hull_equals_union_p_ofl_ctrl(Psysteme /*conv_hull*/, Psysteme /*ps1*/, Psysteme /*ps2*/, int /*ofl_ctrl*/, volatile bool /*ofl_res*/);
219 /* sc_list.c */
220 extern char *(*union_variable_name)(Variable);
221 extern Psysteme sc_full(void);
222 extern bool sc_full_p(Psysteme /*in_ps*/);
223 extern Psysteme sc_dup1(Psysteme /*in_ps*/);
224 extern Psysteme sc_free(Psysteme /*in_ps*/);
225 extern Psysteme sc_free1(Psysteme /*in_ps*/);
226 extern Psysteme sc_concatenate(Psysteme /*in_s1*/, Psysteme /*in_s2*/);
227 extern bool sl_length(Psyslist /*in_sl*/);
228 extern int sl_max_constraints_nb(Psyslist /*in_sl*/);
229 extern bool sl_is_system_p(Psyslist /*in_sl*/);
230 extern Psyslist sl_append_system(Psyslist /*in_sl*/, Psysteme /*in_ps*/);
231 extern Psyslist sl_append_system_first(Psyslist /*in_sl*/, Psysteme /*in_ps*/);
232 extern Psyslist sl_new(void);
233 extern Psyslist sl_dup(Psyslist /*in_sl*/);
234 extern Psyslist sl_dup1(Psyslist /*in_sl*/);
235 extern Psyslist sl_free(Psyslist /*psl*/);
236 extern Psyslist sl_free1(Psyslist /*psl*/);
237 extern void sl_set_variable_name(char *(* /*in_fu*/)(void));
238 extern char *sl_get_tab_string(int /*in_tab*/);
239 extern void sl_fprint_tab(FILE */*in_fi*/, Psyslist /*in_sl*/, char *(* /*in_fu*/)(void), int /*in_tab*/);
240 extern void sl_fprint(FILE */*in_fi*/, Psyslist /*in_sl*/, char *(* /*in_fu*/)(void));
241 extern Psyslist sl_read(char */*nomfic*/);
242 extern void un_fprint_tab(FILE */*in_fi*/, char */*in_un*/, char *(* /*in_fu*/)(void), int /*in_ty*/, int /*in_tab*/);
243 /* sl_gram.c */
244 extern bool syntax_error;
245 extern Value valcst;
246 extern Psyslist sl_yacc;
247 extern Pbase ba_yacc;
248 extern Variable va_yacc;
249 extern int slx_char;
250 extern int slx_nerrs;
251 extern int slx_parse(void);
252 extern int slx_error(char */*s*/);
253 /* sl_lex.c */
254 extern int slx_leng;
255 extern FILE *slx_in;
256 extern FILE *slx_out;
257 extern int slx_lineno;
258 extern int slx__flex_debug;
259 extern char *slx_text;
260 extern int slx_lex(void);
261 extern void slx_restart(FILE */*input_file*/);
262 extern void slx_pop_buffer_state(void);
263 extern int slx_get_lineno(void);
264 extern FILE *slx_get_in(void);
265 extern FILE *slx_get_out(void);
266 extern int slx_get_leng(void);
267 extern char *slx_get_text(void);
268 extern void slx_set_lineno(int /*_line_number*/);
269 extern void slx_set_in(FILE */*_in_str*/);
270 extern void slx_set_out(FILE */*_out_str*/);
271 extern int slx_get_debug(void);
272 extern void slx_set_debug(int /*_bdebug*/);
273 extern int slx_lex_destroy(void);
274 extern void *slx_alloc(yy_size_t /*size*/);
275 extern void *slx_realloc(void */*ptr*/, yy_size_t /*size*/);
276 extern void slx_free(void */*ptr*/);
277 extern int slx_wrap(void);
278 extern void sl_init_lex(void);
279 #endif /* union_header_included */
int Value
size_t yy_size_t
Definition: genread_lex.c:413
Pcomplist pcomp
Definition: union-local.h:20
Psysteme psys
Definition: union-local.h:19
Warning! Do not modify this file that is automatically generated!
Definition: union-local.h:3
Psysteme psys
Definition: union-local.h:4
struct Ssyslist * succ
Definition: union-local.h:5
Pdisjunct pdi
Definition: union-local.h:26
Ppath ppa
Definition: union-local.h:27
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
Definition: vecteur-local.h:89
hspara_elem
Implementation of the finite parallel half space lattice hspara.
Definition: union-local.h:49
FILE * slx_get_in(void)
struct Sunion Sunion
Variable va_yacc
Definition: sl_gram.c:113
Ppath pa_free(Ppath)
Ppath pa_free(Ppath pa) BA, AL 30/05/94.
Definition: path.c:76
enum hspara_elem vect_parallel(Pvecteur, Pvecteur)
reduc.c
Definition: reduc.c:104
Pdisjunct dj_disjunct_complement(Pdisjunct)
Returns complement of in_dj.
Definition: disjunct.c:299
FILE * slx_out
void slx_pop_buffer_state(void)
Pdisjunct dj_full(void)
Pdisjunct dj_full() AL 18/11/93 Return full space disjunction = dj_new()
Definition: disjunct.c:92
Pdisjunct dj_simple_inegs_to_eg(Pdisjunct)
Pdisjunct dj_simple_inegs_to_eg( in_dj ) transforms two opposite inequalities in a simple equality in...
Definition: disjunct.c:339
void un_fprint_tab(FILE *, char *, char *(*)(void), int, int)
int sl_max_constraints_nb(Psyslist)
int sl_max_constraints_nb( (Psyslist) in_sl ) Give the maximum constraints nb among systems of in_sl.
Definition: sc_list.c:207
bool pa_feasibility_ofl_ctrl(Ppath, int)
bool pa_feasibility_ofl_ctrl( (Ppath) in_pa, int ofl_ctrl) Returns true if the input path is possib...
Definition: path.c:309
void sl_fprint_tab(FILE *, Psyslist, char *(*)(void), int)
Ssysteme * Pcomplement
Definition: union.h:22
Psysteme sc_elim_redund_with_first_ofl_ctrl(Psysteme, Psysteme, int)
Psysteme sc_elim_redund_with_first_ofl_ctrl( in_ps1, in_ps2, ofl_ctrl ) Returns constraints of in_ps2...
Definition: reduc.c:412
struct Ssyslist Ssyslist
int slx_leng
sl_lex.c
Ppath pa_reduce_simple_complement(Ppath)
Ppath pa_reduce_simple_complement( (Ppath) in_pa ) AL 16/11/93 Scan all the complement.
Definition: path.c:222
void slx_free(void *)
bool dj_is_system_p(Pdisjunct)
bool dj_is_system_p( (Pdisjunct) in_dj ) AL 16/11/93 Returns True if disjunction in_dj has only one P...
Definition: disjunct.c:393
Psysteme sc_concatenate(Psysteme, Psysteme)
Psysteme sc_concatenate( in_s1, in_s2 ) AL 30/05/94 Append in_s2 to the end of in_s1 and returns in_s...
Definition: sc_list.c:157
int slx_get_lineno(void)
int slx_lineno
Psysteme sc_full(void)
Psysteme sc_full() similar to sc_new.
Definition: sc_list.c:58
Pdisjunct dj_empty(void)
Pdisjunct dj_empty() AL 18/11/93 Returns a disjunction with sc_empty() element.
Definition: disjunct.c:111
void slx_set_debug(int)
Psysteme sc_supress_same_constraints(Psysteme, Psysteme)
Psysteme sc_supress_same_constraints( in_ps1, in_ps2 ) supress in in_ps2 constraints that are in in_p...
Definition: reduc.c:329
int slx__flex_debug
void slx_set_in(FILE *)
Ssyslist Scomplist
Definition: union.h:25
int slx_nerrs
Pdisjunct dj_variable_substitution_with_eqs_ofl_ctrl(Pdisjunct, Pcontrainte, Pvecteur, int)
Ssyslist * Pdisjunct
Definition: union.h:18
int slx_char
Pdisjunct dj_new(void)
cproto-generated files
Definition: disjunct.c:52
Psysteme sc_free1(Psysteme)
Psysteme sc_free1( in_ps ) AL 30/05/94 Only pcontrainte of in_ps are freed.
Definition: sc_list.c:121
Pdisjunct dj_union(Pdisjunct, Pdisjunct)
Pdisjunct dj_union( (Pdisjunct) in_dj1, (Pdisjunct) in_dj2 ) Give the union of the two disjunctions.
Definition: disjunct.c:211
Pdisjunct dj_read(char *)
void dj_read(FILE*) reads a Pdisjunct
Definition: disjunct.c:510
Ppath pa_read(char *)
void pa_read(FILE*) reads a Ppath
Definition: path.c:438
void slx_set_lineno(int)
Pdisjunct dj_projection_along_variables_ofl_ctrl(Pdisjunct, Pvecteur, int)
Returns projection of in_dj along vars of in_pv.
Definition: disjunct.c:319
Ppath pa_transform_eg_in_ineg(Ppath)
Ppath pa_transform_eg_in_ineg( in_pa ) Transforms all equalities of all systems composing in_pa in in...
Definition: path.c:284
int slx_get_leng(void)
Pdisjunct pa_path_to_few_disjunct_ofl_ctrl(Ppath, int)
line 1197 "reduc.w"
Definition: reduc.c:648
char * slx_get_text(void)
bool sl_is_system_p(Psyslist)
bool sl_is_system_p( (Psyslist) in_sl ) AL 16/11/93 Returns True if syslist in_sl has only one Psyste...
Definition: sc_list.c:230
bool sc_full_p(Psysteme)
Psysteme sc_full_p( in_ps ) similar to sc_new.
Definition: sc_list.c:61
Psysteme sc_free(Psysteme)
Psysteme sc_free( in_ps ) AL 30/05/94 Free of in_ps.
Definition: sc_list.c:112
bool syntax_error
sl_gram.c
Definition: sl_gram.c:95
Psyslist sl_append_system_first(Psyslist, Psysteme)
Psyslist sl_append_system_first( in_sl, in_ps ) AL 23/03/95 A new Psyslist with in_ps at the end of i...
Definition: sc_list.c:256
void slx_set_out(FILE *)
struct Spath Spath
Psysteme sc_supress_parallel_redund_constraints(Psysteme, Psysteme)
Psysteme sc_supress_parallel_redund_constraints( in_ps1, in_ps2 ) input: 2 Psystemes in_ps1 and in_ps...
Definition: reduc.c:255
Psyslist sl_free1(Psyslist)
Psyslist sl_free1(Psyslist psl) AL 30/05/94 1 depth free.
Definition: sc_list.c:343
bool pa_empty_p(Ppath)
pa_empty_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (1*TCST = 0) ^ (NIL)
Definition: path.c:141
Psyslist sl_read(char *)
void sl_read(FILE*) reads a Psyslist
Definition: sc_list.c:461
int slx_error(char *)
Definition: sl_gram.c:1702
struct Ssyslist * Psyslist
Warning! Do not modify this file that is automatically generated!
Ppath pa_intersect_system(Ppath, Psysteme)
Ppath pa_intersect_system( (Ppath) in_pa, (Psysteme) in_ps ) Computes the intersection between in_pa ...
Definition: path.c:178
struct Spath * Ppath
int slx_get_debug(void)
Pdisjunct dj_intersect_djcomp_ofl_ctrl(Pdisjunct, Pdisjunct, int)
Pdisjunct dj_intersect_djcomp_ofl_ctrl( ) No sharing.
Definition: disjunct.c:173
Ppath pa_make(Psysteme, Pcomplist)
path.c
Definition: path.c:53
Value valcst
Definition: sl_gram.c:96
Ssysteme Scomplement
Definition: union.h:22
bool pa_full_p(Ppath)
pa_full_p( (Ppath) in_pa ) AL 18/11/93 Returns True if in_pa = (NIL) ^ (NIL)
Definition: path.c:123
Pdisjunct dj_free(Pdisjunct)
Pdisjunct dj_free( (Pdisjunct) in_dj ) AL 31/05/94 w - 1 depth free of input disjunction.
Definition: disjunct.c:69
bool pa_inclusion_p_ofl_ctrl(Psysteme, Psysteme, int)
bool pa_inclusion_p(Psysteme ps1, Psysteme ps2) BA, AL 31/05/94 returns true if ps1 represents a subs...
Definition: reduc.c:868
bool pa_convex_hull_equals_union_p_ofl_ctrl(Psysteme, Psysteme, Psysteme, int, volatile bool)
bool pa_convex_hull_equals_union_p(conv_hull, ps1, ps2) input : two Psystems and their convex hull AL...
Definition: reduc.c:938
Ppath pa_full(void)
Ppath pa_full() AL 18/11/93 Returns full space path : pa_full = pa_new()
Definition: path.c:117
Psyslist sl_yacc
Definition: sl_gram.c:113
Psyslist sl_free(Psyslist)
Psyslist sl_free(Psyslist psl) BA, AL 30/05/94 w - 1 depth free.
Definition: sc_list.c:327
bool dj_full_p(Pdisjunct)
dj_full_p( (Pdisjunct) in_dj ) AL 30/05/94 Returns True if in_dj = (NIL) ^ (NIL)
Definition: disjunct.c:98
Psyslist sl_dup1(Psyslist)
Psyslist sl_dup1( (Psyslist) in_sl ) AL 15/11/93 Duplicates input syslist.
Definition: sc_list.c:311
Ssyslist * Pcomplist
Definition: union.h:25
enum hspara_elem contrainte_parallel_in_liste(Pcontrainte, Pcontrainte)
enum enum hspara_elem contrainte_parallel_in_liste( in_co, in_lc ) AL950711 input: 1 constraint in_co...
Definition: reduc.c:204
void dj_fprint_tab(FILE *, Pdisjunct, char *(*)(void), int)
Pdisjunct dj_free1(Pdisjunct)
Pdisjunct dj_free1( (Pdisjunct) in_dj ) AL 31/05/94 1st depth free of input disjunction.
Definition: disjunct.c:84
Ppath pa_dup1(Ppath)
void pa_dup1(Ppath pa) AL 30/05/94 1 depth duplication: system and complements are shared.
Definition: path.c:91
struct Sunion * Punion
void * slx_alloc(yy_size_t)
Ppath pa_dup(Ppath)
void pa_dup(Ppath pa) AL 30/05/94
Definition: path.c:68
Pdisjunct dj_dup(Pdisjunct)
Pdisjunct dj_dup( (Pdisjunct) in_dj ) AL 15/11/93 Duplicates input disjunction.
Definition: disjunct.c:58
@ full
Definition: union.h:73
@ keep
bj > b1 -> h1/hj = h1
Definition: union.h:69
@ ssplus
b1 == bj -> h1/hj = full
Definition: union.h:61
@ opzero
bj < b1 -> h1/hj = h1
Definition: union.h:67
@ opplus
b1 == bj -> h1/hj = h1
Definition: union.h:68
@ ssminus
bj > b1 -> h1/hj = full
Definition: union.h:65
@ unpara
compare {h1: a1 X + b1 <= 0} with {hj: aj X + bj <= 0}
Definition: union.h:58
@ sszero
unparallel -> h1/hj = h1
Definition: union.h:60
@ opminus
empty part
Definition: union.h:71
@ empty
b1 < bj -> h1/hj = empty
Definition: union.h:72
Pdisjunct dj_intersection_ofl_ctrl(Pdisjunct, Pdisjunct, int)
Pdisjunct dj_intersection_ofl_ctrl( in_dj1, in_dj2, ofl_ctrl ) Computes intersection of two disjuncti...
Definition: disjunct.c:134
void sl_fprint(FILE *, Psyslist, char *(*)(void))
void sl_init_lex(void)
Psyslist sl_new(void)
Psyslist sl_new() AL 26/10/93 Input : Nothing.
Definition: sc_list.c:277
int slx_wrap(void)
Pdisjunct pa_system_difference_ofl_ctrl(Psysteme, Psysteme, int)
Pdisjunct pa_system_difference_ofl_ctrl(ps1, ps2) input : two Psystemes output : a disjunction repres...
Definition: reduc.c:908
FILE * slx_get_out(void)
FILE * slx_in
char * sl_get_tab_string(int)
char* sl_get_tab_string( in_tab ) returns a string of in_tab \t
Definition: sc_list.c:366
Ppath pa_supress_same_constraints(Ppath)
Ppath pa_supress_same_constraints( (Ppath) in_pa ) Supress from complements of in_pa same constrain...
Definition: reduc.c:528
Pdisjunct pa_path_to_disjunct_rule4_ofl_ctrl(Ppath, int)
Pdisjunct pa_path_to_disjunct_rule4_ofl_ctrl( (Ppath) in_pa, int ofl_ctrl) Returns the correspondin...
Definition: reduc.c:570
Pdisjunct dj_variable_rename(Pdisjunct, Variable, Variable)
dj_variable_rename replaces in_vold with in_vnew : in_dj is modified
Definition: disjunct.c:417
void slx_restart(FILE *)
Pdisjunct dj_intersect_system_ofl_ctrl(Pdisjunct, Psysteme, int)
bool dj_empty_p(Pdisjunct)
dj_empty_p( (Ppath) in_pa ) AL 30/05/94 Returns True if in_dj = (1*TCST = 0) ^ (NIL)
Definition: disjunct.c:118
Pdisjunct dj_dup1(Pdisjunct)
Pdisjunct dj_dup1( (Pdisjunct) in_dj ) AL 31/05/94 1st depth duplication of input disjunction.
Definition: disjunct.c:76
Pbase ba_yacc
Definition: sl_gram.c:113
char * slx_text
bool sl_length(Psyslist)
int sl_length( (Psyslist) in_sl ) AL 26/04/95 Returns length of in_sl.
Definition: sc_list.c:193
Psyslist sl_append_system(Psyslist, Psysteme)
Psyslist sl_append_system( (Psyslist) in_sl, (Psysteme) in_ps ) Input : A disjunct in_sl to wich in_p...
Definition: sc_list.c:240
int pa_max_constraints_nb(Ppath)
int pa_max_constraints_nb( (Ppath) in_pa ) Give the maximum constraints nb among systems of in_pa.
Definition: path.c:155
Ppath pa_free1(Ppath)
Ppath pa_free1(Ppath pa) BA, AL 30/05/94 1 depth free.
Definition: path.c:102
int slx_parse(void)
bool dj_feasibility_ofl_ctrl(Pdisjunct, int)
bool dj_feasibility_ofl_ctrl( (Pdisjunct) in_dj, (int) ofl_ctrl ) Returns true if in_dj is a feasible...
Definition: disjunct.c:232
bool pa_system_equal_p_ofl_ctrl(Psysteme, Psysteme, int)
bool pa_system_equal_p(Psysteme ps1, Psysteme ps2) BA
Definition: reduc.c:890
Pdisjunct pa_path_to_disjunct_ofl_ctrl(Ppath, int)
Pdisjunct pa_path_to_disjunct_ofl_ctrl ( (Ppath) in_pa, (int) ofl_ctrl) Produces a Pdisjunct corres...
Definition: path.c:374
Psyslist sl_dup(Psyslist)
Psyslist sl_dup( (Psyslist) in_sl ) AL 15/11/93 w - 1 duplication : everything is duplicated,...
Definition: sc_list.c:296
int slx_lex_destroy(void)
int slx_lex(void)
Ssyslist Sdisjunct
Definition: union.h:18
Ppath pa_intersect_complement(Ppath, Pcomplement)
Ppath pa_intersect_complement( (Ppath) in_pa, (Pcomplement) in_pc ) Computes the intersection between...
Definition: path.c:200
Psysteme sc_dup1(Psysteme)
Psysteme sc_dup1( in_ps ) AL 30/05/94 1 depth copy of in_ps: no duplication of vectors (except for th...
Definition: sc_list.c:72
Ppath pa_empty(void)
Ppath pa_empty() AL 18/11/93 Returns empty path : pa_empty = sc_empty(NULL) ^ (NIL)
Definition: path.c:135
void sl_set_variable_name(char *(*)(void))
Pdisjunct dj_system_complement(Psysteme)
Pdisjunct dj_system_complement( (Psystem) in_ps ) AL 26/10/93 Input : A Psysteme.
Definition: disjunct.c:254
void pa_fprint_tab(FILE *, Ppath, char *(*)(void), int)
Pdisjunct dj_append_system(Pdisjunct, Psysteme)
Pdisjunct dj_append_system( (Pdisjunct) in_dj, (Psysteme) in_ps ) Input : A disjunct in_dj to wich in...
Definition: disjunct.c:403
void * slx_realloc(void *, yy_size_t)
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Definition: vecteur-local.h:60