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

rtmrawavd.cpp

Go to the documentation of this file.
00001 // rtmrawavd.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 "rtmrawavd_.h"
00016 #include "drtmrawavd_.h"
00017 #include "irtmrawavd_.h"
00018 #include "artmrawavd1_.h"
00019 #include "dartmrawavd1_.h"
00020 #include "iartmrawavd1_.h"
00021 #endif
00022 
00023 #include "stormdef.h"
00024 #define INVSQRT2 STORMDEF_MATHCONST_INVSQRT2
00025 
00026 void rtmrawavd( 
00027           const int& Msize,
00028           const int& mmax,
00029           const int& mrastep,
00030           const float* mracoef,
00031           const int& m,
00032                 float& wavd
00033 ) {
00034 #ifdef STORM_USEF 
00035    rtmrawavd_( &Msize, &mmax, &mrastep, mracoef, &m, &wavd );
00036 #else
00037 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00038       wavd = mracoef[ 2*m + 1 ] * pow(INVSQRT2,m); 
00039 //   }
00040 //   else { 
00041 //      wavd = 1.0/0; 
00042 //   }
00043 #endif
00044 }
00045 
00046 
00047 void rtmrawavd( 
00048           const int& Msize,
00049           const int& mmax,
00050           const int& mrastep,
00051           const double* mracoef,
00052           const int& m,
00053                 double& wavd
00054 ) { 
00055 #ifdef STORM_USEF
00056    drtmrawavd_( &Msize, &mmax, &mrastep, mracoef, &m, &wavd );
00057 #else
00058 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00059       wavd = mracoef[ 2*m + 1 ] * pow(INVSQRT2,m); 
00060 //   }
00061 //   else { 
00062 //      wavd = 1.0/0; 
00063 //   }
00064 #endif
00065 } 
00066 
00067 
00068 void rtmrawavd( 
00069           const int& Msize,
00070           const int& mmax,
00071           const int& mrastep,
00072           const int* mracoef,
00073           const int& m,
00074                 int& wavd
00075 ) { 
00076 #ifdef STORM_USEF
00077    irtmrawavd_( &Msize, &mmax, &mrastep, mracoef, &m, &wavd );
00078 #else
00079 //   if ( ( m >= 0 ) && ( m <= mmax ) ) { 
00080       int tmp = mracoef[ 2*m + 1 ];
00081       if (tmp >= 0) {
00082          wavd = tmp >> m;
00083       } else {
00084          if ((tmp & 0x00000001) != 0) {
00085             wavd = - ( (-tmp) >> m);
00086          } else {
00087             wavd = - ( (-tmp) >> m) - 1;
00088          }
00089       }
00090 //   }
00091 //   else { 
00092 //      wavd = 1/0; 
00093 //   }
00094 #endif
00095 } 
00096 
00097 
00098 void rtmrawavd(
00099           const int& Asize,
00100           const int& Msize,
00101           const int& amax,
00102           const int& mmax,
00103           const int& mrastep,
00104           const float* mracoef,
00105           const int& a,
00106           const int& m,
00107                 float& wavd
00108 ) {
00109 #ifdef STORM_USEF
00110    artmrawavd1_(
00111      &Asize, &Msize,
00112      &amax, &mmax,
00113      &mrastep, mracoef,
00114      &a, &m, &wavd
00115    );
00116 #else
00117 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00118       wavd = mracoef[ a*2*Msize + 2*m + 1 ] * pow(INVSQRT2,m);
00119 //   } 
00120 //   else { 
00121 //      wavd = 1.0/0; 
00122 //   }
00123 #endif
00124 }
00125 
00126 
00127 void rtmrawavd(
00128           const int& Asize,
00129           const int& Msize,
00130           const int& amax,
00131           const int& mmax,
00132           const int& mrastep,
00133           const double* mracoef,
00134           const int& a,
00135           const int& m,
00136                 double& wavd
00137 ) {
00138 #ifdef STORM_USEF
00139    dartmrawavd1_(
00140      &Asize, &Msize,
00141      &amax, &mmax,
00142      &mrastep, mracoef,
00143      &a, &m, &wavd
00144    );
00145 #else
00146 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00147       wavd = mracoef[ a*2*Msize + 2*m + 1 ] * pow(INVSQRT2,m);
00148 //   } 
00149 //   else { 
00150 //      wavd = 1.0/0; 
00151 //   }
00152 #endif
00153 }
00154 
00155  
00156 void rtmrawavd(
00157           const int& Asize,
00158           const int& Msize,
00159           const int& amax,
00160           const int& mmax,
00161           const int& mrastep,
00162           const int* mracoef,
00163           const int& a,
00164           const int& m,
00165                 int& wavd
00166 ) {
00167 #ifdef STORM_USEF
00168    iartmrawavd1_(
00169      &Asize, &Msize,
00170      &amax, &mmax,
00171      &mrastep, mracoef,
00172      &a, &m, &wavd
00173    );
00174 #else
00175 //   if ( ( a >= 0 ) && ( a <= amax ) && ( m >= 0 ) && ( m <= mmax ) ) {
00176       int tmp = mracoef[ a*2*Msize + 2*m + 1 ];
00177       if (tmp >= 0) {
00178          wavd = tmp >> m;
00179       } else {
00180          if ((tmp & 0x00000001) != 0) {
00181             wavd = - ( (-tmp) >> m);
00182          } else {
00183             wavd = - ( (-tmp) >> m) - 1;
00184          }
00185       }
00186 //   } 
00187 //   else { 
00188 //      wavd = 1/0; 
00189 //   }
00190 #endif
00191 }
00192  

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