PIPS
|
Go to the source code of this file.
Data Structures | |
struct | typ_som |
structure de donnees Sommet More... | |
Macros | |
#define | SOMMET 1004 |
Warning! Do not modify this file that is automatically generated! More... | |
#define | print_som(s) sommet_fprint(stdout,s) |
#define | print_lsom(ls) fprint_lsom(stdout,ls) |
#define | VERSION_FINALE |
#define | SOMMET_RM(s, function_name) sommet_rm(s) |
#define | sommet_denominateur(s) ((s)->denominateur) |
macros d'acces More... | |
Typedefs | |
typedef struct typ_som * | Psommet |
structure de donnees Sommet More... | |
typedef struct typ_som | Ssommet |
Functions | |
Psommet | sommet_new (void) |
SOMMET. More... | |
Psommet | sommet_make (Value, Pvecteur) |
Psommet sommet_make(int d, Pvecteur v): allocation et initialisation d'un sommet de denominateur d et de vecteur v; le vecteur v est utilise directement; ca peut introduire du sharing;. More... | |
Psommet | sommet_dup (Psommet) |
Psommet sommet_dup(Psommet s_in): allocation et copie de la valeur d'un sommet. More... | |
void | sommet_rm (Psommet) |
void sommet_rm(Psommet s): desallocation complete d'une structure sommet More... | |
void | dbg_sommet_rm (Psommet, char *) |
void | sommet_fprint (FILE *, Psommet, char *(*)(Variable)) |
void | sommet_fprint_as_dense (FILE *, Psommet, Pbase) |
void sommet_fprint_as_dense(FILE * f, Psommet s): impression d'un sommet More... | |
void | sommet_dump (Psommet) |
void sommet_dump(Psommet s): impression d'un sommet sur stderr avec variable_debug_name() More... | |
void | fprint_lsom (FILE *, Psommet, char *(*)(Variable)) |
void | fprint_lsom_as_dense (FILE *, Psommet, Pbase) |
void fprint_lsom_as_dense(FILE * f, Psommet s): impression d'une liste de sommets More... | |
void | sommet_normalize (Psommet) |
void sommet_normalize(Psommet ns): normalisation des coordonnees d'un sommet par le pgcd des coordonnees et du denominateur More... | |
bool | som_in_liste (Psommet, Psommet) |
bool som_in_liste(Psommet s, Psommet l): test de l'appartenance du sommet s a la liste de sommets l More... | |
bool | sommet_egal (Psommet, Psommet) |
bool sommet_egal(Psommet s1, Psommet s2): test de l'egalite de representation de deux sommets More... | |
bool | egaliste_s (Psommet, Psommet *) |
bool egaliste_s(Psommet l1, Psommet * ad_l2): test d'egalite de listes de sommets More... | |
void | sommet_add (Psommet *, Psommet, int *) |
void sommet_add(Psommet *ps, Psommet som, int *nb_soms): Ajout d'un sommet a une liste de sommets Le sommet est ajoute a la fin de la liste. More... | |
Psommet | sommets_dup (Psommet) |
sommets.c More... | |
void | sommets_rm (Psommet) |
void sommets_rm(Psommet ps): liberation de l'espace memoire alloue a une liste de sommets More... | |
void | sommets_normalize (Psommet) |
void sommets_normalize(som) Normalisation des elements d'une liste de sommets i.e. More... | |
#define print_lsom | ( | ls | ) | fprint_lsom(stdout,ls) |
#define print_som | ( | s | ) | sommet_fprint(stdout,s) |
#define SOMMET 1004 |
Warning! Do not modify this file that is automatically generated!
Modify src/Libs/sommet/sommet-local.h instead, to add your own modifications. header file built by cproto sommet-local.h package sommet: structure de donnees representant les sommets d'un systeme generateur; elle contient:
Francois Irigoin, Mai 1989
Cette structure de donnees est aussi utilisee dans plint.dir pour representer la fonction economique, les contraintes lineaires et les systemes de contraintes lineaires.
FI: commentaires a completer par Corinne, declaration d'un type synonyme pour eviter les conflits? valeur numerique utilise pour flagger les structures de donnees de type sommet
#define sommet_denominateur | ( | s | ) | ((s)->denominateur) |
macros d'acces
int sommet_denominateur(Psommet): denominateur des coordonnees d'un sommet; ex den_of()
structure de donnees Sommet
void dbg_sommet_rm | ( | Psommet | s, |
char * | f | ||
) |
Definition at line 117 of file sommet.c.
References dbg_vect_rm(), f(), fprintf(), FREE, SOMMET, sommet_fprint(), and variable_debug_name.
bool egaliste_s(Psommet l1, Psommet * ad_l2): test d'egalite de listes de sommets
nous proposons un test direct au lieu d'un test en deux etapes d'inclusion dans les deux sens; ceci justifie le second parametre qui est l'adresse du pointeur de liste (Malik Imadache)
elements pour lesquels il reste a trouver un "jumeau" dans l1
adresse a laquelle il faudra raccrocher les elements de l2 successivement testes
on a trouve un element (eq21) de eq2 egal a l'element courant de l1; on remet donc eq21 dans l2, en distingant 2 cas suivant qu'il est en tete de eq2 ou pas
eq23 est le predecesseur de eq21 dans eq2 il faut le conserver pour enlever eq21 de eq2
eq21 est different de l'element de l1 qui est teste; il faut voir le reste de la liste eq2
on a trouve un element de l1 qui n'a pas de "jumeau" dans l2 => reformer l2 et sortir
tous les elements de l1 ont un jumeau (=> l1 est inclus dans l2) si tous les elements de l2 sont jumeaux (inclusion inverse) => egalite
dans le cas inverse reformer l2 et sortir
l1 | 1 |
ad_l2 | d_l2 |
Definition at line 258 of file sommet.c.
References sommet_egal(), and typ_som::succ.
Referenced by egal_soms().
void fprint_lsom | ( | FILE * | , |
Psommet | , | ||
char * | *)(Variable | ||
) |
void fprint_lsom_as_dense(FILE * f, Psommet s): impression d'une liste de sommets
ls | s |
Definition at line 191 of file sommet.c.
References f(), sommet_fprint_as_dense(), and typ_som::succ.
Referenced by prettyprint_dependence_graph(), prettyprint_dot_dependence_graph(), and sg_fprint_as_dense().
bool som_in_liste(Psommet s, Psommet l): test de l'appartenance du sommet s a la liste de sommets l
Les coordonnees du sommet s et des sommets de la liste l sont supposees normalisees (fractions reduites)
listes | istes |
Definition at line 222 of file sommet.c.
References typ_som::denominateur, s1, vect_equal(), and typ_som::vecteur.
void sommet_add(Psommet *ps, Psommet som, int *nb_soms): Ajout d'un sommet a une liste de sommets Le sommet est ajoute a la fin de la liste.
ps | s |
som | om |
nb_som | b_som |
Definition at line 342 of file sommet.c.
References typ_som::succ.
Referenced by eq_in_ineq(), plint_degen(), and plint_pas().
void sommet_dump | ( | Psommet | s | ) |
void sommet_dump(Psommet s): impression d'un sommet sur stderr avec variable_debug_name()
Definition at line 168 of file sommet.c.
References sommet_fprint(), and variable_debug_name.
Psommet sommet_dup(Psommet s_in): allocation et copie de la valeur d'un sommet.
s_in | _in |
Definition at line 82 of file sommet.c.
References abort, typ_som::denominateur, typ_som::eq_sat, fprintf(), MALLOC, SOMMET, typ_som::succ, vect_dup(), and typ_som::vecteur.
Referenced by sg_dup(), sg_union(), sommets_dup(), and sommets_dupc().
bool sommet_egal(Psommet s1, Psommet s2): test de l'egalite de representation de deux sommets
Il faut en normaliser les coordonnees d'abord si on veut une egalite de valeur
s1 | 1 |
s2 | 2 |
Definition at line 242 of file sommet.c.
References s1, sommet_denominateur, and vect_equal().
Referenced by egaliste_s().
void sommet_fprint | ( | FILE * | , |
Psommet | , | ||
char * | *)(Variable | ||
) |
void sommet_fprint_as_dense(FILE * f, Psommet s): impression d'un sommet
Definition at line 152 of file sommet.c.
References typ_som::denominateur, f(), fprint_Value(), fprintf(), value_notone_p, vect_fprint_as_dense(), and typ_som::vecteur.
Referenced by fprint_lsom_as_dense().
Psommet sommet_make(int d, Pvecteur v): allocation et initialisation d'un sommet de denominateur d et de vecteur v; le vecteur v est utilise directement; ca peut introduire du sharing;.
Definition at line 67 of file sommet.c.
References typ_som::denominateur, sommet_new(), and typ_som::vecteur.
Referenced by mk_rn(), and sg_of_rays().
Psommet sommet_new | ( | void | ) |
SOMMET.
cproto-generated files sommet.c
SOMMET.
Definition at line 51 of file sommet.c.
References typ_som::denominateur, typ_som::eq_sat, MALLOC, SOMMET, typ_som::succ, and typ_som::vecteur.
Referenced by fonct_init(), fonct_max(), fonct_max_all(), fonct_max_d(), fonct_min(), fonct_min_all(), fonct_min_d(), fonct_read(), and sommet_make().
void sommet_normalize | ( | Psommet | ns | ) |
void sommet_normalize(Psommet ns): normalisation des coordonnees d'un sommet par le pgcd des coordonnees et du denominateur
ns | s |
Definition at line 205 of file sommet.c.
References assert, pgcd, value_division, value_pos_p, vect_div(), and vect_pgcd_all().
Referenced by sommets_normalize().
void sommet_rm | ( | Psommet | s | ) |
void sommet_rm(Psommet s): desallocation complete d'une structure sommet
Definition at line 110 of file sommet.c.
References FREE, SOMMET, and vect_rm().
pointeur vers le dernier element de la liste
pointeur vers le premier element de la liste
som | om |
Definition at line 49 of file sommets.c.
References printf(), sommet_dup(), and typ_som::succ.
void sommets_normalize | ( | Psommet | som | ) |
void sommets_normalize(som) Normalisation des elements d'une liste de sommets i.e.
division par le pgcd de tous les elements.
som | om |
Definition at line 108 of file sommets.c.
References sommet_normalize(), and typ_som::succ.
Referenced by eq_in_ineq(), pivoter(), and primal_pivot().
void sommets_rm | ( | Psommet | ps | ) |
void sommets_rm(Psommet ps): liberation de l'espace memoire alloue a une liste de sommets
ps | s |
Definition at line 83 of file sommets.c.
References typ_som::eq_sat, FREE, printf(), SOMMET, typ_som::succ, vect_rm(), and typ_som::vecteur.
Referenced by dual_pivot(), dual_pivot_pas(), find_eg(), gomory_eq(), plint(), plint_degen(), plint_pas(), plreal(), primal(), primal_pivot(), and primal_positive().