VAPoR  0.1
MatWaveWavedec.h
Go to the documentation of this file.
1 
2 #ifndef _MatWaveWavedec_h_
3 #define _MatWaveWavedec_h_
4 
5 #include "MatWaveDwt.h"
6 
7 namespace VAPoR {
8 
9 //
21 class MatWaveWavedec : public MatWaveDwt {
22 
23 public:
24 
40  MatWaveWavedec(const string &wname, const string &mode);
41  MatWaveWavedec(const string &wname);
42  virtual ~MatWaveWavedec();
43 
66  //
67  int wavedec(
68  const double *sigIn, size_t sigInLength, int n, double *C, size_t *L
69  );
70  int wavedec(
71  const float *sigIn, size_t sigInLength, int n, float *C, size_t *L
72  );
73 
90  //
91  int waverec(const double *C, const size_t *L, int n, double *sigOut);
92  int waverec(const float *C, const size_t *L, int n, float *sigOut);
93 
117  //
118  int wavedec2(
119  const double *sigIn, size_t sigInX, size_t sigInY, int n,
120  double *C, size_t *L
121  );
122  int wavedec2(
123  const float *sigIn, size_t sigInX, size_t sigInY, int n,
124  float *C, size_t *L
125  );
126 
143  //
144  int waverec2(const double *C, const size_t *L, int n, double *sigOut);
145  int waverec2(const float *C, const size_t *L, int n, float *sigOut);
146 
147 
148 
175  //
176  int wavedec3(
177  const double *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, int n,
178  double *C, size_t *L
179  );
180  int wavedec3(
181  const float *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, int n,
182  float *C, size_t *L
183  );
184 
201  //
202  int waverec3(const double *C, const size_t *L, int n, double *sigOut);
203  int waverec3(const float *C, const size_t *L, int n, float *sigOut);
204 
205  int appcoef(
206  const double *C, const size_t *L, int n, int l, bool normal, double *sigOut
207  );
208  int appcoef(
209  const float *C, const size_t *L, int n, int l, bool normal, float *sigOut
210  );
211  int appcoef2(
212  const double *C, const size_t *L, int n, int l, bool normal, double *sigOut
213  );
214  int appcoef2(
215  const float *C, const size_t *L, int n, int l, bool normal, float *sigOut
216  );
217  int appcoef3(
218  const double *C, const size_t *L, int n, int l, bool normal, double *sigOut
219  );
220  int appcoef3(
221  const float *C, const size_t *L, int n, int l, bool normal, float *sigOut
222  );
223 
224  //
241  //
242  size_t coefflength(size_t sigInLen, int n) const;
243  size_t coefflength(const size_t *L, int n) const;
244 
245  //
256  //
257  size_t approxlength(size_t sigInLen, int n) const;
258 
259  //
276  //
277  void approxlength(const size_t *L, int n, int l, size_t *len) const;
278 
279 
280  //
298  //
299  size_t coefflength2(size_t sigInX, size_t sigInY, int n) const;
300  size_t coefflength2(const size_t *L, int n) const;
301 
302  //
320  //
321  void approxlength2(const size_t *L, int n, int l, size_t *lenx, size_t *leny) const;
322 
323 
324  //
343  size_t coefflength3(size_t sigInX, size_t sigInY, size_t sigInZ, int n) const;
344  size_t coefflength3(const size_t *L, int n) const;
345 
346 
365  //
366  void approxlength3(
367  const size_t *L, int n, int l, size_t *lenx, size_t *leny, size_t *lenz
368  ) const;
369 
370 
371  //
379  //
380  void computeL(size_t sigInLen, int n, size_t *L) const;
381 
382  //
391  //
392  void computeL2(size_t sigInX, size_t sigInY, int n, size_t *L) const;
393 
394  //
404  //
405  void computeL3(
406  size_t sigInX, size_t sigInY, size_t sigInZ, int n, size_t *L
407  ) const;
408 
409 
410 
411 private:
412 
413  int _wavedec_setup(size_t sigInLength, int n, size_t *CLength, size_t *L);
414 
415  int _wavedec2_setup(size_t sigInX, size_t sigInY, int n, size_t *CLength, size_t *L);
416 
417  int _wavedec3_setup(
418  size_t sigInX, size_t sigInY, size_t sigInZ, int n, size_t *CLength, size_t *L
419  );
420 
421 
422 };
423 
424 }
425 
426 #endif
427 
428 
int wavedec3(const double *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, int n, double *C, size_t *L)
int appcoef(const double *C, const size_t *L, int n, int l, bool normal, double *sigOut)
void approxlength2(const size_t *L, int n, int l, size_t *lenx, size_t *leny) const
int waverec2(const double *C, const size_t *L, int n, double *sigOut)
void computeL3(size_t sigInX, size_t sigInY, size_t sigInZ, int n, size_t *L) const
size_t coefflength(size_t sigInLen, int n) const
void computeL(size_t sigInLen, int n, size_t *L) const
size_t approxlength(size_t sigInLen, int n) const
int wavedec2(const double *sigIn, size_t sigInX, size_t sigInY, int n, double *C, size_t *L)
Implements a single level wavelet filter.
Definition: MatWaveDwt.h:22
size_t coefflength3(size_t sigInX, size_t sigInY, size_t sigInZ, int n) const
int appcoef3(const double *C, const size_t *L, int n, int l, bool normal, double *sigOut)
int waverec(const double *C, const size_t *L, int n, double *sigOut)
MatWaveWavedec(const string &wname, const string &mode)
int wavedec(const double *sigIn, size_t sigInLength, int n, double *C, size_t *L)
size_t coefflength2(size_t sigInX, size_t sigInY, int n) const
Implements a multi-level wavelet filter.
int waverec3(const double *C, const size_t *L, int n, double *sigOut)
void approxlength3(const size_t *L, int n, int l, size_t *lenx, size_t *leny, size_t *lenz) const
int appcoef2(const double *C, const size_t *L, int n, int l, bool normal, double *sigOut)
void computeL2(size_t sigInX, size_t sigInY, int n, size_t *L) const