code/include/NewWave/GSLEngine.hh
Go to the documentation of this file.
00001 #ifndef NEWWAVE_GSL_ENGINE_HH 00002 #define NEWWAVE_GSL_ENGINE_HH 00003 00004 #include <vector> 00005 00006 #include <gsl/gsl_wavelet.h> 00007 #include <gsl/gsl_wavelet2d.h> 00008 00009 #include "NewWave/WaveletEngine.hh" 00010 #include "NewWave/PixelDefinition.hh" 00011 00012 namespace NewWave{ 00013 00014 using std::size_t; 00015 using std::vector; 00016 00018 class GSLEngine : public WaveletEngine{ 00019 00020 public: 00021 00022 GSLEngine(const gsl_wavelet_type *type, size_t degree, 00023 const PixelDefinition &pixelDefn); 00024 00025 ~GSLEngine(); 00026 00027 WaveletCoefficients transform(const PixelArray &pixels)const; 00028 00029 PixelArray inverseTransform(const WaveletCoefficients &coefficients)const; 00030 00031 00032 private: 00033 00034 void init(const PixelDefinition &pixelDefn); 00035 00036 void initYLevels(const PixelDefinition &pixelDefn); 00037 00038 void initPhiLevels(); 00039 00041 const gsl_wavelet_type *_waveletType; 00042 00044 size_t _degree; 00045 00047 gsl_wavelet *_wavelet; 00049 gsl_wavelet_workspace *_workspace; 00050 00051 size_t _nSegments; 00052 size_t _nSegments2; 00053 size_t _nLevels; 00054 00055 vector<size_t> _yLevels; 00056 vector<size_t> _phiLevels; 00057 vector<double> _yMinEdges; 00058 vector<double> _yMaxEdges; 00059 vector<double> _phiMinEdges; 00060 vector<double> _phiMaxEdges; 00061 00062 }; 00063 00064 } 00065 00066 00067 #endif Generated on Wed Aug 23 2017 12:59:15 for New Wave - Noise Elimination With Wavelets At Vast Energies by 1.7.6.1 |