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

rtmrascala.cpp

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

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