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

Go to the source code of this file.

Functions

Psysteme read_syst_from_file (char *name)
 Test de l'enveloppe convexe de deux systemes. More...
 
int main (int argc, char **argv)
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 73 of file test_env_chernikova.c.

74 {
75  Psysteme sc1, sc2, sc;
76 
77  if(argc!=3) {
78  fprintf(stdout,"Usage: %s sc1 sc2\n",argv[0]);
79  exit(1);
80  }
81 
82  sc1 = read_syst_from_file(argv[1]);
83  sc2 = read_syst_from_file(argv[2]);
84 
85  sc1 = sc_normalize(sc1);
86  sc2 = sc_normalize(sc2);
87 
88  sc_fprint(stdout, sc1, *variable_default_name);
89  sc_fprint(stdout, sc2, *variable_default_name);
90 
91  assert(vect_size(sc1->base) == vect_size(sc2->base));
92 
93  sc2 = sc_translate(sc2, sc1->base, *variable_default_name);
94  sc = sc_convex_hull(sc1,sc2);
95 
96  printf("systeme correspondant \n");
97  sc_fprint(stdout, sc, *variable_default_name);
98 
99  return 0;
100 }
Psysteme sc_convex_hull(Psysteme sc1, Psysteme sc2)
Definition: chernikova.c:74
int vect_size(Pvecteur v)
package vecteur - reductions
Definition: reductions.c:47
char * variable_default_name(Variable v)
char * variable_default_name(Variable v): returns the name of variable v
Definition: variable.c:81
#define exit(code)
Definition: misc-local.h:54
#define assert(ex)
Definition: newgen_assert.h:41
Psysteme sc_translate(Psysteme s, Pbase b, char *(*variable_name)())
Psysteme sc_translate(Psysteme s, Pbase b, char * (*variable_name)()): reecriture du systeme s dans l...
Definition: sc.c:99
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...
Definition: sc_io.c:220
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
int printf()
Psysteme sc_normalize(Psysteme ps)
Psysteme sc_normalize(Psysteme ps): normalisation d'un systeme d'equation et d'inequations lineaires ...
Pbase base
Definition: sc-local.h:75
Psysteme read_syst_from_file(char *name)
Test de l'enveloppe convexe de deux systemes.

References assert, Ssysteme::base, exit, fprintf(), printf(), read_syst_from_file(), sc_convex_hull(), sc_fprint(), sc_normalize(), sc_translate(), variable_default_name(), and vect_size().

+ Here is the call graph for this function:

◆ read_syst_from_file()

Psysteme read_syst_from_file ( char *  name)

Test de l'enveloppe convexe de deux systemes.

L'enveloppe convexe est faite par traduction des systemes lineaires en systemes generateurs (par chernikova), puis par union des systemes generateurs, enfin par la traduction du systeme generateur resultant en systeme lineaire (toujours par chernikovva). Cette fonction utilise la bibliotheque fournie par l'IRISA. On suppose que les deux systemes fournis en entree ont la meme base

sc_fprint(stderr, s, *variable_default_name);

Definition at line 51 of file test_env_chernikova.c.

52 {
53  FILE * f;
54  Psysteme s = sc_new();
55 
56  if((f = fopen(name,"r")) == NULL) {
57  fprintf(stderr,"Ouverture du fichier %s impossible\n",name);
58  exit(2);
59  }
60 
61  if(sc_fscan(f,&s)) {
62  fprintf(stderr,"syntaxe correcte dans %s\n",name);
63  /* sc_fprint(stderr, s, *variable_default_name); */
64  }
65  else {
66  fprintf(stderr,"erreur de syntaxe dans %s\n",name);
67  exit(3);
68  }
69 
70  return s;
71 }
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
Definition: offsets.c:15
Psysteme sc_new(void)
Psysteme sc_new(): alloue un systeme vide, initialise tous les champs avec des valeurs nulles,...
Definition: sc_alloc.c:55
bool sc_fscan(FILE *f, Psysteme *ps)
bool sc_fscan(FILE * f, Psysteme * ps): construit un systeme d'inegalites et d'egalites lineaires a p...
Definition: sc_io.c:121

References exit, f(), fprintf(), sc_fscan(), and sc_new().

Referenced by main().

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