Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

FuncMpo.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Array_Pattern_FuncMpo_h
00002 #define Impala_Core_Array_Pattern_FuncMpo_h
00003 
00004 #include "Core/Array/Pattern/Categories.h"
00005 #include "Core/Array/Pattern/ArrayFunc.h"
00006 
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Array
00012 {
00013 namespace Pattern
00014 {
00015 
00016 template <class DstArrayT, class SrcArrayT, class MpoT>
00017 void
00018 FuncMpo(DstArrayT* dst, std::vector<SrcArrayT*> srcList, MpoT& mpo)
00019 {
00020     typedef typename DstArrayT::StorType DstStorT;
00021     typedef typename DstArrayT::ArithType DstArithT;
00022     typedef typename SrcArrayT::StorType SrcStorT;
00023     typedef typename SrcArrayT::ArithType SrcArithT;
00024 
00025     int width = ArrayCW(dst);
00026     int height = ArrayCH(dst);
00027     int length = srcList.size();
00028     for (int y=0 ; y<height ; y++)
00029     {
00030         std::vector<SrcStorT*> srcPtrList;
00031         srcPtrList.resize(length);
00032         for(int i=0 ; i<length ; ++i)
00033             srcPtrList[i] = ArrayCPB(srcList[i], 0, y);
00034         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00035         for (int x=0 ; x<width ; x++)
00036         {
00037             std::vector<SrcStorT> valueList;
00038             valueList.resize(length);
00039             for(int i=0 ; i<length ; ++i)
00040                 valueList[i] = PtrRead(srcPtrList[i], SrcArithT());
00041             PtrWrite(dPtr, mpo.DoIt(valueList));
00042             dPtr += DstArrayT::ElemSize();
00043             for(int i=0 ; i<length ; ++i)
00044                 srcPtrList[i] += SrcArrayT::ElemSize();
00045         }
00046     }
00047 }
00048 
00049 
00050 template <class DstArrayT, class SrcArrayT, class MpoT>
00051 void
00052 FuncM3po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00053          MpoT& mpo)
00054 {
00055     typedef typename DstArrayT::StorType DstStorT;
00056     typedef typename DstArrayT::ArithType DstArithT;
00057     typedef typename SrcArrayT::StorType SrcStorT;
00058     typedef typename SrcArrayT::ArithType SrcArithT;
00059 
00060     int width = ArrayCW(dst);
00061     int height = ArrayCH(dst);
00062     for (int y=0 ; y<height ; y++)
00063     {
00064         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00065         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00066         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00067         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00068         for (int x=0 ; x<width ; x++)
00069         {
00070             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00071                                     PtrRead(s2Ptr, SrcArithT()),
00072                                     PtrRead(s3Ptr, SrcArithT())));
00073             dPtr += DstArrayT::ElemSize();
00074             s1Ptr += SrcArrayT::ElemSize();
00075             s2Ptr += SrcArrayT::ElemSize();
00076             s3Ptr += SrcArrayT::ElemSize();
00077         }
00078     }
00079 }
00080 
00081 //by michiel:
00082 template <class DstArrayT, class SrcArrayT, class MpoT>
00083 void
00084 FuncM4po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3, SrcArrayT* src4,
00085          MpoT& mpo)
00086 {
00087     typedef typename DstArrayT::StorType DstStorT;
00088     typedef typename DstArrayT::ArithType DstArithT;
00089     typedef typename SrcArrayT::StorType SrcStorT;
00090     typedef typename SrcArrayT::ArithType SrcArithT;
00091 
00092     int width = ArrayCW(dst);
00093     int height = ArrayCH(dst);
00094     for(int y=0 ; y<height ; y++) 
00095     {
00096         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00097         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00098         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00099         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00100         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00101         for(int x=0 ; x<width ; x++)
00102         {
00103             //call by pointer natuurlijk
00104             mpo.DoIt(dPtr, s1Ptr, s2Ptr, s3Ptr, s4Ptr);
00105             dPtr += DstArrayT::ElemSize();
00106             s1Ptr += SrcArrayT::ElemSize();
00107             s2Ptr += SrcArrayT::ElemSize();
00108             s3Ptr += SrcArrayT::ElemSize();
00109             s4Ptr += SrcArrayT::ElemSize();
00110         }
00111     }
00112 }
00113 //end michiel
00114 
00115 template <class DstArrayT, class SrcArrayT, class MpoT>
00116 void
00117 FuncM6po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00118          SrcArrayT* src4, SrcArrayT* src5, SrcArrayT* src6, MpoT& mpo)
00119 {
00120     typedef typename DstArrayT::StorType DstStorT;
00121     typedef typename DstArrayT::ArithType DstArithT;
00122     typedef typename SrcArrayT::StorType SrcStorT;
00123     typedef typename SrcArrayT::ArithType SrcArithT;
00124 
00125     int width = ArrayCW(dst);
00126     int height = ArrayCH(dst);
00127     for (int y=0 ; y<height ; y++)
00128     {
00129         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00130         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00131         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00132         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00133         SrcStorT* s5Ptr = ArrayCPB(src5, 0, y);
00134         SrcStorT* s6Ptr = ArrayCPB(src6, 0, y);
00135         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00136         for (int x=0 ; x<width ; x++)
00137         {
00138             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00139                                     PtrRead(s2Ptr, SrcArithT()),
00140                                     PtrRead(s3Ptr, SrcArithT()),
00141                                     PtrRead(s4Ptr, SrcArithT()),
00142                                     PtrRead(s5Ptr, SrcArithT()),
00143                                     PtrRead(s6Ptr, SrcArithT())));
00144             dPtr += DstArrayT::ElemSize();
00145             s1Ptr += SrcArrayT::ElemSize();
00146             s2Ptr += SrcArrayT::ElemSize();
00147             s3Ptr += SrcArrayT::ElemSize();
00148             s4Ptr += SrcArrayT::ElemSize();
00149             s5Ptr += SrcArrayT::ElemSize();
00150             s6Ptr += SrcArrayT::ElemSize();
00151         }
00152     }
00153 }
00154 
00155 template <class DstArrayT, class SrcArrayT, class MpoT>
00156 void
00157 FuncM9po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00158          SrcArrayT* src4, SrcArrayT* src5, SrcArrayT* src6, SrcArrayT* src7,
00159          SrcArrayT* src8, SrcArrayT* src9, MpoT& mpo)
00160 {
00161     typedef typename DstArrayT::StorType DstStorT;
00162     typedef typename DstArrayT::ArithType DstArithT;
00163     typedef typename SrcArrayT::StorType SrcStorT;
00164     typedef typename SrcArrayT::ArithType SrcArithT;
00165 
00166     int width = ArrayCW(dst);
00167     int height = ArrayCH(dst);
00168     for (int y=0 ; y<height ; y++)
00169     {
00170         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00171         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00172         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00173         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00174         SrcStorT* s5Ptr = ArrayCPB(src5, 0, y);
00175         SrcStorT* s6Ptr = ArrayCPB(src6, 0, y);
00176         SrcStorT* s7Ptr = ArrayCPB(src7 , 0, y);
00177         SrcStorT* s8Ptr = ArrayCPB(src8, 0, y);
00178         SrcStorT* s9Ptr = ArrayCPB(src9, 0, y);
00179         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00180         for (int x=0 ; x<width ; x++)
00181         {
00182             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00183                                     PtrRead(s2Ptr, SrcArithT()),
00184                                     PtrRead(s3Ptr, SrcArithT()),
00185                                     PtrRead(s4Ptr, SrcArithT()),
00186                                     PtrRead(s5Ptr, SrcArithT()),
00187                                     PtrRead(s6Ptr, SrcArithT()),
00188                                     PtrRead(s7Ptr, SrcArithT()),
00189                                     PtrRead(s8Ptr, SrcArithT()),
00190                                     PtrRead(s9Ptr, SrcArithT())));
00191             dPtr += DstArrayT::ElemSize();
00192             s1Ptr += SrcArrayT::ElemSize();
00193             s2Ptr += SrcArrayT::ElemSize();
00194             s3Ptr += SrcArrayT::ElemSize();
00195             s4Ptr += SrcArrayT::ElemSize();
00196             s5Ptr += SrcArrayT::ElemSize();
00197             s6Ptr += SrcArrayT::ElemSize();
00198             s7Ptr += SrcArrayT::ElemSize();
00199             s8Ptr += SrcArrayT::ElemSize();
00200             s9Ptr += SrcArrayT::ElemSize();
00201         }
00202     }
00203 }
00204 
00205 template <class DstArrayT, class SrcArrayT, class MpoT>
00206 void
00207 FuncM12po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00208           SrcArrayT* src4, SrcArrayT* src5, SrcArrayT* src6, SrcArrayT* src7,
00209           SrcArrayT* src8, SrcArrayT* src9, SrcArrayT* src10, SrcArrayT* src11, 
00210           SrcArrayT* src12, MpoT& mpo)
00211 {
00212     typedef typename DstArrayT::StorType DstStorT;
00213     typedef typename DstArrayT::ArithType DstArithT;
00214     typedef typename SrcArrayT::StorType SrcStorT;
00215     typedef typename SrcArrayT::ArithType SrcArithT;
00216 
00217     int width = ArrayCW(dst);
00218     int height = ArrayCH(dst);
00219     for (int y=0 ; y<height ; y++)
00220     {
00221         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00222         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00223         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00224         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00225         SrcStorT* s5Ptr = ArrayCPB(src5, 0, y);
00226         SrcStorT* s6Ptr = ArrayCPB(src6, 0, y);
00227         SrcStorT* s7Ptr = ArrayCPB(src7, 0, y);
00228         SrcStorT* s8Ptr = ArrayCPB(src8, 0, y);
00229         SrcStorT* s9Ptr = ArrayCPB(src9, 0, y);
00230         SrcStorT* s10Ptr = ArrayCPB(src10, 0, y);
00231         SrcStorT* s11Ptr = ArrayCPB(src11, 0, y);
00232         SrcStorT* s12Ptr = ArrayCPB(src12, 0, y);
00233         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00234         for (int x=0 ; x<width ; x++)
00235         {
00236             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00237                                     PtrRead(s2Ptr, SrcArithT()),
00238                                     PtrRead(s3Ptr, SrcArithT()),
00239                                     PtrRead(s4Ptr, SrcArithT()),
00240                                     PtrRead(s5Ptr, SrcArithT()),
00241                                     PtrRead(s6Ptr, SrcArithT()),
00242                                     PtrRead(s7Ptr, SrcArithT()),
00243                                     PtrRead(s8Ptr, SrcArithT()),
00244                                     PtrRead(s9Ptr, SrcArithT()),
00245                                     PtrRead(s10Ptr, SrcArithT()),
00246                                     PtrRead(s11Ptr, SrcArithT()),
00247                                     PtrRead(s12Ptr, SrcArithT())));
00248             dPtr += DstArrayT::ElemSize();
00249             s1Ptr += SrcArrayT::ElemSize();
00250             s2Ptr += SrcArrayT::ElemSize();
00251             s3Ptr += SrcArrayT::ElemSize();
00252             s4Ptr += SrcArrayT::ElemSize();
00253             s5Ptr += SrcArrayT::ElemSize();
00254             s6Ptr += SrcArrayT::ElemSize();
00255             s7Ptr += SrcArrayT::ElemSize();
00256             s8Ptr += SrcArrayT::ElemSize();
00257             s9Ptr += SrcArrayT::ElemSize();
00258             s10Ptr += SrcArrayT::ElemSize();
00259             s11Ptr += SrcArrayT::ElemSize();
00260             s12Ptr += SrcArrayT::ElemSize();
00261         }
00262     }
00263 }
00264 
00265 template <class DstArrayT, class SrcArrayT, class MpoT>
00266 void
00267 FuncM21po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00268           SrcArrayT* src4, SrcArrayT* src5, SrcArrayT* src6, SrcArrayT* src7,
00269           SrcArrayT* src8, SrcArrayT* src9, SrcArrayT* src10, SrcArrayT* src11, 
00270           SrcArrayT* src12, SrcArrayT* src13, SrcArrayT* src14,
00271           SrcArrayT* src15, SrcArrayT* src16, SrcArrayT* src17,
00272           SrcArrayT* src18, SrcArrayT* src19, SrcArrayT* src20,
00273           SrcArrayT* src21, MpoT& mpo)
00274 {
00275     typedef typename DstArrayT::StorType DstStorT;
00276     typedef typename DstArrayT::ArithType DstArithT;
00277     typedef typename SrcArrayT::StorType SrcStorT;
00278     typedef typename SrcArrayT::ArithType SrcArithT;
00279 
00280     int width = ArrayCW(dst);
00281     int height = ArrayCH(dst);
00282     for (int y=0 ; y<height ; y++)
00283     {
00284         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00285         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00286         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00287         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00288         SrcStorT* s5Ptr = ArrayCPB(src5, 0, y);
00289         SrcStorT* s6Ptr = ArrayCPB(src6, 0, y);
00290         SrcStorT* s7Ptr = ArrayCPB(src7, 0, y);
00291         SrcStorT* s8Ptr = ArrayCPB(src8, 0, y);
00292         SrcStorT* s9Ptr = ArrayCPB(src9, 0, y);
00293         SrcStorT* s10Ptr = ArrayCPB(src10, 0, y);
00294         SrcStorT* s11Ptr = ArrayCPB(src11, 0, y);
00295         SrcStorT* s12Ptr = ArrayCPB(src12, 0, y);
00296         SrcStorT* s13Ptr = ArrayCPB(src13, 0, y);
00297         SrcStorT* s14Ptr = ArrayCPB(src14, 0, y);
00298         SrcStorT* s15Ptr = ArrayCPB(src15, 0, y);
00299         SrcStorT* s16Ptr = ArrayCPB(src16, 0, y);
00300         SrcStorT* s17Ptr = ArrayCPB(src17, 0, y);
00301         SrcStorT* s18Ptr = ArrayCPB(src18, 0, y);
00302         SrcStorT* s19Ptr = ArrayCPB(src19, 0, y);
00303         SrcStorT* s20Ptr = ArrayCPB(src20, 0, y);
00304         SrcStorT* s21Ptr = ArrayCPB(src21, 0, y);
00305         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00306         for (int x=0 ; x<width ; x++)
00307         {
00308             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00309                                     PtrRead(s2Ptr, SrcArithT()),
00310                                     PtrRead(s3Ptr, SrcArithT()),
00311                                     PtrRead(s4Ptr, SrcArithT()),
00312                                     PtrRead(s5Ptr, SrcArithT()),
00313                                     PtrRead(s6Ptr, SrcArithT()),
00314                                     PtrRead(s7Ptr, SrcArithT()),
00315                                     PtrRead(s8Ptr, SrcArithT()),
00316                                     PtrRead(s9Ptr, SrcArithT()),
00317                                     PtrRead(s10Ptr, SrcArithT()),
00318                                     PtrRead(s11Ptr, SrcArithT()),
00319                                     PtrRead(s12Ptr, SrcArithT()),
00320                                     PtrRead(s13Ptr, SrcArithT()),
00321                                     PtrRead(s14Ptr, SrcArithT()),
00322                                     PtrRead(s15Ptr, SrcArithT()),
00323                                     PtrRead(s16Ptr, SrcArithT()),
00324                                     PtrRead(s17Ptr, SrcArithT()),
00325                                     PtrRead(s18Ptr, SrcArithT()),
00326                                     PtrRead(s19Ptr, SrcArithT()),
00327                                     PtrRead(s20Ptr, SrcArithT()),
00328                                     PtrRead(s21Ptr, SrcArithT())));
00329             dPtr += DstArrayT::ElemSize();
00330             s1Ptr += SrcArrayT::ElemSize();
00331             s2Ptr += SrcArrayT::ElemSize();
00332             s3Ptr += SrcArrayT::ElemSize();
00333             s4Ptr += SrcArrayT::ElemSize();
00334             s5Ptr += SrcArrayT::ElemSize();
00335             s6Ptr += SrcArrayT::ElemSize();
00336             s7Ptr += SrcArrayT::ElemSize();
00337             s8Ptr += SrcArrayT::ElemSize();
00338             s9Ptr += SrcArrayT::ElemSize();
00339             s10Ptr += SrcArrayT::ElemSize();
00340             s11Ptr += SrcArrayT::ElemSize();
00341             s12Ptr += SrcArrayT::ElemSize();
00342             s13Ptr += SrcArrayT::ElemSize();
00343             s14Ptr += SrcArrayT::ElemSize();
00344             s15Ptr += SrcArrayT::ElemSize();
00345             s16Ptr += SrcArrayT::ElemSize();
00346             s17Ptr += SrcArrayT::ElemSize();
00347             s18Ptr += SrcArrayT::ElemSize();
00348             s19Ptr += SrcArrayT::ElemSize();
00349             s20Ptr += SrcArrayT::ElemSize();
00350             s21Ptr += SrcArrayT::ElemSize();
00351         }
00352     }
00353 }
00354 
00355 template <class DstArrayT, class SrcArrayT, class MpoT>
00356 void
00357 FuncM22po(DstArrayT* dst, SrcArrayT* src1, SrcArrayT* src2, SrcArrayT* src3,
00358           SrcArrayT* src4, SrcArrayT* src5, SrcArrayT* src6, SrcArrayT* src7,
00359           SrcArrayT* src8, SrcArrayT* src9, SrcArrayT* src10, SrcArrayT* src11, 
00360           SrcArrayT* src12, SrcArrayT* src13, SrcArrayT* src14,
00361           SrcArrayT* src15, SrcArrayT* src16, SrcArrayT* src17,
00362           SrcArrayT* src18, SrcArrayT* src19, SrcArrayT* src20,
00363           SrcArrayT* src21, SrcArrayT* src22, MpoT& mpo)
00364 {
00365     typedef typename DstArrayT::StorType DstStorT;
00366     typedef typename DstArrayT::ArithType DstArithT;
00367     typedef typename SrcArrayT::StorType SrcStorT;
00368     typedef typename SrcArrayT::ArithType SrcArithT;
00369 
00370     int width = ArrayCW(dst);
00371     int height = ArrayCH(dst);
00372     for (int y=0 ; y<height ; y++)
00373     {
00374         SrcStorT* s1Ptr = ArrayCPB(src1, 0, y);
00375         SrcStorT* s2Ptr = ArrayCPB(src2, 0, y);
00376         SrcStorT* s3Ptr = ArrayCPB(src3, 0, y);
00377         SrcStorT* s4Ptr = ArrayCPB(src4, 0, y);
00378         SrcStorT* s5Ptr = ArrayCPB(src5, 0, y);
00379         SrcStorT* s6Ptr = ArrayCPB(src6, 0, y);
00380         SrcStorT* s7Ptr = ArrayCPB(src7, 0, y);
00381         SrcStorT* s8Ptr = ArrayCPB(src8, 0, y);
00382         SrcStorT* s9Ptr = ArrayCPB(src9, 0, y);
00383         SrcStorT* s10Ptr = ArrayCPB(src10, 0, y);
00384         SrcStorT* s11Ptr = ArrayCPB(src11, 0, y);
00385         SrcStorT* s12Ptr = ArrayCPB(src12, 0, y);
00386         SrcStorT* s13Ptr = ArrayCPB(src13, 0, y);
00387         SrcStorT* s14Ptr = ArrayCPB(src14, 0, y);
00388         SrcStorT* s15Ptr = ArrayCPB(src15, 0, y);
00389         SrcStorT* s16Ptr = ArrayCPB(src16, 0, y);
00390         SrcStorT* s17Ptr = ArrayCPB(src17, 0, y);
00391         SrcStorT* s18Ptr = ArrayCPB(src18, 0, y);
00392         SrcStorT* s19Ptr = ArrayCPB(src19, 0, y);
00393         SrcStorT* s20Ptr = ArrayCPB(src20, 0, y);
00394         SrcStorT* s21Ptr = ArrayCPB(src21, 0, y);
00395         SrcStorT* s22Ptr = ArrayCPB(src22, 0, y);
00396         DstStorT* dPtr = ArrayCPB(dst, 0, y);
00397         for (int x=0 ; x<width ; x++)
00398         {
00399             PtrWrite(dPtr, mpo.DoIt(PtrRead(s1Ptr, SrcArithT()),
00400                                     PtrRead(s2Ptr, SrcArithT()),
00401                                     PtrRead(s3Ptr, SrcArithT()),
00402                                     PtrRead(s4Ptr, SrcArithT()),
00403                                     PtrRead(s5Ptr, SrcArithT()),
00404                                     PtrRead(s6Ptr, SrcArithT()),
00405                                     PtrRead(s7Ptr, SrcArithT()),
00406                                     PtrRead(s8Ptr, SrcArithT()),
00407                                     PtrRead(s9Ptr, SrcArithT()),
00408                                     PtrRead(s10Ptr, SrcArithT()),
00409                                     PtrRead(s11Ptr, SrcArithT()),
00410                                     PtrRead(s12Ptr, SrcArithT()),
00411                                     PtrRead(s13Ptr, SrcArithT()),
00412                                     PtrRead(s14Ptr, SrcArithT()),
00413                                     PtrRead(s15Ptr, SrcArithT()),
00414                                     PtrRead(s16Ptr, SrcArithT()),
00415                                     PtrRead(s17Ptr, SrcArithT()),
00416                                     PtrRead(s18Ptr, SrcArithT()),
00417                                     PtrRead(s19Ptr, SrcArithT()),
00418                                     PtrRead(s20Ptr, SrcArithT()),
00419                                     PtrRead(s21Ptr, SrcArithT()),
00420                                     PtrRead(s22Ptr, SrcArithT())));
00421             dPtr += DstArrayT::ElemSize();
00422             s1Ptr += SrcArrayT::ElemSize();
00423             s2Ptr += SrcArrayT::ElemSize();
00424             s3Ptr += SrcArrayT::ElemSize();
00425             s4Ptr += SrcArrayT::ElemSize();
00426             s5Ptr += SrcArrayT::ElemSize();
00427             s6Ptr += SrcArrayT::ElemSize();
00428             s7Ptr += SrcArrayT::ElemSize();
00429             s8Ptr += SrcArrayT::ElemSize();
00430             s9Ptr += SrcArrayT::ElemSize();
00431             s10Ptr += SrcArrayT::ElemSize();
00432             s11Ptr += SrcArrayT::ElemSize();
00433             s12Ptr += SrcArrayT::ElemSize();
00434             s13Ptr += SrcArrayT::ElemSize();
00435             s14Ptr += SrcArrayT::ElemSize();
00436             s15Ptr += SrcArrayT::ElemSize();
00437             s16Ptr += SrcArrayT::ElemSize();
00438             s17Ptr += SrcArrayT::ElemSize();
00439             s18Ptr += SrcArrayT::ElemSize();
00440             s19Ptr += SrcArrayT::ElemSize();
00441             s20Ptr += SrcArrayT::ElemSize();
00442             s21Ptr += SrcArrayT::ElemSize();
00443             s22Ptr += SrcArrayT::ElemSize();
00444         }
00445     }
00446 }
00447 
00448 } // namespace Pattern
00449 } // namespace Array
00450 } // namespace Core
00451 } // namespace Impala
00452 
00453 #endif

Generated on Fri Mar 19 09:30:50 2010 for ImpalaSrc by  doxygen 1.5.1