00001 00037 #ifndef TRANSFORMS_H 00038 #define TRANSFORMS_H 00039 00040 #include <itpp/base/vec.h> 00041 #include <itpp/base/mat.h> 00042 00043 00044 namespace itpp { 00045 00086 00087 00088 00090 void fft(const cvec &in, cvec &out); 00092 cvec fft(const cvec &in); 00094 cvec fft(const cvec &in, const int N); 00096 void ifft(const cvec &in, cvec &out); 00098 cvec ifft(const cvec &in); 00100 cvec ifft(const cvec &in, const int N); 00101 00103 void fft_real(const vec& in, cvec &out); 00105 cvec fft_real(const vec& in); 00107 cvec fft_real(const vec &in, const int N); 00109 void ifft_real(const cvec &in, vec &out); 00111 vec ifft_real(const cvec &in); 00113 vec ifft_real(const cvec &in, const int N); 00115 00116 00145 00146 00147 00149 void dct(const vec &in, vec &out); 00151 vec dct(const vec &in); 00153 void idct(const vec &in, vec &out); 00155 vec idct(const vec &in); 00157 00158 00161 00163 template <class T> Vec<T> dht(const Vec<T> &v); 00165 template <class T> void dht(const Vec<T> &vin, Vec<T> &vout); 00167 template <class T> void self_dht(Vec<T> &v); 00168 00170 template <class T> Vec<T> dwht(const Vec<T> &v); 00172 template <class T> void dwht(const Vec<T> &vin, Vec<T> &vout); 00174 template <class T> void self_dwht(Vec<T> &v); 00175 00177 template <class T> Mat<T> dht2(const Mat<T> &m); 00179 template <class T> Mat<T> dwht2(const Mat<T> &m); 00181 00183 // template instantiation 00185 #ifndef _MSC_VER 00186 00188 extern template vec dht(const vec &v); 00190 extern template cvec dht(const cvec &v); 00191 00193 extern template void dht(const vec &vin, vec &vout); 00195 extern template void dht(const cvec &vin, cvec &vout); 00196 00198 extern template void self_dht(vec &v); 00200 extern template void self_dht(cvec &v); 00201 00203 extern template vec dwht(const vec &v); 00205 extern template cvec dwht(const cvec &v); 00206 00208 extern template void dwht(const vec &vin, vec &vout); 00210 extern template void dwht(const cvec &vin, cvec &vout); 00211 00213 extern template void self_dwht(vec &v); 00215 extern template void self_dwht(cvec &v); 00216 00218 extern template mat dht2(const mat &m); 00220 extern template cmat dht2(const cmat &m); 00221 00223 extern template mat dwht2(const mat &m); 00225 extern template cmat dwht2(const cmat &m); 00226 00227 #endif // #ifndef _MSC_VER 00228 00229 } // namespace itpp 00230 00231 #endif // #ifndef TRANSFORMS_H
Generated on Thu Apr 19 14:20:36 2007 for IT++ by Doxygen 1.4.6