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

template<class DstArrayT, class SrcArrayT, class MpoT>
void Impala::Core::Array::Pattern::FuncM21po ( DstArrayT *  dst,
SrcArrayT *  src1,
SrcArrayT *  src2,
SrcArrayT *  src3,
SrcArrayT *  src4,
SrcArrayT *  src5,
SrcArrayT *  src6,
SrcArrayT *  src7,
SrcArrayT *  src8,
SrcArrayT *  src9,
SrcArrayT *  src10,
SrcArrayT *  src11,
SrcArrayT *  src12,
SrcArrayT *  src13,
SrcArrayT *  src14,
SrcArrayT *  src15,
SrcArrayT *  src16,
SrcArrayT *  src17,
SrcArrayT *  src18,
SrcArrayT *  src19,
SrcArrayT *  src20,
SrcArrayT *  src21,
MpoT &  mpo 
)

Definition at line 267 of file FuncMpo.h.

References ArrayCH(), ArrayCPB(), ArrayCW(), PtrRead(), and PtrWrite().

Referenced by PatM21PixOp().

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 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:01:25 2010 for ImpalaSrc by  doxygen 1.5.1