#ifndef WAVELET2S_H #define WAVELET2S_H #include #include using namespace std; // 1D Functions // void* dwt(vector &, int ,string , vector &, vector &); void* dwt1(string, vector &, vector &, vector &); void* dyadic_zpad_1d(vector &); double convol(vector &, vector &, vector &); int filtcoef(string , vector &, vector &, vector &, vector &); void downsamp(vector &, int , vector &); void upsamp(vector &, int, vector &); void circshift(vector &, int ); int sign(int); void* idwt1(string wname, vector &, vector &, vector &); int vecsum(vector &, vector &, vector &); // 1D Symmetric Extension DWT Functions void* dwt_sym(vector &, int ,string , vector &,vector &, vector &); void* dwt1_sym(string , vector &, vector &, vector &); void* idwt_sym(vector &,vector &, string,vector &, vector &); void* symm_ext(vector &, int ); void* idwt1_sym(string, vector &, vector &, vector &); // Not Tested // 1D Stationary Wavelet Transform void* swt(vector &, int , string , vector &, int &) ; void* iswt(vector &,int , string, vector &); void* per_ext(vector &, int ); // 2D Functions void* branch_lp_dn(string , vector &, vector &); void* branch_hp_dn(string , vector &, vector &); void* branch_lp_hp_up(string ,vector &, vector &, vector &); // void* dwt_2d(vector > &, int , string , vector > & // , vector &) ; // void* idwt_2d(vector > &,vector &, string ,vector > &); void* dyadic_zpad_2d(vector > &,vector > &); void* dwt_output_dim(vector >&, int &, int & ); void* zero_remove(vector > &,vector > &) ; void* getcoeff2d(vector > &, vector > &, vector > &,vector > &,vector &, int &); void* idwt2(string ,vector > &, vector > &, vector > &, vector > &, vector > &); void* dwt2(string ,vector > &, vector > &, vector > &, vector > &, vector > &); void* downsamp2(vector > &,vector > &, int, int); void* upsamp2(vector > &,vector > &, int, int); // 2D DWT (Symmetric Extension) Functions void* dwt_2d_sym(vector > &, int , string , vector &, vector & , vector &); void* dwt2_sym(string ,vector > &, vector > &, vector > &, vector > &, vector > &); void* idwt_2d_sym(vector &,vector &, string ,vector > &, vector &); void* circshift2d(vector > &, int , int ); void symm_ext2d(vector > &,vector > &, int ); void* dispDWT(vector &,vector > &, vector &, vector &, int ) ; void* dwt_output_dim_sym(vector &,vector &, int ); //2D Stationary Wavelet Transform void* swt_2d(vector > &,int , string , vector &); void* per_ext2d(vector > &,vector > &, int ); // FFT functions double convfft(vector &, vector &, vector &); double convfftm(vector &, vector &, vector &); void* fft(vector > &,int ,unsigned int); void* bitreverse(vector > &); void* freq(vector &, vector &); //New void* dwt1_sym_m(string wname, vector &signal, vector &cA, vector &cD);//FFTW3 for 2D void* idwt1_sym_m(string wname, vector &X, vector &app, vector &detail); void* dwt(vector &sig, int J, string nm, vector &dwt_output , vector &flag, vector &length ); void* idwt(vector &,vector &, string,vector &, vector &); void* dwt_2d(vector > &, int , string , vector &, vector & , vector &); void* dwt1_m(string wname, vector &signal, vector &cA, vector &cD) ; void* idwt_2d(vector &dwtop,vector &flag, string nm, vector > &idwt_output, vector &length); void* idwt1_m(string wname, vector &X, vector &cA, vector &cD); void* dwt_output_dim2(vector &length, vector &length2, int J); #endif/* WAVELET2S_H */