VAPoR  0.1
Public Member Functions | List of all members
VAPoR::WaveletBlock3D Class Reference

A block-based, 3D wavelet transformer. More...

#include <WaveletBlock3D.h>

Inheritance diagram for VAPoR::WaveletBlock3D:
VetsUtil::MyBase

Public Member Functions

 WaveletBlock3D (unsigned int bs, unsigned int n, unsigned int ntilde, unsigned int nthreads)
 
virtual ~WaveletBlock3D ()
 
void ForwardTransform (const float *src_super_blk[8], float *dst_super_blk[8])
 
void InverseTransform (const float *src_super_blk[8], float *dst_super_blk[8])
 
void TransposeBlks (float *super_blk[8])
 
void inverse_transform_thread ()
 
- Public Member Functions inherited from VetsUtil::MyBase
 MyBase ()
 
const string & getClassName () const
 

Additional Inherited Members

- Public Types inherited from VetsUtil::MyBase
typedef void(* ErrMsgCB_T) (const char *msg, int err_code)
 
typedef void(* DiagMsgCB_T) (const char *msg)
 
- Static Public Member Functions inherited from VetsUtil::MyBase
static void SetErrMsg (const char *format,...)
 Record a formatted error message. More...
 
static void SetErrMsg (int errcode, const char *format,...)
 Record a formatted error message and an error code. More...
 
static const char * GetErrMsg ()
 
static void SetErrCode (int err_code)
 Record an error code. More...
 
static int GetErrCode ()
 Retrieve the current error code. More...
 
static void SetErrMsgCB (ErrMsgCB_T cb)
 
static ErrMsgCB_T GetErrMsgCB ()
 
static void SetErrMsgFilePtr (FILE *fp)
 
static const FILE * SetErrMsgFilePtr ()
 
static void SetDiagMsg (const char *format,...)
 Record a formatted diagnostic message. More...
 
static const char * GetDiagMsg ()
 
static void SetDiagMsgCB (DiagMsgCB_T cb)
 
static DiagMsgCB_T GetDiagMsgCB ()
 
static void SetDiagMsgFilePtr (FILE *fp)
 
static bool EnableErrMsg (bool enable)
 
- Static Public Attributes inherited from VetsUtil::MyBase
static char * ErrMsg
 
static int ErrCode
 
static int ErrMsgSize
 
static FILE * ErrMsgFilePtr
 
static ErrMsgCB_T ErrMsgCB
 
static char * DiagMsg
 
static int DiagMsgSize
 
static FILE * DiagMsgFilePtr
 
static DiagMsgCB_T DiagMsgCB
 
static bool Enabled
 
- Protected Member Functions inherited from VetsUtil::MyBase
void SetClassName (const string &name)
 

Detailed Description

A block-based, 3D wavelet transformer.

Author
John Clyne
Version
$Revision$
Date
$Date$

This class provides a 3D, block-based wavelet transform API based on Wim Swelden's Liftpack library.

Definition at line 27 of file WaveletBlock3D.h.

Constructor & Destructor Documentation

VAPoR::WaveletBlock3D::WaveletBlock3D ( unsigned int  bs,
unsigned int  n,
unsigned int  ntilde,
unsigned int  nthreads 
)

Constructor for the WaveletBlock3D class.

Parameters
[in]bsDimension of a block along X, Y, and Z coordinates axis
[in]Numberof wavelet filter coefficients. Valid values are from 1 to Lifting1D::MAX_FILTER_COEFF
[in]ntildeNumber of wavelet lifting coefficients. Valid values are from 1 to Lifting1D::MAX_FILTER_COEFF
[in]nthreadsNumber of execution threads that may be used by the class for parallel execution.
Note
The success or failure of this constructor can be checked with the GetErrCode() method.
See also
Lifting1D, GetErrCode(),
virtual VAPoR::WaveletBlock3D::~WaveletBlock3D ( )
virtual

Member Function Documentation

void VAPoR::WaveletBlock3D::ForwardTransform ( const float *  src_super_blk[8],
float *  dst_super_blk[8] 
)

Perform a forward wavelet transform on a super block

Performs a forward, 3D wavelet transform on each of eight neighboring blocks contained in a super block, src_super_blk. The resulting Lambda and Gamma coefficients are stored in a destination super block, dst_super_blk. The distribution of coefficients stored in the space pointed to by dst_super_blk is as follows: block 0 contains the L (Lambda) subband, block 1 contains the Hz (Gamma) subband, blocks 2 & 3 contain the Hy subband, blocks 4 - 7 contain the Hx subband.

Parameters
[in]src_super_blkAn array of pointers to blocks.
[out]dst_super_blkAn array of pointers to blocks.
Note
The resulting transformed coefficients are stored as tranposed arrays. The blocks may be re-ordered to conventional, X, Y, Z order with the Transpose() method.
See also
InverseTransform(), Transpose()
void VAPoR::WaveletBlock3D::inverse_transform_thread ( )
void VAPoR::WaveletBlock3D::InverseTransform ( const float *  src_super_blk[8],
float *  dst_super_blk[8] 
)

Perform an inverse wavelet transform on a super block

Performs a inverse, 3D wavelet transform on each of eight neighboring blocks contained in a super block, src_super_blk. The resulting coefficients are stored in a destination super block, dst_super_blk.

Parameters
[in]src_super_blkAn array of pointers to blocks
[out]dst_super_blkAn array of pointers to blocks.
See also
ForwardTransform()
void VAPoR::WaveletBlock3D::TransposeBlks ( float *  super_blk[8])

Transpose a super block created by ForwardTransform() to X, Y, Z order.

The gamma coefficient blocks returned by ForwardTransform() are tranposed. This method can be used to perform an in-place tranpose restoring gamma blocks to their natural, X, Y, Z order.

Parameters
[in,out]src_super_blkAn array of pointers to blocks
See also
ForwardTransform()

The documentation for this class was generated from the following file: