Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

Rtmra< Data_t, scalar > Class Template Reference

#include <Rtmra_Data_t_scalar.h>

Collaboration diagram for Rtmra< Data_t, scalar >:

Collaboration graph
[legend]

Public Types

typedef Data_t DataType

Public Member Functions

void assign (const Data_t data)
virtual Data_t ave (const int)
virtual Data_t chg (const int)
virtual void clear ()
virtual int imcycle ()
bool isvalid (const int m)
virtual int mcycle ()
int mmax ()
void mrastep (const int mrastep)
int mrastep ()
 operator Data_t ()
int operator++ (int)
int operator++ ()
int operator-- (int)
int operator-- ()
Rtmra< Data_t, scalar > & operator= (const Data_t data)
virtual void remalloc (const int msize=8)
virtual void rtiwt ()
virtual void rtjiwt ()
 Rtmra (const int msize=8)
virtual void rtwt ()
virtual void scal (const int m, Data_t scalcoef)
virtual Data_t scal (const int)
virtual void wav (const int m, Data_t wavcoef)
virtual Data_t wav (const int)
virtual ~Rtmra ()

Static Public Attributes

const int ArrayDim = 0

Protected Attributes

Data_t * _data
int _mmax
Data_t * _mracoef
int _mrastep
int _Msize

template<typename Data_t>
class Rtmra< Data_t, scalar >


Member Typedef Documentation

template<typename Data_t>
typedef Data_t Rtmra< Data_t, scalar >.DataType
 

Definition at line 26 of file Rtmra_Data_t_scalar.h.


Constructor & Destructor Documentation

template<typename Data_t>
Rtmra< Data_t, scalar >::~Rtmra  )  [virtual]
 

Definition at line 76 of file Rtmra_Data_t_scalar.h.

00077 {
00078    delete _data; _data = 0;
00079    delete [] _mracoef; _mracoef = 0;
00080 }


Member Function Documentation

template<typename Data_t>
void Rtmra< Data_t, scalar >.assign const Data_t  data  ) 
 

Definition at line 33 of file Rtmra_Data_t_scalar.h.

00033 { *_data = data; }

template<typename Data_t>
Data_t Rtmra< Data_t, scalar >::ave const  int  )  [virtual]
 

Definition at line 232 of file Rtmra_Data_t_scalar.h.

References INVSQRT2, and rtmrascala().

00233 {
00234    Data_t scala;
00235 #ifdef STORM_USEC
00236    rtmrascala( _Msize, _mmax, _mrastep, _mracoef, m, scala );
00237 #else
00238 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00239       scala = _mracoef[2*m] * pow(INVSQRT2,m); 
00240 //   }
00241 //   else { 
00242 //      scala = 1.0/0; 
00243 //   }
00244 #endif
00245    return scala;
00246 }

template<typename Data_t>
Data_t Rtmra< Data_t, scalar >::chg const  int  )  [virtual]
 

Definition at line 249 of file Rtmra_Data_t_scalar.h.

References INVSQRT2, and rtmrawavd().

00250 {
00251    Data_t wavd;
00252 #ifdef STORM_USEC
00253    rtmrawavd( _Msize, _mmax, _mrastep, _mracoef, m, wavd );
00254 #else
00255 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00256       wavd = _mracoef[ 2*m + 1 ] * pow(INVSQRT2,m); 
00257 //   }
00258 //   else { 
00259 //      wavd = 1.0/0; 
00260 //   }
00261 #endif
00262    return wavd;
00263 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::clear  )  [virtual]
 

Definition at line 97 of file Rtmra_Data_t_scalar.h.

00098 {
00099    _mrastep = -1;
00100    for( int i = 0; i < 2*_Msize; i++) { _mracoef[i] = 0; }
00101    *_data = 0;
00102 }

template<typename Data_t>
int Rtmra< Data_t, scalar >::imcycle  )  [virtual]
 

