Go to the source code of this file.
Functions | |
| void | rtrsmrartrswt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, int *mracoef, int *mracoefrs, const int *datavalue) |
| void | rtrsmrartrswt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, double *mracoef, double *mracoefrs, const double *datavalue) |
| void | rtrsmrartrswt (const int &Asize, const int &Msize, const int &amax, const int &mmax, int &mrastep, float *mracoef, float *mracoefrs, const float *datavalue) |
| void | rtrsmrartrswt (const int &Msize, const int &mmax, int &mrastep, int *mracoef, int *mracoefrs, const int &datavalue) |
| void | rtrsmrartrswt (const int &Msize, const int &mmax, int &mrastep, double *mracoef, double *mracoefrs, const double &datavalue) |
| void | rtrsmrartrswt (const int &Msize, const int &mmax, int &mrastep, float *mracoef, float *mracoefrs, const float &datavalue) |
|
||||||||||||||||||||||||||||||||||||
|
Definition at line 260 of file rtrsmrartrswt.cpp. References iartrsmrartrswt_(). Referenced by Rtrsmra< Data_t, scalar >.rtwt(), and Rtrsmra< Data_t, array >.rtwt().
00270 {
00271 #ifdef STORM_USEF
00272 iartrsmrartrswt_(
00273 &Asize, &Msize,
00274 &amax, &mmax,
00275 &mrastep, mracoef, mracoefrs,
00276 datavalue
00277 );
00278 #else
00279 mrastep++;
00280 int mcycle = 0;
00281 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00282 int mcyclers = mcycle+1;
00283 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00284 for( int a = 0; a <= amax; a++) {
00285 int tmp = datavalue[a];
00286 int m = 1;
00287 int tmpold,tmprs;
00288 while ( m <= mcycle ) {
00289 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00290 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00291 mracoef[ Msize*2*a + 2*m + 1 ] = tmpold-tmp;
00292 tmp = tmpold+tmp;
00293 if ( (tmp >= 0) || ((tmp & 0x00000001) != 0 ) ) {
00294 tmp = tmp/2;
00295 } else {
00296 tmp = tmp/2-1;
00297 }
00298 m++;
00299 }
00300 if ( m == mcyclers ) {
00301 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00302 mracoefrs[ Msize*2*a + 2*m + 1 ] = tmpold-tmp;
00303 tmprs = tmpold+tmp;
00304 if ( (tmprs >= 0) || ((tmprs & 0x00000001) != 0 ) ) {
00305 tmprs = tmprs/2;
00306 } else {
00307 tmprs = tmprs/2-1;
00308 }
00309 mracoefrs[ Msize*2*a + 2*m ] = tmprs;
00310 }
00311 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00312 }
00313 #endif
00314 }
|
|
||||||||||||||||||||||||||||||||||||
|
Definition at line 210 of file rtrsmrartrswt.cpp. References dartrsmrartrswt_(), and INVSQRT2.
00220 {
00221 #ifdef STORM_USEF
00222 dartrsmrartrswt_(
00223 &Asize, &Msize,
00224 &amax, &mmax,
00225 &mrastep, mracoef, mracoefrs,
00226 datavalue
00227 );
00228 #else
00229 mrastep++;
00230 int mcycle = 0;
00231 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00232 int mcyclers = mcycle+1;
00233 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00234 for( int a = 0; a <= amax; a++) {
00235 double tmp = datavalue[a];
00236 int m = 1;
00237 double tmpold,tmps,tmpw;
00238 while ( m <= mcycle ) {
00239 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00240 tmps = (tmpold+tmp) * INVSQRT2;
00241 tmpw = (tmpold-tmp) * INVSQRT2;
00242 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00243 mracoef[ Msize*2*a + 2*m + 1 ] = tmpw;
00244 tmp = tmps;
00245 m++;
00246 }
00247 if ( m == mcyclers ) {
00248 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00249 tmps = (tmpold+tmp) * INVSQRT2;
00250 tmpw = (tmpold-tmp) * INVSQRT2;
00251 mracoefrs[ Msize*2*a + 2*m ] = tmps;
00252 mracoefrs[ Msize*2*a + 2*m + 1 ] = tmpw;
00253 }
00254 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00255 }
00256 #endif
00257 }
|
|
||||||||||||||||||||||||||||||||||||
|
Definition at line 160 of file rtrsmrartrswt.cpp. References artrsmrartrswt_(), and INVSQRT2.
00170 {
00171 #ifdef STORM_USEF
00172 artrsmrartrswt_(
00173 &Asize, &Msize,
00174 &amax, &mmax,
00175 &mrastep, mracoef, mracoefrs,
00176 datavalue
00177 );
00178 #else
00179 mrastep++;
00180 int mcycle = 0;
00181 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00182 int mcyclers = mcycle + 1;
00183 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00184 for( int a=0; a <= amax; a++ ) {
00185 float tmp = datavalue[a];
00186 int m = 1;
00187 float tmpold,tmps,tmpw;
00188 while ( m <= mcycle ) {
00189 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00190 tmps = (tmpold+tmp) * INVSQRT2;
00191 tmpw = (tmpold-tmp) * INVSQRT2;
00192 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00193 mracoef[ Msize*2*a + 2*m + 1 ] = tmpw;
00194 tmp = tmps;
00195 m++;
00196 }
00197 if ( m == mcyclers ) {
00198 tmpold = mracoef[ Msize*2*a + 2*(m-1) ];
00199 tmps = (tmpold+tmp) * INVSQRT2;
00200 tmpw = (tmpold-tmp) * INVSQRT2;
00201 mracoefrs[ Msize*2*a + 2*m ] = tmps;
00202 mracoefrs[ Msize*2*a + 2*m + 1 ] = tmpw;
00203 }
00204 mracoef[ Msize*2*a + 2*(m-1) ] = tmp;
00205 }
00206 #endif
00207 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 112 of file rtrsmrartrswt.cpp. References irtrsmrartrswt_().
00120 {
00121 #ifdef STORM_USEF
00122 irtrsmrartrswt_( &Msize, &mmax, &mrastep, mracoef, mracoefrs, &datavalue );
00123 #else
00124 mrastep++;
00125 int mcycle = 0;
00126 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00127 int mcyclers = mcycle + 1;
00128 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00129 int tmp = datavalue;
00130 int m=1;
00131 int tmpold,tmprs;
00132 while ( m <= mcycle ) {
00133 tmpold = mracoef[ 2*(m-1) ];
00134 mracoef[ 2*(m-1) ] = tmp;
00135 mracoef[ 2*m + 1 ] = tmpold-tmp;
00136 tmp = tmpold+tmp;
00137 if ( (tmp >= 0) || ((tmp & 0x00000001) != 0 ) ) {
00138 tmp = tmp/2;
00139 } else {
00140 tmp = tmp/2-1;
00141 }
00142 m++;
00143 }
00144 if ( m == mcyclers ) {
00145 tmpold = mracoef[ 2*(m-1) ];
00146 mracoefrs[ 2*m + 1 ] = tmpold-tmp;
00147 tmprs = tmpold+tmp;
00148 if ( (tmprs >= 0) || ((tmprs & 0x00000001) != 0 ) ) {
00149 tmprs = tmprs/2;
00150 } else {
00151 tmprs = tmprs/2-1;
00152 }
00153 mracoefrs[ 2*m ] = tmprs;
00154 }
00155 mracoef[ 2*(m-1) ]=tmp;
00156 #endif
00157 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 66 of file rtrsmrartrswt.cpp. References drtrsmrartrswt_(), and INVSQRT2.
00074 {
00075 #ifdef STORM_USEF
00076 drtrsmrartrswt_(
00077 &Msize,
00078 &mmax,
00079 &mrastep, mracoef, mracoefrs,
00080 &datavalue
00081 );
00082 #else
00083 mrastep++;
00084 int mcycle = 0;
00085 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00086 int mcyclers = mcycle + 1;
00087 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00088 double tmp = datavalue;
00089 int m=1;
00090 double tmpold,tmps,tmpw;
00091 while ( m <= mcycle ) {
00092 tmpold = mracoef[ 2*(m-1) ];
00093 tmps = (tmpold+tmp) * INVSQRT2;
00094 tmpw = (tmpold-tmp) * INVSQRT2;
00095 mracoef[ 2*(m-1) ] = tmp;
00096 mracoef[ 2*m + 1 ] = tmpw;
00097 tmp = tmps;
00098 m++;
00099 }
00100 if ( m == mcyclers ) {
00101 tmpold = mracoef[ 2*(m-1) ];
00102 tmps = (tmpold+tmp) * INVSQRT2;
00103 tmpw = (tmpold-tmp) * INVSQRT2;
00104 mracoefrs[ 2*m ] = tmps;
00105 mracoefrs[ 2*m + 1 ] = tmpw;
00106 }
00107 mracoef[ 2*(m-1) ]=tmp;
00108 #endif
00109 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 19 of file rtrsmrartrswt.cpp. References INVSQRT2, and rtrsmrartrswt_().
00027 {
00028 #ifdef STORM_USEF
00029 rtrsmrartrswt_(
00030 &Msize,
00031 &mmax,
00032 &mrastep, mracoef, mracoefrs,
00033 &datavalue
00034 );
00035 #else
00036 mrastep++;
00037 int mcycle = 0;
00038 while ( ( mrastep & (1<<mcycle) ) && ( mcycle < mmax ) ) { mcycle++; }
00039 int mcyclers = mcycle + 1;
00040 if ( ( mrastep < (1<<mcyclers) ) || ( mcyclers > mmax ) ) { mcyclers = 0; }
00041 float tmp = datavalue;
00042 int m=1;
00043 float tmpold,tmps,tmpw;
00044 while ( m <= mcycle ) {
00045 tmpold = mracoef[ 2*(m-1) ];
00046 tmps = (tmpold+tmp) * INVSQRT2;
00047 tmpw = (tmpold-tmp) * INVSQRT2;
00048 mracoef[ 2*(m-1) ] = tmp;
00049 mracoef[ 2*m + 1 ] = tmpw;
00050 tmp=tmps;
00051 m++;
00052 }
00053 if ( m == mcyclers ) {
00054 tmpold = mracoef[ 2*(m-1) ];
00055 tmps = (tmpold+tmp) * INVSQRT2;
00056 tmpw = (tmpold-tmp) * INVSQRT2;
00057 mracoefrs[ 2*m ] = tmps;
00058 mracoefrs[ 2*m + 1 ] = tmpw;
00059 }
00060 mracoef[ 2*(m-1) ] = tmp;
00061 #endif
00062
00063 }
|
1.3.6