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

rtmrartjiwt.cpp File Reference

#include <iostream.h>
#include "stormdef.h"

Include dependency graph for rtmrartjiwt.cpp:

Include dependency graph

Go to the source code of this file.

Defines

#define INVSQRT2   STORMDEF_MATHCONST_INVSQRT2

Functions

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


Define Documentation

#define INVSQRT2   STORMDEF_MATHCONST_INVSQRT2
 

Definition at line 24 of file rtmrartjiwt.cpp.


Function Documentation

void rtmrartjiwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
int mracoef,
int data
 

Definition at line 164 of file rtmrartjiwt.cpp.

References iartmrartjiwt_().

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

00172   { 
00173 #ifdef STORM_USEF
00174    iartmrartjiwt_( &Asize,&Msize, &amax,&mmax, &mrastep, mracoef, data );
00175 #else
00176    ++mrastep;
00177    for( int a =0; a <= amax; a++ ) {
00178       for(int m = (mmax-1); m >= 0; --m ) {
00179          if ( (mrastep & (1<<m)) != 0 ) { //right
00180             int tmp = mracoef[a*2*Msize+2*(m+1)+1];
00181             if ( (tmp >= 0) || ((tmp & 0x00000001) == 0) ) {
00182                mracoef[a*2*Msize+2*m]=mracoef[a*2*Msize+2*(m+1)] - tmp/2;
00183             } else {
00184                mracoef[a*2*Msize+2*m]=mracoef[a*2*Msize+2*(m+1)] - (tmp/2-1);
00185             }
00186          } else { //left
00187             int tmp = mracoef[a*2*Msize+2*(m+1)+1] + 1;
00188             if ( (tmp >= 0) || ((tmp & 0x00000001) == 0) ) {
00189                mracoef[a*2*Msize+2*m]=mracoef[a*2*Msize+2*(m+1)] + tmp/2;
00190             } else {
00191                mracoef[a*2*Msize+2*m]=mracoef[a*2*Msize+2*(m+1)] + (tmp/2-1);
00192             }
00193          }
00194       }
00195       data[a] = mracoef[a*2*Msize];
00196    }
00197 #endif
00198 } 

void rtmrartjiwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
double *  mracoef,
double *  data
 

Definition at line 135 of file rtmrartjiwt.cpp.

00143   { 
00144 #ifdef STORM_USEF
00145    dartmrartjiwt_( &Asize,&Msize, &amax,&mmax, &mrastep, mracoef, data );
00146 #else
00147    ++mrastep;
00148    for( int a =0; a <= amax; a++ ) {
00149       for(int m = (mmax-1); m >= 0; --m ) {
00150          if ( (mrastep & (1<<m)) != 0 ) {
00151             mracoef[ a*2*Msize + 2*m] = ( mracoef[ a*2*Msize + 2*(m+1)] 
00152               - mracoef[ a*2*Msize + 2*(m+1)+1] ) * INVSQRT2;
00153          } else {
00154             mracoef[ a*2*Msize + 2*m] = ( mracoef[ a*2*Msize + 2*(m+1)] 
00155               + mracoef[ a*2*Msize + 2*(m+1)+1] ) * INVSQRT2;
00156          }
00157       }
00158       data[a] = mracoef[a*2*Msize];
00159    }
00160 #endif
00161 } 

void rtmrartjiwt const int Asize,
const int Msize,
const int amax,
const int mmax,
int mrastep,
float *  mracoef,
float *  data
 

Definition at line 106 of file rtmrartjiwt.cpp.

00114   { 
00115 #ifdef STORM_USEF
00116    artmrartjiwt_( &Asize,&Msize, &amax,&mmax, &mrastep, mracoef, data );
00117 #else
00118    ++mrastep;
00119    for( int a =0; a <= amax; a++ ) {
00120       for(int m = (mmax-1); m >= 0; --m ) {
00121          if ( (mrastep & (1<<m)) != 0 ) {
00122             mracoef[ a*2*Msize + 2*m] = ( mracoef[ a*2*Msize + 2*(m+1)] 
00123               - mracoef[ a*2*Msize + 2*(m+1)+1] ) * INVSQRT2;
00124          } else {
00125             mracoef[ a*2*Msize + 2*m] = ( mracoef[ a*2*Msize + 2*(m+1)] 
00126               + mracoef[ a*2*Msize + 2*(m+1)+1] ) * INVSQRT2;
00127          }
00128       }
00129       data[a] = mracoef[a*2*Msize];
00130    }
00131 #endif
00132 } 

void rtmrartjiwt const int Msize,
const int mmax,
int mrastep,
int mracoef,
int data
 

Definition at line 72 of file rtmrartjiwt.cpp.

00078   { 
00079 #ifdef STORM_USEF
00080    irtmrartjiwt_( &Msize, &mmax, &mrastep, mracoef, &data );
00081 #else
00082    int tmp;
00083    ++mrastep;
00084    for(int m = (mmax-1); m >= 0; --m ) {
00085       if ( (mrastep & (1<<m)) != 0 ) { //right
00086          tmp = mracoef[2*(m+1)+1];
00087          if ( (tmp >= 0) || ((tmp & 0x00000001) == 0) ) {
00088             mracoef[2*m] = mracoef[2*(m+1)] - tmp/2;
00089          } else {
00090             mracoef[2*m] = mracoef[2*(m+1)] - (tmp/2-1);
00091          }
00092       } else { //left
00093          tmp = mracoef[2*(m+1)+1] + 1;
00094          if ( (tmp >= 0) || ((tmp & 0x00000001) == 0) ) {
00095             mracoef[2*m] = mracoef[2*(m+1)] + tmp/2;
00096          } else {
00097             mracoef[2*m] = mracoef[2*(m+1)] + (tmp/2-1);
00098          }
00099       }
00100    }
00101    data = mracoef[0];
00102 #endif
00103 } 

void rtmrartjiwt const int Msize,
const int mmax,
int mrastep,
double *  mracoef,
double &  data
 

Definition at line 49 of file rtmrartjiwt.cpp.

00055   { 
00056 #ifdef STORM_USEF
00057    drtmrartjiwt_( &Msize, &mmax, &mrastep, mracoef, &data );
00058 #else
00059    ++mrastep;
00060    for(int m = (mmax-1); m >= 0; --m ) {
00061       if ( (mrastep & (1<<m)) != 0 ) {
00062          mracoef[2*m] = ( mracoef[2*(m+1)] - mracoef[2*(m+1)+1] ) * INVSQRT2;
00063       } else {
00064          mracoef[2*m] = ( mracoef[2*(m+1)] + mracoef[2*(m+1)+1] ) * INVSQRT2;
00065       }
00066    }
00067    data = mracoef[0];
00068 #endif
00069 } 

void rtmrartjiwt const int Msize,
const int mmax,
int mrastep,
float *  mracoef,
float &  data
 

Definition at line 26 of file rtmrartjiwt.cpp.

00032   { 
00033 #ifdef STORM_USEF
00034    rtmrartjiwt_( &Msize, &mmax, &mrastep, mracoef, &data );
00035 #else
00036    ++mrastep;
00037    for(int m = (mmax-1); m >= 0; --m ) {
00038       if ( (mrastep & (1<<m)) != 0 ) {
00039          mracoef[2*m] = ( mracoef[2*(m+1)] - mracoef[2*(m+1)+1] ) * INVSQRT2;
00040       } else {
00041          mracoef[2*m] = ( mracoef[2*(m+1)] + mracoef[2*(m+1)+1] ) * INVSQRT2;
00042       }
00043    }
00044    data = mracoef[0];
00045 #endif
00046 }


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