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

rtrsmrascalars.cpp

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

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