Definition at line 266 of file Rtmra_Data_t_scalar.h.

References rtmraimcycle().

00267 {
00268    int imcycle = 0;
00269 #ifdef STORM_USEC
00270    rtmraimcycle( _Msize, _mmax, _mrastep, imcycle );
00271 #else
00272    int itmp = (1<<_mmax) - 1;
00273    itmp = itmp - ( itmp & ( _mrastep + 1) );
00274    while ( ( itmp & (1<<imcycle) ) && ( imcycle < _mmax ) ) { imcycle++; }
00275 #endif
00276    return imcycle;
00277 }

template<typename Data_t>
bool Rtmra< Data_t, scalar >.isvalid const int  m  ) 
 

Definition at line 47 of file Rtmra_Data_t_scalar.h.

00047 { return ( m < mcycle() ) ; }

template<typename Data_t>
int Rtmra< Data_t, scalar >::mcycle  )  [virtual]
 

Definition at line 188 of file Rtmra_Data_t_scalar.h.

References rtmramcycle().

00189 {
00190    int mcycle=0;
00191 #ifdef STORM_USEC
00192    rtmramcycle( _Msize, _mmax, _mrastep, mcycle );
00193 #else
00194    while ((_mrastep&(1<<mcycle))&&(mcycle<_mmax)) { mcycle++; }
00195 #endif
00196    return mcycle;
00197 }

template<typename Data_t>
int Rtmra< Data_t, scalar >.mmax  ) 
 

Definition at line 39 of file Rtmra_Data_t_scalar.h.

00039 { return _mmax; }

template<typename Data_t>
void Rtmra< Data_t, scalar >.mrastep const int  mrastep  ) 
 

Definition at line 45 of file Rtmra_Data_t_scalar.h.

00045 { _mrastep = mrastep; } //DEBUG

template<typename Data_t>
int Rtmra< Data_t, scalar >.mrastep  ) 
 

Definition at line 44 of file Rtmra_Data_t_scalar.h.

00044 { return _mrastep; }

template<typename Data_t>
Rtmra< Data_t, scalar >.operator Data_t  ) 
 

Definition at line 35 of file Rtmra_Data_t_scalar.h.

00035 { return *_data; }

template<typename Data_t>
int Rtmra< Data_t, scalar >.operator++ int   ) 
 

Definition at line 38 of file Rtmra_Data_t_scalar.h.

00038 { rtwt(); return 0; }

template<typename Data_t>
int Rtmra< Data_t, scalar >.operator++  ) 
 

Definition at line 37 of file Rtmra_Data_t_scalar.h.

00037 { rtwt(); return 0; }

template<typename Data_t>
int Rtmra< Data_t, scalar >.operator-- int   ) 
 

Definition at line 43 of file Rtmra_Data_t_scalar.h.

00043 { rtiwt(); return 0; }

template<typename Data_t>
int Rtmra< Data_t, scalar >.operator--  ) 
 

Definition at line 42 of file Rtmra_Data_t_scalar.h.

00042 { rtiwt(); return 0; }

template<typename Data_t>
Rtmra< Data_t, scalar > & Rtmra< Data_t, scalar >::operator= const Data_t  data  ) 
 

Definition at line 106 of file Rtmra_Data_t_scalar.h.

00107 {
00108    assign(data);
00109    return *this;
00110 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::remalloc const int  msize = 8  )  [virtual]
 

Definition at line 83 of file Rtmra_Data_t_scalar.h.

00084 {
00085    _Msize = msize; 
00086    _mmax = msize-1;
00087    _mrastep = -1;
00088    if (_mracoef) delete [] _mracoef; _mracoef = 0;
00089    if (_data) delete _data; _data = 0;
00090    _mracoef = new Data_t[ 2*_Msize ];
00091    _data = new Data_t;
00092    for( int i = 0; i< 2*_Msize; i++) { _mracoef[i] = 0; }
00093    *_data = 0;
00094 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::rtiwt  )  [virtual]
 

