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

rtrsmrascala.cpp

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

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