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) |
|
||||||||||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||||||||||
|
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 }
|
|
||||||||||||||||||||||||
|
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 }
|
1.3.6