// This may look like C code, but it is really -*- C++ -*-

#include "machdefs.h"

// Filtre median, retourne la valeur mediane du tableau tab.
//  *** Le tableau est modifie (trie par ordre croissant)
float  MedianFilter(float  tab[], int n); 
double MedianFilter(double tab[], int n);
int    MedianFilterIdx(float tab[], int n); 
int    MedianFilterIdx(double tab[], int n); 

// Filtre median sur fenetre glissante. 
// data[index[i]] est la ieme valeur filtree
void   MedianFilterWindowIdx(float const data[], int ndata, int width, 
			     int index[]);

// Filtre median sur fenetre glissante. 
// fdata[] est le tableau filtre
void   MedianFilterWindow(float const data[], int ndata, int width,
			  float fdata[]);

// Filtre median sur fenetre glissante. 
// fdata[] est le tableau filtre. assoc sont des donnees associees,
// par exemple des erreurs, qui sont reordonnees avec la meme permutation
// dans fassoc.
void   MedianFilterWindow(float const data[], float const assoc[],
			  int ndata, int width,
			  float[] fdata, float fassoc[]);
