45 #define MALLOC(s,t,f) malloc((unsigned)(s))
46 #define FREE(s,t,f) free((char *)(s))
69 printf (
" **** elimination d'une liste de variables \n");
72 for (pv = lvbase; pv!=NULL; pv = pv->
succ)
73 for (ps1 = sys; ps1 != NULL; ps1 = ps1->
succ)
98 pv!= NULL && ((pv->
var!=var) || (pv->
val == 0));
126 for (pv = *lvbase; pv != NULL && (pv->
val != vno_ligne);pv=pv->
succ);
127 if (pv !=NULL) trouve =
true;
128 for (pv = *lvbase;( pv != NULL) &&(trouve) ;pv=pv->
succ) {
154 printf(
" **** oter la variable d'indice %d \n",no_ligne);
159 pv = (*lvbase)->
succ;
160 (*lvbase)->
succ = NULL;
165 for (pv = (*lvbase)->
succ;
195 printf(
" *** recherche d'une variable de base \n");
202 for(pv3 =pv; pv3->
succ!=NULL;pv3=pv3->
succ);
#define value_increment(ref)
#define int_to_value(i)
end LINEAR_VALUE_IS_INT
#define value_eq(v1, v2)
bool operators on values
void lvbase_ote_no_ligne(int no_ligne, Pvecteur *lvbase)
void lvbase_ote_no_ligne(int no_ligne, Pvecteur * lvbase): Elimination de la variable de base corresp...
bool is_var_in_lvbase(Variable var, Pvecteur lvbase)
bool is_var_in_lvbase(Variable var, Pvecteur lvbase): test de non appartenance d'une variable a un ve...
Variable find_vbase(Psommet eq, Pvecteur lvbase)
Variable find_vbase(Psommet eq, Pvecteur lvbase): Recherche de la variable de base d'une contrainte.
Variable coeff_no_ligne(Pvecteur lvbase, int no_ligne)
Variable coeff_no_ligne(lvbase, int no_ligne): Recherche de la variable de base d'une contrainte.
void lvbase_add(Variable var, int no_ligne, Pvecteur *lvbase)
void lvbase_add(Variable var, int no_ligne, Pvecteur * lvbase): ajout d'un couple (variable de base,...
void oter_lvbase(Psommet sys, Pvecteur lvbase)
void oter_lvbase(Psommet sys, Pvecteur lvbase): Elimination d'une liste de variables contenues dans u...
static hash_table pl
properties are stored in this hash table (string -> property) for fast accesses.
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
structure de donnees Sommet
#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....
#define VECTEUR
package sur les vecteurs creux et les bases
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;
int vect_compare(Pvecteur *pv1, Pvecteur *pv2)
for qsort, returns:
Value vect_coeff(Variable var, Pvecteur vect)
Variable vect_coeff(Variable var, Pvecteur vect): coefficient de coordonnee var du vecteur vect —> So...
void vect_chg_coeff(Pvecteur *ppv, Variable var, Value val)
void vect_chg_coeff(Pvecteur *ppv, Variable var, Value val): mise de la coordonnee var du vecteur *pp...
Pvecteur vect_sort(Pvecteur v, int *compare)
Pvecteur vect_sort(v, compare) Pvecteur v; int (*compare)();.