87 #line 116 "disjunct.w"
102 ( in_dj->
succ == NULL ) &&
103 ( in_dj->
psys == NULL ) );
106 #line 138 "disjunct.w"
122 ( in_dj->
succ == NULL ) &&
123 ( in_dj->
psys != NULL ) &&
127 #line 169 "disjunct.w"
147 for(dj1 = in_dj1; dj1 != NULL; dj1 = dj1->
succ) {
148 for(dj2 = in_dj2; dj2 != NULL; dj2 = dj2->
succ) {
151 { ps =
sc_free( ps );
continue; }
159 #line 205 "disjunct.w"
168 #line 219 "disjunct.w"
187 C3_DEBUG(
"dj_intersect_djcomp_ofl_ctrl",{
188 fprintf(stderr,
"Inputs (in_dj1, then in_dj2):");
195 for(dj = in_dj1; dj != NULL; dj = dj->
succ ){
203 #line 257 "disjunct.w"
222 for( dj = in_dj1; dj->
succ != NULL; dj = dj->
succ) {};
227 #line 287 "disjunct.w"
236 bool ret_bool =
false;
240 for( dj = in_dj; dj != NULL && !ret_bool; dj = dj->
succ ) {
241 if (dj->
psys == SC_UNDEFINED)
return false;
242 ret_bool = ret_bool ||
248 #line 315 "disjunct.w"
266 C3_DEBUG(
"dj_system_complement (in_ps)",
296 #line 367 "disjunct.w"
307 C3_DEBUG(
"dj_disjunct_complement (in_ps)",
311 for(; in_dj != NULL; in_dj = in_dj->
succ)
316 #line 391 "disjunct.w"
328 for(dj = in_dj; dj != NULL; dj = dj->
succ)
329 { sc_projection_along_variables_ofl_ctrl( &(dj->
psys), in_pv, ofl_ctrl ); }
333 #line 414 "disjunct.w"
350 for( dj = in_dj; dj != NULL; dj = dj->
succ) {
388 #line 477 "disjunct.w"
414 #line 507 "disjunct.w"
426 for(dj = in_dj; dj != NULL; dj = dj->
succ)
431 #line 532 "disjunct.w"
452 C3_DEBUG(
"dj_variable_substitution_with_eqs_ofl_ctrl", {
463 for(vec1 = in_pv; vec1 != NULL; vec1 = vec1->
succ) {
471 for(pr = in_pc; pr != NULL; pr = pr->
succ)
476 for(vec2 = in_pv; vec2 != NULL; vec2 = vec2->
succ) {
477 if (vec2->
var == var)
continue;
482 for(dj = in_dj; dj != NULL; dj = dj->
succ)
483 { dj->
psys = sc_variable_substitution_with_eq_ofl_ctrl(dj->
psys, def, var, ofl_ctrl); }
503 fprintf ( in_fi,
"\n%s# -----DJ BEGIN-----\n", tabs );
505 fprintf ( in_fi,
"\n%s# -----DJ END-----\n", tabs );
514 #line 64 "disjunct.w"
#define CONTRAINTE_UNDEFINED
Pcontrainte contrainte_make(Pvecteur pv)
Pcontrainte contrainte_make(Pvecteur pv): allocation et initialisation d'une contrainte avec un vecte...
Pcontrainte contrainte_free(Pcontrainte c)
Pcontrainte contrainte_free(Pcontrainte c): liberation de l'espace memoire alloue a la contrainte c a...
Pcontrainte contrainte_dup(Pcontrainte c_in)
Pcontrainte contrainte_dup(Pcontrainte c_in): allocation d'une contrainte c_out prenant la valeur de ...
Pcontrainte contraintes_dup(Pcontrainte c_in)
Pcontrainte contraintes_dup(Pcontrainte c_in) a list of constraints is copied.
void contrainte_fprint(FILE *, Pcontrainte, bool, char *(*)(Variable))
io.c
bool contrainte_in_liste(Pcontrainte, Pcontrainte)
listes.c
Pdisjunct dj_system_complement(Psysteme in_ps)
Pdisjunct dj_system_complement( (Psystem) in_ps ) AL 26/10/93 Input : A Psysteme.
bool dj_is_system_p(Pdisjunct in_dj)
bool dj_is_system_p( (Pdisjunct) in_dj ) AL 16/11/93 Returns True if disjunction in_dj has only one P...
Pdisjunct dj_disjunct_complement(Pdisjunct in_dj)
Returns complement of in_dj.
Pdisjunct dj_read(char *nomfic)
void dj_read(FILE*) reads a Pdisjunct
Pdisjunct dj_free(Pdisjunct in_dj)
Pdisjunct dj_free( (Pdisjunct) in_dj ) AL 31/05/94 w - 1 depth free of input disjunction.
Pdisjunct dj_new()
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 ...
Pdisjunct dj_intersect_system_ofl_ctrl(in_dj, in_ps, ofl_ctrl)
Pdisjunct dj_intersect_system_ofl_ctrl( )
Pdisjunct dj_append_system(Pdisjunct in_dj, Psysteme in_ps)
Pdisjunct dj_append_system( (Pdisjunct) in_dj, (Psysteme) in_ps ) Input : A disjunct in_dj to wich in...
Pdisjunct dj_intersection_ofl_ctrl(Pdisjunct in_dj1, Pdisjunct in_dj2, int ofl_ctrl)
Pdisjunct dj_intersection_ofl_ctrl( in_dj1, in_dj2, ofl_ctrl ) Computes intersection of two disjuncti...
Pdisjunct dj_projection_along_variables_ofl_ctrl(Pdisjunct in_dj, Pvecteur in_pv, int ofl_ctrl)
Returns projection of in_dj along vars of in_pv.
Pdisjunct dj_dup1(Pdisjunct in_dj)
Pdisjunct dj_dup1( (Pdisjunct) in_dj ) AL 31/05/94 1st depth duplication of input disjunction.
Pdisjunct dj_dup(Pdisjunct in_dj)
Pdisjunct dj_dup( (Pdisjunct) in_dj ) AL 15/11/93 Duplicates input disjunction.
Pdisjunct dj_simple_inegs_to_eg(Pdisjunct in_dj)
Pdisjunct dj_simple_inegs_to_eg( in_dj ) transforms two opposite inequalities in a simple equality in...
Pdisjunct dj_union(Pdisjunct in_dj1, Pdisjunct in_dj2)
Pdisjunct dj_union( (Pdisjunct) in_dj1, (Pdisjunct) in_dj2 ) Give the union of the two disjunctions.
bool dj_empty_p(Pdisjunct in_dj)
dj_empty_p( (Ppath) in_pa ) AL 30/05/94 Returns True if in_dj = (1*TCST = 0) ^ (NIL)
Pdisjunct dj_intersect_djcomp_ofl_ctrl(Pdisjunct in_dj1, Pdisjunct in_dj2, int ofl_ctrl)
Pdisjunct dj_intersect_djcomp_ofl_ctrl( ) No sharing.
Pdisjunct dj_variable_rename(Pdisjunct in_dj, Variable in_vold, Variable in_vnew)
dj_variable_rename replaces in_vold with in_vnew : in_dj is modified
Pdisjunct dj_full()
Pdisjunct dj_full() AL 18/11/93 Return full space disjunction = dj_new()
bool dj_full_p(Pdisjunct in_dj)
dj_full_p( (Pdisjunct) in_dj ) AL 30/05/94 Returns True if in_dj = (NIL) ^ (NIL)
bool dj_feasibility_ofl_ctrl(Pdisjunct in_dj, int ofl_ctrl)
bool dj_feasibility_ofl_ctrl( (Pdisjunct) in_dj, (int) ofl_ctrl ) Returns true if in_dj is a feasible...
Pdisjunct dj_variable_substitution_with_eqs_ofl_ctrl(in_dj, in_pc, in_pv, ofl_ctrl)
Pdisjunct dj_variable_substitution_with_eqs_ofl_ctrl() AL160595 Substitutes to all systems of disjunc...
void dj_fprint_tab(FILE *in_fi, Pdisjunct in_dj, char *(*in_fu)(), int in_tab)
void dj_fprint_tab(FILE*, Pdisjunct, function, int) prints a Pdisjunct
Pdisjunct dj_free1(Pdisjunct in_dj)
Pdisjunct dj_free1( (Pdisjunct) in_dj ) AL 31/05/94 1st depth free of input disjunction.
Pdisjunct dj_empty()
Pdisjunct dj_empty() AL 18/11/93 Returns a disjunction with sc_empty() element.
void vect_fprint(FILE *f, Pvecteur v, get_variable_name_t variable_name)
void vect_fprint(FILE * f, Pvecteur v, char * (*variable_name)()): impression d'un vecteur creux v su...
Ppath pa_make(Psysteme in_ps, Pcomplist in_pcomp)
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 ...
Pdisjunct pa_path_to_few_disjunct_ofl_ctrl(Ppath in_pa, int ofl_ctrl)
line 1197 "reduc.w"
Psysteme sc_make(Pcontrainte leg, Pcontrainte lineg)
Psysteme sc_make(Pcontrainte leg, Pcontrainte lineg): allocation et initialisation d'un systeme d'equ...
Psysteme sc_variable_rename(Psysteme s, Variable v_old, Variable v_new)
Psysteme sc_variable_rename(Psysteme s, Variable v_old, Variable v_new): reecriture du systeme s remp...
Psysteme sc_empty(Pbase b)
Psysteme sc_empty(Pbase b): build a Psysteme with one unfeasible constraint to define the empty subsp...
void sc_creer_base(Psysteme ps)
void sc_creer_base(Psysteme ps): initialisation des parametres dimension et base d'un systeme lineair...
void sc_add_egalite(Psysteme p, Pcontrainte e)
void sc_add_egalite(Psysteme p, Pcontrainte e): macro ajoutant une egalite e a un systeme p; la base ...
bool sc_empty_p(Psysteme sc)
bool sc_empty_p(Psysteme sc): check if the set associated to sc is the constant sc_empty or not.
void sc_add_inegalite(Psysteme p, Pcontrainte i)
void sc_add_inegalite(Psysteme p, Pcontrainte i): macro ajoutant une inegalite i a un systeme p; la b...
Psysteme sc_dup(Psysteme ps)
Psysteme sc_dup(Psysteme ps): should becomes a link.
bool sc_rational_feasibility_ofl_ctrl(Psysteme sc, int ofl_ctrl, bool ofl_res)
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
Psysteme sc_append(Psysteme s1, Psysteme s2)
Psysteme sc_append(Psysteme s1, Psysteme s2): calcul de l'intersection des polyedres definis par s1 e...
void sc_fprint(FILE *fp, Psysteme ps, get_variable_name_t nom_var)
void sc_fprint(FILE * f, Psysteme ps, char * (*nom_var)()): cette fonction imprime dans le fichier po...
Psysteme sc_free(Psysteme in_ps)
Psysteme sc_free( in_ps ) AL 30/05/94 Free of in_ps.
Psyslist sl_free1(Psyslist psl)
Psyslist sl_free1(Psyslist psl) AL 30/05/94 1 depth free.
Psyslist sl_free(Psyslist psl)
Psyslist sl_free(Psyslist psl) BA, AL 30/05/94 w - 1 depth free.
bool sl_is_system_p(Psyslist in_sl)
bool sl_is_system_p( (Psyslist) in_sl ) AL 16/11/93 Returns True if syslist in_sl has only one Psyste...
char *(* union_variable_name)(Variable)
Package : C3/union Author : Arnauld LESERVOT (leservot(a)limeil.cea.fr) Date : Modified : 04 04 95 ...
Psyslist sl_append_system(Psyslist in_sl, Psysteme in_ps)
Psyslist sl_append_system( (Psyslist) in_sl, (Psysteme) in_ps ) Input : A disjunct in_sl to wich in_p...
Psyslist sl_dup1(Psyslist in_sl)
Psyslist sl_dup1( (Psyslist) in_sl ) AL 15/11/93 Duplicates input syslist.
char * sl_get_tab_string(int in_tab)
char* sl_get_tab_string( in_tab ) returns a string of in_tab \t
Psyslist sl_read(char *nomfic)
void sl_read(FILE*) reads a Psyslist
bool sc_full_p(Psysteme in_ps)
Psysteme sc_full_p( in_ps ) similar to sc_new.
Psyslist sl_dup(Psyslist in_sl)
Psyslist sl_dup( (Psyslist) in_sl ) AL 15/11/93 w - 1 duplication : everything is duplicated,...
Psyslist sl_new()
Psyslist sl_new() AL 26/10/93 Input : Nothing.
void sl_fprint_tab(FILE *in_fi, Psyslist in_sl, char *(*in_fu)(), int in_tab)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
void vect_chg_sgn(Pvecteur v)
void vect_chg_sgn(Pvecteur v): multiplie v par -1
struct Scontrainte * succ
Warning! Do not modify this file that is automatically generated!
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
#define dj_fprint(fi, dj, fu)
#define DJ_UNDEFINED_P(dj)
#define C3_DEBUG(fun, code)
#define dj_intersection(dj1, dj2)
#define C3_RETURN(type, val)
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Pvecteur vect_dup(Pvecteur v_in)
Pvecteur vect_dup(Pvecteur v_in): duplication du vecteur v_in; allocation de et copie dans v_out;.
Pvecteur vect_new(Variable var, Value coeff)
Pvecteur vect_new(Variable var,Value coeff): allocation d'un vecteur colineaire au vecteur de base va...
void vect_rm(Pvecteur v)
void vect_rm(Pvecteur v): desallocation des couples de v;
Pvecteur vect_add(Pvecteur v1, Pvecteur v2)
package vecteur - operations binaires
Value vect_coeff(Variable var, Pvecteur vect)
Variable vect_coeff(Variable var, Pvecteur vect): coefficient de coordonnee var du vecteur vect —> So...