#include <WaveletDecomp.h>
Public Member Functions | |
Wavelet | wavelet () const |
Get the wavelet used in this decomposition. | |
DecompType | decompType () const |
Get the type of this decomposition (i.e. standard or non-standard). | |
CoeffStorage | storageMode () const |
Get the mode in which the wavelet/scaling coefficients are stored. | |
CoeffStorage | storageMode (CoeffStorage newCS) |
Set the mode in which the wavelet/scaling coefficients are stored. | |
ExtensionMode | extensionMode () const |
Get the current method used for boundary handling / array extension. | |
ExtensionMode | extensionMode (ExtensionMode newEM) |
Set the method to be used for boundary handling / array extension. | |
bool | dimSelected (int dim) const |
Query if decomposition will be applied in array dimension dim . | |
blitz::TinyVector< bool, tp_rank > | dimSelection () const |
Get the dimensions selected for decomposition. | |
blitz::TinyVector< bool, tp_rank > | dimSelection (blitz::TinyVector< bool, tp_rank > selection) |
Select the dimensions in which to apply the wavelet decomposition. | |
template<class tp_Type> | |
blitz::TinyVector< int, tp_rank > | apply (blitz::Array< tp_Type, tp_rank > &data) const |
Apply this wavelet decomposition to a data array. | |
template<class tp_Type> | |
blitz::TinyVector< int, tp_rank > | applyInv (blitz::Array< tp_Type, tp_rank > &data) const |
Apply the inverse wavelet transformation. | |
template<class tp_Type> | |
blitz::Array < blitz::TinyVector< int, tp_rank >, 1 > | indices (blitz::Array< tp_Type, tp_rank > &data) const |
Get the indices of the coefficients that this decomposition will/has produce(d) for the given data. | |
template<class tp_Type> | |
blitz::Array< tp_Type, tp_rank > | coeffs (blitz::Array< tp_Type, tp_rank > &data, blitz::TinyVector< int, tp_rank > indices) const |
Get all wavelet/scaling coefficients of the same type (i.e. corresponding to basis functions differing only by translation). | |
double | normFactor (blitz::TinyVector< int, tp_rank > indices) const |
Get the normalization factor for the specified coefficient type. | |
WaveletDecomp (Wavelet wl, DecompType decomp=NONSTD_DECOMP, int maxlevel=0, CoeffStorage cs=NESTED_COEFFS, ExtensionMode em=CONSTANT_EXT) | |
Construct a new wavelet decomposition. | |
Protected Member Functions | |
template<class tp_Type> | |
void | trafoStep (blitz::Array< tp_Type, tp_rank > &data, int targetDim, bool inverse) const |
template<class tp_Type> | |
blitz::TinyVector< int, tp_rank > | waveletDecompose (blitz::Array< tp_Type, tp_rank > &data, int maxlevel=0) const |
template<class tp_Type> | |
blitz::TinyVector< int, tp_rank > | waveletRecompose (blitz::Array< tp_Type, tp_rank > &data, int maxlevel=0) const |
Protected Attributes | |
Wavelet | m_wavelet |
DecompType | m_decomp |
CoeffStorage | m_storageMode |
ExtensionMode | m_extMode |
int | m_maxLevel |
blitz::TinyVector< bool, tp_rank > | m_dimSelect |
Instances of WaveletDecomp specify the details of a wavelet decomposition, which can then be applied to data of any type but fixed dimensionality. The data dimensionality is set with the template parameter tp_rank
.
bwave::WaveletDecomp< tp_rank >::WaveletDecomp | ( | Wavelet | wl, | |
DecompType | decomp = NONSTD_DECOMP , |
|||
int | maxlevel = 0 , |
|||
CoeffStorage | cs = NESTED_COEFFS , |
|||
ExtensionMode | em = CONSTANT_EXT | |||
) | [inline] |
Construct a new wavelet decomposition.
wavelet | Wavelet to use in the decomposition. | |
decomp | Decomposition type. | |
maxlevel | Maximum decomposition depth | |
cs | Coefficient storage mode | |
em | Internal array extension / boundary handling method |
applyInv(blitz::Array<tp_Type,tp_rank> &data)
CoeffStorage bwave::WaveletDecomp< tp_rank >::storageMode | ( | ) | const [inline] |
Get the mode in which the wavelet/scaling coefficients are stored.
Referenced by bwave::WaveletDecomp< tp_rank >::apply(), bwave::WaveletDecomp< tp_rank >::applyInv(), and bwave::WaveletDecomp< tp_rank >::coeffs().
CoeffStorage bwave::WaveletDecomp< tp_rank >::storageMode | ( | CoeffStorage | newCS | ) | [inline] |
Set the mode in which the wavelet/scaling coefficients are stored.
newCS | the new storage mode |
apply
(...) and applyInv
(...) only work in NESTED_COEFFS
mode. ExtensionMode bwave::WaveletDecomp< tp_rank >::extensionMode | ( | ) | const [inline] |
Get the current method used for boundary handling / array extension.
ExtensionMode bwave::WaveletDecomp< tp_rank >::extensionMode | ( | ExtensionMode | newEM | ) | [inline] |
Set the method to be used for boundary handling / array extension.
newEM | The new array extension method. |
blitz::TinyVector<bool, tp_rank> bwave::WaveletDecomp< tp_rank >::dimSelection | ( | ) | const [inline] |
Get the dimensions selected for decomposition.
blitz::TinyVector<bool, tp_rank> bwave::WaveletDecomp< tp_rank >::dimSelection | ( | blitz::TinyVector< bool, tp_rank > | selection | ) | [inline] |
Select the dimensions in which to apply the wavelet decomposition.
selection | A boolean vector, set true for the dimensions in which to apply decomposition. |
blitz::TinyVector<int, tp_rank> bwave::WaveletDecomp< tp_rank >::apply | ( | blitz::Array< tp_Type, tp_rank > & | data | ) | const [inline] |
Apply this wavelet decomposition to a data array.
data | The data to be decomposed. |
NESTED_COEFFS
. Afterwards, data array contains the wavelet/scaling coefficients, use the coeffs
(..) method for coefficient access. References bwave::WaveletDecomp< tp_rank >::storageMode().
blitz::TinyVector<int, tp_rank> bwave::WaveletDecomp< tp_rank >::applyInv | ( | blitz::Array< tp_Type, tp_rank > & | data | ) | const [inline] |
Apply the inverse wavelet transformation.
data | The wavelet/scaling coefficients. |
NESTED_COEFFS
. Afterwards, the data array contains the recomposed data.
References bwave::WaveletDecomp< tp_rank >::storageMode().
blitz::Array< blitz::TinyVector< int, tp_rank >, 1 > bwave::WaveletDecomp< tp_rank >::indices | ( | blitz::Array< tp_Type, tp_rank > & | data | ) | const [inline] |
Get the indices of the coefficients that this decomposition will/has produce(d) for the given data.
data | original data or transformed data. |
References bwave::WaveletDecomp< tp_rank >::decompType(), and bwave::WaveletDecomp< tp_rank >::dimSelected().
Referenced by bwave::WaveletDecomp< tp_rank >::coeffs(), and bwave::WaveletDecomp< tp_rank >::normFactor().
blitz::Array< tp_Type, tp_rank > bwave::WaveletDecomp< tp_rank >::coeffs | ( | blitz::Array< tp_Type, tp_rank > & | data, | |
blitz::TinyVector< int, tp_rank > | indices | |||
) | const [inline] |
Get all wavelet/scaling coefficients of the same type (i.e. corresponding to basis functions differing only by translation).
data | The decomposed data to extract the coefficients from. | |
indices | An index vector specifying the coefficient type to extract. |
data
, but a reference to them.Example: Let Phi_i be the scaling, Psi_i be the wavelet function of scale i. Let the data have three dimensions x,y,z. Then the coefficients corresponding to the basis function Psi_4(x)*Phi_3(y)*Psi_3(z) would have the index vector (-4, 3, -3).
The bases function Phi_0 can be said to correspond to original, non-decomposed data. Therefore, if data is not decomposed in some dimensions, the only valid index vector component in these dimensions is 0.
indices
(...) can be used to get a list of valid index vectors. References bwave::WaveletDecomp< tp_rank >::indices(), and bwave::WaveletDecomp< tp_rank >::storageMode().
double bwave::WaveletDecomp< tp_rank >::normFactor | ( | blitz::TinyVector< int, tp_rank > | indices | ) | const [inline] |
Get the normalization factor for the specified coefficient type.
indices | The index vector specifying the coefficient type |
References bwave::WaveletDecomp< tp_rank >::indices(), and bwave::WaveletDecomp< tp_rank >::wavelet().