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

template<class DstArrayT, class SrcArrayT, class NgbT>
void Impala::Core::Array::Pattern::FuncNgbOp2d_Row ( DstArrayT *  dst,
SrcArrayT *  src,
NgbT &  ngb,
int  y,
TagNPhase  dummy1,
TagLoop  dummy2 
) [inline]

Row : phase N, loop.

Definition at line 207 of file FuncNgbOp2d.h.

References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2d_Pix_P1Loop(), PtrRead(), and PtrWrite().

00209 {
00210     typedef typename DstArrayT::StorType DstStorT;
00211     typedef typename DstArrayT::ArithType DstArithT;
00212     typedef typename SrcArrayT::StorType SrcStorT;
00213     typedef typename SrcArrayT::ArithType SrcArithT;
00214 
00215     int ngbWidth = ngb.Width();
00216     int ngbHeight = ngb.Height();
00217     int width = ArrayCW(dst);
00218     DstStorT* dPtr = ArrayCPB(dst, 0, y);
00219     SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2);
00220     SrcStorT* cenPtr = ArrayCPB(src, 0, y);
00221     int srcIncX = ArrayInc(src, 1, 0);
00222     int srcIncY = ArrayInc(src, -ngbWidth, 1);
00223     for (int x=0 ; x<width ; x++)
00224     {
00225         int phase = 1;
00226         do {
00227             ngb.Init(phase, x, y, PtrRead(cenPtr, SrcArithT()));
00228             FuncNgbOp2d_Pix_P1Loop(sPtr, ngb, ngbWidth, ngbHeight, srcIncX,
00229                                    srcIncY, SrcArithT());
00230             ngb.Done(phase);
00231         } while (ngb.HasNextPhase(phase++));
00232         PtrWrite(dPtr, ngb.Result());
00233         dPtr += DstArrayT::ElemSize();
00234         sPtr += SrcArrayT::ElemSize();
00235         cenPtr += SrcArrayT::ElemSize();
00236     }
00237 }

Here is the call graph for this function:


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