class marv { public: int reg_sig_len; float* reg_sig; int irreg_sig_len; float* irreg_sig; int* irreg_locs; int recon_sig_len; float* recon_sig; float* wt; int filt_len; float* filt; float* err; float max_err; int Done; int Fs; int Bw; int iter_num; int max_iter; float thresh; float relax; float total_time; marv(); void reset(float* rs, int rsl,float* is, int* il, int isl,double tsh,int mi,double bw,double fs); ~marv(); void fft(float data[], unsigned int nn, int isign); void SetParam(int mi,float tol,float rlx); void SetWeights(); void SetFilter( int* index); float* GetReconstSig(); float* GetErrorSig(); int* GetBW(float* data, int len,float frac); result next_iter(); void initialise(); friend ostream& operator << (ostream& os, marv& p); }; //////////////////////////////////////////////////////////////////////