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

rtrsmrawavd.cpp

Go to the documentation of this file.
00001 // rtrsmrawavd.cpp
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2000-2002 Brown Deer Technology, LLC.
00004 //                        All rights reserved.
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 #ifdef USE_STD
00008 #include <cmath>
00009 using namespace std;
00010 #else
00011 #include <math.h>
00012 #endif
00013 
00014 #ifdef STORM_USEF
00015 #include "rtrsmrawavd_.h"
00016 #include "drtrsmrawavd_.h"
00017 #include "irtrsmrawavd_.h"
00018 #include "artrsmrawavd1_.h"
00019 #include "dartrsmrawavd1_.h"
00020 #include "iartrsmrawavd1_.h"
00021 #endif
00022 
00023 #include "stormdef.h"
00024 #define INVSQRT2 STORMDEF_MATHCONST_INVSQRT2
00025 
00026 void rtrsmrawavd( 
00027           const int& Msize,
00028           const int& mmax,
00029           const int& mrastep,
00030           const float* mracoef,
00031           const float* mracoefrs,
00032           const int& m,
00033                 float& wavd
00034 ) 
00035 { 
00036 #ifdef STORM_USEF
00037    rtrsmrawavd_( 
00038      &Msize, 
00039      &mmax, 
00040      &mrastep, mracoef, mracoefrs,
00041      &m, &wavd
00042    );
00043 #else
00044 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00045       wavd = mracoef[ 2*m +1 ] * pow(INVSQRT2,m); 
00046 //   } else { 
00047 //      wavd = 1.0/0;
00048 //   }
00049 #endif
00050 }
00051 
00052 
00053 void rtrsmrawavd( 
00054           const int& Msize,
00055           const int& mmax,
00056           const int& mrastep,
00057           const double* mracoef,
00058           const double* mracoefrs,
00059           const int& m,
00060                 double& wavd
00061 ) 
00062 { 
00063 #ifdef STORM_USEF
00064    drtrsmrawavd_( 
00065      &Msize, 
00066      &mmax, 
00067      &mrastep, mracoef, mracoefrs,
00068      &m, &wavd
00069    );
00070 #else
00071 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00072       wavd = mracoef[ 2*m + 1 ] * pow(INVSQRT2,m); 
00073 //   } else { 
00074 //      wavd = 1.0/0;
00075 //   }
00076 #endif
00077 } 
00078 
00079 
00080 void rtrsmrawavd( 
00081           const int& Msize,
00082           const int& mmax,
00083           const int& mrastep,
00084           const int* mracoef,
00085           const int* mracoefrs,
00086           const int& m,
00087                 int& wavd
00088 ) 
00089 { 
00090 #ifdef STORM_USEF
00091    irtrsmrawavd_( 
00092      &Msize, 
00093      &mmax, 
00094      &mrastep, mracoef, mracoefrs,
00095      &m, &wavd
00096    );
00097 #else
00098 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00099       int tmp = mracoef[ 2*m + 1 ];
00100       if (tmp >= 0) {
00101          wavd = tmp >> m;
00102       } else {
00103          if ((tmp & 0x00000001) != 0) {
00104             wavd = - ( (-tmp) >> m);
00105          } else {
00106             wavd = - ( (-tmp) >> m) - 1;
00107          }
00108       }
00109 //   } else { 
00110 //      wavd = 1/0;
00111 //   }
00112 #endif
00113 } 
00114 
00115 
00116 void rtrsmrawavd(
00117           const int& Asize,
00118           const int& Msize,
00119           const int& amax,
00120           const int& mmax,
00121           const int& mrastep,
00122           const float* mracoef,
00123           const float* mracoefrs,
00124           const int& a,
00125           const int& m,
00126                 float& wavd
00127 )
00128 {
00129 #ifdef STORM_USEF
00130    artrsmrawavd1_(
00131      &Asize, &Msize,
00132      &amax, &mmax,
00133      &mrastep, mracoef, mracoefrs,
00134      &a, &m, &wavd
00135    );
00136 #else
00137 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00138       wavd = mracoef[ Msize*2*a + 2*m + 1 ] * pow(INVSQRT2,m);
00139 //   } else {
00140 //      wavd = 1.0/0;
00141 //   }
00142 #endif
00143 }
00144 
00145 
00146 void rtrsmrawavd(
00147           const int& Asize,
00148           const int& Msize,
00149           const int& amax,
00150           const int& mmax,
00151           const int& mrastep,
00152           const double* mracoef,
00153           const double* mracoefrs,
00154           const int& a,
00155           const int& m,
00156                 double& wavd
00157 )
00158 {
00159 #ifdef STORM_USEF
00160    dartrsmrawavd1_(
00161      &Asize, &Msize,
00162      &amax, &mmax,
00163      &mrastep, mracoef, mracoefrs,
00164      &a, &m, &wavd
00165    );
00166 #else
00167 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00168       wavd = mracoef[ Msize*2*a + 2*m +1 ] * pow(INVSQRT2,m);
00169 //   } else {
00170 //      wavd = 1.0/0;
00171 //   }
00172 #endif
00173 }
00174 
00175 
00176 void rtrsmrawavd(
00177           const int& Asize,
00178           const int& Msize,
00179           const int& amax,
00180           const int& mmax,
00181           const int& mrastep,
00182           const int* mracoef,
00183           const int* mracoefrs,
00184           const int& a,
00185           const int& m,
00186                 int& wavd
00187 )
00188 {
00189 #ifdef STORM_USEF
00190    iartrsmrawavd1_(
00191      &Asize, &Msize,
00192      &amax, &mmax,
00193      &mrastep, mracoef, mracoefrs,
00194      &a, &m, &wavd
00195    );
00196 #else
00197 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00198       int tmp = mracoef[ Msize*2*a + 2*m +1 ];
00199       if (tmp >= 0) {
00200          wavd = tmp >> m;
00201       } else {
00202          if ((tmp & 0x00000001) != 0) {
00203             wavd = - ( (-tmp) >> m);
00204          } else {
00205             wavd = - ( (-tmp) >> m) - 1;
00206          }
00207       }
00208 //   } else {
00209 //      wavd = 1/0;
00210 //   }
00211 #endif
00212 }
00213  

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