#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().
1.5.5