Definition at line 136 of file Rtmra_Data_t_scalar.h.

References INVSQRT2, and rtmrartiwt().

00137 {
00138 #ifdef STORM_USEC
00139    rtmrartiwt( _Msize, _mmax, _mrastep, _mracoef, *_data );
00140 #else
00141    _mrastep++;
00142    int itmp = (1<<_mmax) - 1;
00143    itmp = itmp - ( itmp & _mrastep );
00144    int imcycle = 0;
00145    while ( ( itmp & (1<<imcycle) ) && ( imcycle < _mmax ) ) { imcycle++; }
00146    int m = imcycle;
00147    if ( m < _mmax ) { 
00148       _mracoef[2*m] = ( _mracoef[ 2*(m+1) ] 
00149                         - _mracoef[ 2*(m+1) + 1 ] ) * INVSQRT2; 
00150    }
00151    m--;
00152    while ( m >= 0 ) {
00153       _mracoef[2*m] = ( _mracoef[ 2*(m+1) ] 
00154                         + _mracoef[ 2*(m+1) + 1 ]) * INVSQRT2;
00155       m--;
00156    }
00157    *_data = _mracoef[0];
00158 #endif
00159 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::rtjiwt  )  [virtual]
 

Definition at line 162 of file Rtmra_Data_t_scalar.h.

References rtmrartjiwt().

00163 {
00164 //#ifdef STORM_USEC
00165    rtmrartjiwt( _Msize, _mmax, _mrastep, _mracoef, *_data );
00166 //#else
00167 //   _mrastep++;
00168 //   int itmp = (1<<_mmax) - 1;
00169 //   itmp = itmp - ( itmp & _mrastep );
00170 //   int imcycle = 0;
00171 //   while ( ( itmp & (1<<imcycle) ) && ( imcycle < _mmax ) ) { imcycle++; }
00172 //   int m = imcycle;
00173 //   if ( m < _mmax ) { 
00174 //      _mracoef[2*m] = ( _mracoef[ 2*(m+1) ] 
00175 //                        - _mracoef[ 2*(m+1) + 1 ] ) * INVSQRT2; 
00176 //   }
00177 //   m--;
00178 //   while ( m >= 0 ) {
00179 //      _mracoef[2*m] = ( _mracoef[ 2*(m+1) ] 
00180 //                        + _mracoef[ 2*(m+1) + 1 ]) * INVSQRT2;
00181 //      m--;
00182 //   }
00183 //   *_data = _mracoef[0];
00184 //#endif
00185 }

template<typename Data_t>
Rtmra< Data_t, scalar >::Rtmra const int  msize = 8  ) 
 

Definition at line 66 of file Rtmra_Data_t_scalar.h.

00067   : _Msize(msize), _mmax(msize-1), _mrastep(-1) 
00068 {
00069    _mracoef = new Data_t[ 2*_Msize ];
00070    _data = new Data_t;
00071    for( int i = 0; i < 2*_Msize; i++) { _mracoef[i] = 0; }
00072    *_data = 0;
00073 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::rtwt  )  [virtual]
 

Definition at line 113 of file Rtmra_Data_t_scalar.h.

References INVSQRT2, and rtmrartwt().

00114 {
00115 #ifdef STORM_USEC
00116    rtmrartwt( _Msize, _mmax, _mrastep, _mracoef, *_data );
00117 #else
00118    _mrastep++;
00119    int mcycle = 0;
00120    while ( ( _mrastep & (1<<mcycle) ) && ( mcycle < _mmax ) ) { mcycle++; }
00121    Data_t tmpold;
00122    Data_t tmp = *_data;
00123    int m = 1;
00124    while ( m <= mcycle ) {
00125       tmpold = _mracoef[ 2*(m-1) ];
00126       _mracoef[ 2*(m-1) ] = tmp;
00127       _mracoef[ 2*m + 1 ] = (tmpold-tmp) * INVSQRT2;
00128       tmp = (tmpold+tmp) * INVSQRT2;
00129       m++;
00130    }
00131    _mracoef[ 2*(m-1) ] = tmp;
00132 #endif
00133 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::scal const int  m,
Data_t  scalcoef
[virtual]
 

Definition at line 280 of file Rtmra_Data_t_scalar.h.

References rtmraputscalcoef().

00281 {
00282 #ifdef STORM_USEC
00283    rtmraputscalcoef( _Msize, _mmax, _mrastep, _mracoef, m, scalcoef );
00284 #else
00285 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00286    _mracoef[2*m] = scalcoef; 
00287 //    }
00288 #endif
00289 }

template<typename Data_t>
Data_t Rtmra< Data_t, scalar >::scal const  int  )  [virtual]
 

Definition at line 200 of file Rtmra_Data_t_scalar.h.

References rtmrascalcoef().

00201 {
00202    Data_t scalcoef;
00203 #ifdef STORM_USEC
00204    rtmrascalcoef( _Msize, _mmax, _mrastep, _mracoef, m, scalcoef );
00205 #else
00206 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00207       scalcoef = _mracoef[2*m]; 
00208 //   }
00209 //   else { 
00210 //      scalcoef = 1.0/0; 
00211 //   }
00212 #endif
00213    return scalcoef;
00214 }

template<typename Data_t>
void Rtmra< Data_t, scalar >::wav const int  m,
Data_t  wavcoef
[virtual]
 

Definition at line 292 of file Rtmra_Data_t_scalar.h.

References rtmraputwavcoef().

00293 {
00294 #ifdef STORM_USEC
00295    rtmraputwavcoef( _Msize, _mmax, _mrastep, _mracoef, m, wavcoef );
00296 #else
00297 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00298    _mracoef[ 2*m + 1 ] = wavcoef; 
00299 //   }
00300 #endif
00301 }

template<typename Data_t>
Data_t Rtmra< Data_t, scalar >::wav const  int  )  [virtual]
 

Definition at line 217 of file Rtmra_Data_t_scalar.h.

References rtmrawavcoef().

00218 {
00219    Data_t wavcoef;
00220 #ifdef STORM_USEC
00221    rtmrawavcoef( _Msize, _mmax, _mrastep, _mracoef, m, wavcoef );
00222 #else
00223 //   if ( ( m >= 0 ) && ( m <= _mmax ) ) { 
00224       wavcoef = _mracoef[ 2*m + 1 ]; 
00225 //   }
00226 //   else { wavcoef = 1.0/0; }
00227 #endif
00228    return wavcoef;
00229 }


Field Documentation

template<typename Data_t>
Data_t* Rtmra< Data_t, scalar >._data [protected]
 

Definition at line 61 of file Rtmra_Data_t_scalar.h.

template<typename Data_t>
int Rtmra< Data_t, scalar >._mmax [protected]
 

Definition at line 58 of file Rtmra_Data_t_scalar.h.

template<typename Data_t>
Data_t* Rtmra< Data_t, scalar >._mracoef [protected]
 

Definition at line 60 of file Rtmra_Data_t_scalar.h.

template<typename Data_t>
int Rtmra< Data_t, scalar >._mrastep [protected]
 

Definition at line 59 of file Rtmra_Data_t_scalar.h.

template<typename Data_t>
int Rtmra< Data_t, scalar >._Msize [protected]
 

Definition at line 57 of file Rtmra_Data_t_scalar.h.

template<typename Data_t>
const int Rtmra< Data_t, scalar >.ArrayDim = 0 [static]
 

Definition at line 27 of file Rtmra_Data_t_scalar.h.


The documentation for this class was generated from the following file:
Generated on Mon May 31 21:41:38 2004 for SR2k4 Assembler by doxygen 1.3.6