
#include "global.h"


/******************************************************************************/
/* ALLOCATION MEMOIRE POUR LES SORTIES                                        */
/*                                                                            */
/* Allocation memoire pour la matrice Qr et celle des variables aleatoires    */
/* servant a la generer. Creation des vecteurs d'indice x et y de la matrice  */
/* Qr, ces vecteurs sont inutilises dans le code en C.                        */
/******************************************************************************/

void allocation_sorties(mxArray **sorties,long nb_sorties,tirage_t **tirages,
                        long nb_tirages,double **Qr,long nx,long ny,double dx) {

  /* variables locales */
  
  long i;
  double *x,*y;


  sorties[0]=mxCreateDoubleMatrix(ny,nx,mxREAL);
  *Qr=mxGetPr(sorties[0]);
  sorties[1]=mxCreateDoubleMatrix(sizeof(tirage_t)/sizeof(double),nb_tirages,mxREAL);
  *tirages=(tirage_t *)mxGetPr(sorties[1]);
  if (nb_sorties==5) {
    sorties[3]=mxCreateDoubleMatrix(1,nx,mxREAL);
    sorties[4]=mxCreateDoubleMatrix(1,ny,mxREAL);
    x=mxGetPr(sorties[3]);
    y=mxGetPr(sorties[4]);
    for (i=0;i<nx;i++) x[i]=i*dx;
    for (i=0;i<ny;i++) y[i]=i*dx;
  }
}


/******************************************************************************/
/* UN MOTIF EST-IL EN FAIT UNE FONCTION LISSANTE                              */
/******************************************************************************/

char est_shaper(motif_t motif) {
  return (motif==m_shaper_cos_carre || motif==m_shaper_exp || motif==m_shaper_quelconque);
}

