VAPOR3 3.9.4
MatWaveDwt.h
Go to the documentation of this file.
1
2#ifndef _MatWaveDwt_h_
3#define _MatWaveDwt_h_
4
5#include <vapor/utils.h>
6#include <vapor/MatWaveBase.h>
7
8namespace VAPoR {
9
10//
24public:
32 MatWaveDwt(const string &wname, const string &mode);
33 MatWaveDwt(const string &wname);
34 virtual ~MatWaveDwt();
35
57 //
58 int dwt(const double *sigIn, size_t sigInLength, double *C, size_t L[3]);
59 int dwt(const float *sigIn, size_t sigInLength, float *C, size_t L[3]);
60 int dwt(const double *sigIn, size_t sigInLength, double *cA, double *cD, size_t L[3]);
61 int dwt(const float *sigIn, size_t sigInLength, float *cA, float *cD, size_t L[3]);
62
63 int dwt(const long *sigIn, size_t sigInLength, long *C, size_t L[3]);
64 int dwt(const int *sigIn, size_t sigInLength, int *C, size_t L[3]);
65 int dwt(const long *sigIn, size_t sigInLength, long *cA, long *cD, size_t L[3]);
66 int dwt(const int *sigIn, size_t sigInLength, int *cA, int *cD, size_t L[3]);
67
86 //
87 int idwt(const double *C, const size_t L[3], double *sigOut);
88 int idwt(const float *C, const size_t L[3], float *sigOut);
89 int idwt(const double *cA, const double *cD, const size_t L[3], double *sigOut);
90 int idwt(const float *cA, const float *cD, const size_t L[3], float *sigOut);
91 int idwt(const long *C, const size_t L[3], long *sigOut);
92 int idwt(const int *C, const size_t L[3], int *sigOut);
93 int idwt(const long *cA, const long *cD, const size_t L[3], long *sigOut);
94 int idwt(const int *cA, const int *cD, const size_t L[3], int *sigOut);
95
127 //
128 int dwt2d(const double *sigIn, size_t sigInX, size_t sigInY, double *C, size_t L[10]);
129 int dwt2d(const float *sigIn, size_t sigInX, size_t sigInY, float *C, size_t L[10]);
130 int dwt2d(const double *sigIn, size_t sigInX, size_t sigInY, double *cA, double *cDh, double *cDv, double *cDd, size_t L[10]);
131 int dwt2d(const float *sigIn, size_t sigInX, size_t sigInY, float *cA, float *cDh, float *cDv, float *cDd, size_t L[10]);
132
133 int dwt2d(const long *sigIn, size_t sigInX, size_t sigInY, long *C, size_t L[10]);
134 int dwt2d(const int *sigIn, size_t sigInX, size_t sigInY, int *C, size_t L[10]);
135 int dwt2d(const long *sigIn, size_t sigInX, size_t sigInY, long *cA, long *cDh, long *cDv, long *cDd, size_t L[10]);
136 int dwt2d(const int *sigIn, size_t sigInX, size_t sigInY, int *cA, int *cDh, int *cDv, int *cDd, size_t L[10]);
137
161 //
162 int idwt2d(const double *C, const size_t L[10], double *sigOut);
163 int idwt2d(const float *C, const size_t L[10], float *sigOut);
164 int idwt2d(const double *cA, const double *cDh, const double *cDv, const double *cDd, const size_t L[10], double *sigOut);
165 int idwt2d(const float *cA, const float *cDh, const float *cDv, const float *cDd, const size_t L[10], float *sigOut);
166
167 int idwt2d(const long *C, const size_t L[10], long *sigOut);
168 int idwt2d(const int *C, const size_t L[10], int *sigOut);
169 int idwt2d(const long *cA, const long *cDh, const long *cDv, const long *cDd, const size_t L[10], long *sigOut);
170 int idwt2d(const int *cA, const int *cDh, const int *cDv, const int *cDd, const size_t L[10], int *sigOut);
171
177 int dwt3d(const double *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, double *C, size_t L[27]);
178 int dwt3d(const float *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, float *C, size_t L[27]);
179
180 int dwt3d(const long *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, long *C, size_t L[27]);
181 int dwt3d(const int *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, int *C, size_t L[27]);
182
184 //
185 int idwt3d(const double *C, const size_t L[27], double *sigOut);
186 int idwt3d(const float *C, const size_t L[27], float *sigOut);
187 int idwt3d(const double *cLLL, const double *cLLH, const double *cLHL, const double *cLHH, const double *cHLL, const double *cHLH, const double *cHHL, const double *cHHH, const size_t L[27],
188 double *sigOut);
189 int idwt3d(const float *cLLL, const float *cLLH, const float *cLHL, const float *cLHH, const float *cHLL, const float *cHLH, const float *cHHL, const float *cHHH, const size_t L[27],
190 float *sigOut);
191
192 int idwt3d(const long *C, const size_t L[27], long *sigOut);
193 int idwt3d(const int *C, const size_t L[27], int *sigOut);
194 int idwt3d(const long *cLLL, const long *cLLH, const long *cLHL, const long *cLHH, const long *cHLL, const long *cHLH, const long *cHHL, const long *cHHH, const size_t L[27], long *sigOut);
195 int idwt3d(const int *cLLL, const int *cLLH, const int *cLHL, const int *cLHH, const int *cHLL, const int *cHLH, const int *cHHL, const int *cHHH, const size_t L[27], int *sigOut);
196
197private:
198 // 1D buffers
199 Wasp::SmartBuf _dwt1dSmartBuf;
200
201 // 2D buffers
202 Wasp::SmartBuf _dwt2dSmartBuf;
203
204 // 3D buffers
205 Wasp::SmartBuf _dwt3dSmartBuf1;
206 Wasp::SmartBuf _dwt3dSmartBuf2;
207};
208
209} // namespace VAPoR
210
211#endif
A base class for a Matlab-like wavelet bank.
Definition: MatWaveBase.h:23
Implements a single level wavelet filter.
Definition: MatWaveDwt.h:23
virtual ~MatWaveDwt()
int dwt(const long *sigIn, size_t sigInLength, long *cA, long *cD, size_t L[3])
int dwt(const float *sigIn, size_t sigInLength, float *C, size_t L[3])
int idwt3d(const float *C, const size_t L[27], float *sigOut)
int dwt(const float *sigIn, size_t sigInLength, float *cA, float *cD, size_t L[3])
int dwt3d(const float *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, float *C, size_t L[27])
int idwt(const long *cA, const long *cD, const size_t L[3], long *sigOut)
int idwt3d(const int *cLLL, const int *cLLH, const int *cLHL, const int *cLHH, const int *cHLL, const int *cHLH, const int *cHHL, const int *cHHH, const size_t L[27], int *sigOut)
int dwt2d(const float *sigIn, size_t sigInX, size_t sigInY, float *C, size_t L[10])
int dwt3d(const int *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, int *C, size_t L[27])
int dwt(const int *sigIn, size_t sigInLength, int *C, size_t L[3])
int idwt2d(const long *cA, const long *cDh, const long *cDv, const long *cDd, const size_t L[10], long *sigOut)
int idwt2d(const int *C, const size_t L[10], int *sigOut)
int idwt3d(const long *cLLL, const long *cLLH, const long *cLHL, const long *cLHH, const long *cHLL, const long *cHLH, const long *cHHL, const long *cHHH, const size_t L[27], long *sigOut)
MatWaveDwt(const string &wname)
int idwt3d(const long *C, const size_t L[27], long *sigOut)
int idwt(const int *C, const size_t L[3], int *sigOut)
int dwt2d(const double *sigIn, size_t sigInX, size_t sigInY, double *C, size_t L[10])
int dwt2d(const long *sigIn, size_t sigInX, size_t sigInY, long *cA, long *cDh, long *cDv, long *cDd, size_t L[10])
int dwt(const double *sigIn, size_t sigInLength, double *cA, double *cD, size_t L[3])
int dwt2d(const float *sigIn, size_t sigInX, size_t sigInY, float *cA, float *cDh, float *cDv, float *cDd, size_t L[10])
int idwt3d(const double *cLLL, const double *cLLH, const double *cLHL, const double *cLHH, const double *cHLL, const double *cHLH, const double *cHHL, const double *cHHH, const size_t L[27], double *sigOut)
int dwt3d(const long *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, long *C, size_t L[27])
int dwt(const int *sigIn, size_t sigInLength, int *cA, int *cD, size_t L[3])
int dwt3d(const double *sigIn, size_t sigInX, size_t sigInY, size_t sigInZ, double *C, size_t L[27])
int idwt2d(const double *C, const size_t L[10], double *sigOut)
int dwt(const double *sigIn, size_t sigInLength, double *C, size_t L[3])
int idwt(const double *C, const size_t L[3], double *sigOut)
int idwt(const float *cA, const float *cD, const size_t L[3], float *sigOut)
int dwt(const long *sigIn, size_t sigInLength, long *C, size_t L[3])
int idwt(const float *C, const size_t L[3], float *sigOut)
int idwt3d(const float *cLLL, const float *cLLH, const float *cLHL, const float *cLHH, const float *cHLL, const float *cHLH, const float *cHHL, const float *cHHH, const size_t L[27], float *sigOut)
int idwt2d(const float *C, const size_t L[10], float *sigOut)
MatWaveDwt(const string &wname, const string &mode)
int idwt2d(const int *cA, const int *cDh, const int *cDv, const int *cDd, const size_t L[10], int *sigOut)
int idwt(const int *cA, const int *cD, const size_t L[3], int *sigOut)
int idwt2d(const double *cA, const double *cDh, const double *cDv, const double *cDd, const size_t L[10], double *sigOut)
int idwt(const long *C, const size_t L[3], long *sigOut)
int dwt2d(const double *sigIn, size_t sigInX, size_t sigInY, double *cA, double *cDh, double *cDv, double *cDd, size_t L[10])
int dwt2d(const long *sigIn, size_t sigInX, size_t sigInY, long *C, size_t L[10])
int idwt3d(const int *C, const size_t L[27], int *sigOut)
int idwt3d(const double *C, const size_t L[27], double *sigOut)
Single-level inverse discrete 3D wavelet transform.
int idwt2d(const long *C, const size_t L[10], long *sigOut)
int dwt2d(const int *sigIn, size_t sigInX, size_t sigInY, int *C, size_t L[10])
int idwt2d(const float *cA, const float *cDh, const float *cDv, const float *cDd, const size_t L[10], float *sigOut)
int idwt(const double *cA, const double *cD, const size_t L[3], double *sigOut)
int dwt2d(const int *sigIn, size_t sigInX, size_t sigInY, int *cA, int *cDh, int *cDv, int *cDd, size_t L[10])
#define WASP_API
Definition: common.h:74