PIPS
sommets.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
#include "sommet.h"
+ Include dependency graph for sommets.c:

Go to the source code of this file.

Macros

#define MALLOC(s, t, f)   malloc(s)
 package plint More...
 
#define FREE(s, t, f)   free(s)
 

Functions

Psommet sommets_dup (Psommet som)
 Psommet sommets_dup(Psommet som): copie d'une liste de sommets tout en respectant le meme ordre. More...
 
void sommets_rm (Psommet ps)
 void sommets_rm(Psommet ps): liberation de l'espace memoire alloue a une liste de sommets More...
 
void sommets_normalize (Psommet som)
 void sommets_normalize(som) Normalisation des elements d'une liste de sommets i.e. More...
 

Macro Definition Documentation

◆ FREE

#define FREE (   s,
  t,
  f 
)    free(s)

Definition at line 43 of file sommets.c.

◆ MALLOC

#define MALLOC (   s,
  t,
  f 
)    malloc(s)

package plint

Definition at line 42 of file sommets.c.

Function Documentation

◆ sommets_dup()

Psommet sommets_dup ( Psommet  som)

Psommet sommets_dup(Psommet som): copie d'une liste de sommets tout en respectant le meme ordre.

sommets.c

pointeur vers le dernier element de la liste

pointeur vers le premier element de la liste

Parameters
somom

Definition at line 49 of file sommets.c.

51 {
52 
53  Psommet som1,som2;
54  /* pointeur vers le dernier element de la liste*/
55  Psommet pred;
56  /* pointeur vers le premier element de la liste*/
57  Psommet debut = NULL;
58 
59 
60 #ifdef TRACE
61  printf(" ***** duplication du systeme \n");
62 #endif
63  if (som)
64  {
65  som2 = sommet_dup(som);
66  debut = som2;
67  pred = som2;
68  for (som1 = som->succ; som1 != NULL; som1 = som1->succ)
69  {
70 
71  som2 = sommet_dup(som1);
72  pred->succ = som2;
73  pred = som2;
74  };
75  };
76  return (debut);
77 }
int printf()
Psommet sommet_dup(Psommet s_in)
Psommet sommet_dup(Psommet s_in): allocation et copie de la valeur d'un sommet.
Definition: sommet.c:82
structure de donnees Sommet
Definition: sommet-local.h:64
struct typ_som * succ
Definition: sommet-local.h:68

References printf(), sommet_dup(), and typ_som::succ.

+ Here is the call graph for this function:

◆ sommets_normalize()

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.

Parameters
somom

Definition at line 108 of file sommets.c.

110 {
111  Psommet ps;
112  for (ps = som;ps!= NULL; ps= ps->succ)
113  sommet_normalize(ps);
114 }
void sommet_normalize(Psommet ns)
void sommet_normalize(Psommet ns): normalisation des coordonnees d'un sommet par le pgcd des coordonn...
Definition: sommet.c:205

References sommet_normalize(), and typ_som::succ.

Referenced by eq_in_ineq(), pivoter(), and primal_pivot().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sommets_rm()

void sommets_rm ( Psommet  ps)

void sommets_rm(Psommet ps): liberation de l'espace memoire alloue a une liste de sommets

Parameters
pss

Definition at line 83 of file sommets.c.

85 {
86  Psommet p1,p2;
87 
88 #ifdef TRACE2
89  printf(" ***** erase systeme \n");
90 #endif
91 
92  for (p2 = ps;p2 != NULL;)
93  {
94  p1 = p2->succ;
95  FREE((int *)p2->eq_sat,INTEGER,"sommets_rm");
96  vect_rm(p2->vecteur);
97  FREE((Psommet)p2,SOMMET,"sommets_rm");
98  p2 = p1;
99  }
100 
101 }
#define SOMMET
package sommet: structure de donnees representant les sommets d'un systeme generateur; elle contient:
Definition: sommet-local.h:48
#define FREE(s, t, f)
Definition: sommets.c:43
Pvecteur vecteur
Definition: sommet-local.h:66
int * eq_sat
Definition: sommet-local.h:65
void vect_rm(Pvecteur v)
void vect_rm(Pvecteur v): desallocation des couples de v;
Definition: alloc.c:78

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: