45 #define MALLOC(s,t,f) malloc(s)
46 #define FREE(s,t,f) free(s)
89 if(s_in->eq_sat!=NULL) {
91 "sommet_dup: warning eq_sat is not duplicated\n");
94 if(s_in->denominateur==0) {
95 (void)
fprintf(stderr,
"sommet_dup: denominateur nul\n");
121 (void)
fprintf(stderr,
"destruction de sommet dans %s : ",
f);
183 for (e = ls; e != NULL; e = e->
succ) {
197 for (e = ls; e != NULL; e = e->
succ) {
211 div =
pgcd(div, ns->denominateur);
228 for (
s1=listes;
s1!=NULL;
s1=
s1->succ) {
262 Psommet eq1,eq2,eq21,eq23,*ad_aux;
264 if (l1==(*ad_l2))
return(
true);
274 for(eq1=l1;eq1!=NULL;eq1=eq1->
succ) {
276 for(eq21=eq2,eq23=eq2;eq21!=NULL;) {
292 ad_aux = &(eq21->
succ);
299 ad_aux = &(eq21->
succ);
352 for (ps1 = pred; ps1 != NULL; pred = ps1, ps1 = ps1->
succ);
355 *nb_som = (*nb_som) +1;
#define pgcd(a, b)
Pour la recherche de performance, selection d'une implementation particuliere des fonctions.
#define value_notone_p(val)
#define value_division(ref, val)
void fprint_Value(FILE *, Value)
void vect_fprint_as_dense(FILE *f, Pvecteur v, Pbase b)
void vect_fprint_as_dense(FILE * f, Pvecteur v, Pbase b):
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...
Value vect_pgcd_all(Pvecteur v)
Value vect_pgcd(Pvecteur v): calcul du pgcd de tous les coefficients non nul d'un vecteur v.
bool vect_equal(Pvecteur v1, Pvecteur v2)
bool vect_equal(Pvecteur v1, Pvecteur v2): test a egalite de deux vecteurs
char *(* variable_debug_name)(Variable)
Debug support: pointer to the function used by debug print outs.
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
Pvecteur vect_div(Pvecteur v, Value x)
Pvecteur vect_div(Pvecteur v, Value x): division du vecteur v par le scalaire x, si x est different d...
struct typ_som * Psommet
structure de donnees Sommet
#define SOMMET
package sommet: structure de donnees representant les sommets d'un systeme generateur; elle contient:
#define sommet_denominateur(s)
macros d'acces
void sommet_rm(Psommet s)
void sommet_rm(Psommet s): desallocation complete d'une structure sommet
#define MALLOC(s, t, f)
package pour la structure de donnees sommet (sommet d'un systeme generateur)
void fprint_lsom_as_dense(FILE *f, Psommet ls, Pbase b)
void fprint_lsom_as_dense(FILE * f, Psommet s): impression d'une liste de sommets
Psommet sommet_new()
Creation d'un sommet
void sommet_add(Psommet *ps, Psommet som, int *nb_som)
void sommet_add(Psommet *ps, Psommet som, int *nb_soms): Ajout d'un sommet a une liste de sommets Le ...
void sommet_fprint(FILE *f, Psommet s, char *(*nom_var)(Variable))
void sommet_fprint(FILE * f, Psommet s, char * (*nom_var)()): impression d'un sommet
void fprint_lsom(FILE *f, Psommet ls, char *(*nom_var)(Variable))
void fprint_lsom(FILE * f, Psommet s, char * (*nom_var)()): impression d'une liste de sommets
Psommet sommet_make(Value d, Pvecteur v)
Psommet sommet_make(int d, Pvecteur v): allocation et initialisation d'un sommet de denominateur d et...
bool sommet_egal(Psommet s1, Psommet s2)
bool sommet_egal(Psommet s1, Psommet s2): test de l'egalite de representation de deux sommets
void dbg_sommet_rm(Psommet s, char *f)
void sommet_dump(Psommet s)
void sommet_dump(Psommet s): impression d'un sommet sur stderr avec variable_debug_name()
void sommet_fprint_as_dense(FILE *f, Psommet s, Pbase b)
void sommet_fprint_as_dense(FILE * f, Psommet s): impression d'un sommet
void sommet_normalize(Psommet ns)
void sommet_normalize(Psommet ns): normalisation des coordonnees d'un sommet par le pgcd des coordonn...
bool egaliste_s(Psommet l1, Psommet *ad_l2)
bool egaliste_s(Psommet l1, Psommet * ad_l2): test d'egalite de listes de sommets
bool som_in_liste(Psommet s, Psommet listes)
bool som_in_liste(Psommet s, Psommet l): test de l'appartenance du sommet s a la liste de sommets l
Psommet sommet_dup(Psommet s_in)
Psommet sommet_dup(Psommet s_in): allocation et copie de la valeur d'un sommet.
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
structure de donnees Sommet
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;.
void dbg_vect_rm(Pvecteur v, char __attribute__((unused)) *f)
void dbg_vect_rm(Pvecteur v, char * f): desallocation d'un vecteur avec marquage de la fonction provo...
void vect_rm(Pvecteur v)
void vect_rm(Pvecteur v): desallocation des couples de v;