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

rtmrartwt.h File Reference

Go to the source code of this file.

Functions

void rtmrartwt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, int *mracoef, const int *datavalue)
void rtmrartwt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, double *mracoef, const double *datavalue)
void rtmrartwt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, float *mracoef, const float *datavalue)
void rtmrartwt (const int &Msize, const int &mmax, int &mrastep, int *mracoef, const int &datavalue)
void rtmrartwt (const int &Msize, const int &mmax, int &mrastep, double *mracoef, const double &datavalue)
void rtmrartwt (const int &Msize, const int &mmax, int &mrastep, float *mracoef, const float &datavalue)


Function Documentation

void rtmrartwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
int mracoef,
const int datavalue
 

Definition at line 174 of file rtmrartwt.cpp.

References iartmrartwt_().

Referenced by Rtmra< Data_t, scalar >.rtwt(), and Rtmra< Data_t, array >.rtwt().

00182   {
00183 #ifdef STORM_USEF
00184    iartmrartwt_( &Asize, &Msize, &amax, &mmax, &mrastep, mracoef, datavalue );
00185 #else
00186    mrastep++;
00187    int mcycle = 0;
00188    while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00189    int m;
00190    int tmp,tmpold;
00191    for(int a = 0; a <= amax; a++) {
00192       tmp = datavalue[a];
00193       m = 1;
00194       while ( m <= mcycle ) {
00195          tmpold = mracoef[ a*2*Msize + 2*(m-1) ];
00196          mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00197          mracoef[ a*2*Msize + 2*m + 1 ] = tmpold-tmp;
00198          tmp = tmpold + tmp;
00199          if ( (tmp >= 0) || ((tmp & 0x00000001) != 0) ) {
00200             tmp = tmp/2;
00201          } else {
00202             tmp = tmp/2-1;
00203          }
00204          m++;
00205       }
00206       mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00207    }
00208 #endif
00209 }

void rtmrartwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
double *  mracoef,
const double *  datavalue
 

Definition at line 141 of file rtmrartwt.cpp.

References dartmrartwt_(), and INVSQRT2.

00149   {
00150 #ifdef STORM_USEF
00151    dartmrartwt_( &Asize, &Msize, &amax, &mmax, &mrastep, mracoef, datavalue );
00152 #else
00153    mrastep++;
00154    int mcycle = 0;
00155    while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00156    int m;
00157    double tmp,tmpold,tmps,tmpw;
00158    for(int a = 0; a <= amax; a++) {
00159       tmp = datavalue[a];
00160       m = 1;
00161       while ( m <= mcycle ) {
00162          tmpold = mracoef[ a*2*Msize + 2*(m-1) ];
00163          mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00164          mracoef[ a*2*Msize + 2*m + 1 ] = (tmpold-tmp) * INVSQRT2;
00165          tmp = (tmpold+tmp) * INVSQRT2;
00166          m++;
00167       }
00168       mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00169    }
00170 #endif
00171 }

void rtmrartwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
float *  mracoef,
const float *  datavalue
 

Definition at line 108 of file rtmrartwt.cpp.

References artmrartwt_(), and INVSQRT2.

00116   {
00117 #ifdef STORM_USEF
00118    artmrartwt_( &Asize, &Msize, &amax, &mmax, &mrastep, mracoef, datavalue);
00119 #else
00120    mrastep++;
00121    int mcycle = 0;
00122    while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00123    int m;
00124    float tmp,tmpold,tmps,tmpw;
00125    for(int a = 0; a <= amax; a++ ) {
00126       tmp = datavalue[a];
00127       m = 1;
00128       while ( m <= mcycle ) {
00129          tmpold = mracoef[ a*2*Msize + 2*(m-1) ];
00130          mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00131          mracoef[ a*2*Msize + 2*m + 1 ] = (tmpold-tmp) * INVSQRT2;
00132          tmp = (tmpold+tmp) * INVSQRT2;
00133          m++;
00134       }
00135       mracoef[ a*2*Msize + 2*(m-1) ] = tmp;
00136    }
00137 #endif
00138 }

void rtmrartwt const int Msize,
const int mmax,
int mrastep,
int mracoef,
const int datavalue
 

Definition at line 75 of file rtmrartwt.cpp.

References irtmrartwt_().

00081   {
00082 #ifdef STORM_USEF 
00083    irtmrartwt_( &Msize, &mmax, &mrastep, mracoef, &datavalue );
00084 #else
00085    mrastep++;
00086    int mcycle = 0;
00087    while ( (mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00088    int tmp = datavalue;
00089    int m = 1;
00090    int tmpold,tmps,tmpw;
00091    while ( m <= mcycle ) {
00092       tmpold = mracoef[ 2*(m-1) ];
00093       mracoef[ 2*(m-1) ] = tmp;
00094       mracoef[ 2*m + 1 ] = tmpold-tmp;
00095       tmp = tmpold + tmp;
00096       if ( (tmp >= 0) || ((tmp & 0x00000001) != 0) ) {
00097          tmp = tmp/2;
00098       } else {
00099          tmp = tmp/2 -1;
00100       }
00101       m++;
00102    }
00103    mracoef[ 2*(m-1) ] = tmp;
00104 #endif
00105 }

void rtmrartwt const int Msize,
const int mmax,
int mrastep,
double *  mracoef,
const double &  datavalue
 

Definition at line 47 of file rtmrartwt.cpp.

References drtmrartwt_(), and INVSQRT2.

00053   {
00054 #ifdef STORM_USEF 
00055    drtmrartwt_( &Msize, &mmax, &mrastep, mracoef, &datavalue );
00056 #else
00057    mrastep++;
00058    int mcycle = 0;
00059    while ( (mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00060    double tmp = datavalue;
00061    int m = 1;
00062    double tmpold,tmps,tmpw;
00063    while ( m <= mcycle ) {
00064       tmpold = mracoef[ 2*(m-1) ];
00065       mracoef[ 2*(m-1) ] = tmp;
00066       mracoef[ 2*m + 1 ] = (tmpold-tmp) * INVSQRT2;
00067       tmp = (tmpold+tmp) * INVSQRT2;
00068       m++;
00069    }
00070    mracoef[ 2*(m-1) ] = tmp;
00071 #endif
00072 }

void rtmrartwt const int Msize,
const int mmax,
int mrastep,
float *  mracoef,
const float &  datavalue
 

Definition at line 19 of file rtmrartwt.cpp.

References INVSQRT2, and rtmrartwt_().

00025   { 
00026 #ifdef STORM_USEF
00027    rtmrartwt_( &Msize, &mmax, &mrastep, mracoef, &datavalue );
00028 #else
00029    mrastep++;
00030    int mcycle = 0;
00031    while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00032    float tmp=datavalue;
00033    int m = 1;
00034    float tmpold;
00035    while ( m <= mcycle ) {
00036       tmpold = mracoef[ 2*(m-1) ];
00037       mracoef[ 2*(m-1) ] = tmp;
00038       mracoef[ 2*m +1 ] = (tmpold-tmp) * INVSQRT2;
00039       tmp = (tmpold+tmp) * INVSQRT2;
00040       m++;
00041    }
00042    mracoef[ 2*(m-1) ] = tmp;
00043 #endif
00044 } 


Generated on Mon May 31 21:40:32 2004 for SR2k4 Assembler by doxygen 1.3.6