#ifndef __ENTREES_SORTIES_H__
#define __ENTREES_SORTIES_H__

#define PLUSGRAND(A,B) ((A) >= (B) ? (A) : (B))
#define PLUSPETIT(A,B) ((A) <  (B) ? (A) : (B))

/* structure dans laquelle on stocke les entrees du programme */
typedef struct {
  int n;
  double eps;
  int choix;
  int nb_imfs;
  double *x;
  double *y;
} entree_t;

/* structure correspondant a un element de la      */
/* liste chainee, dans laquelle  on stocke une imf */
typedef struct i {
  double *pointeur;
  struct i *suivant;
} imf_t;

/* structure de la liste chainee */
typedef struct {
  imf_t *debut;
  imf_t *fin;
  int m;
  int n;
} liste_t;

entree_t lire_entrees(int,int,const mxArray **);
liste_t initialiser_liste(int);
void ajouter(liste_t *,double *);
void liberer_liste(liste_t);
void ecrire_sorties(liste_t,mxArray **);

#endif
