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

template<class DstArrayT, class SrcArrayT, class KerArrayT, class PixOpT, class RedOpT>
static void Impala::Core::Array::Pattern::FuncGenConv2dSep_Line_XdirInc ( DstArrayT *  dst,
SrcArrayT *  src,
KerArrayT *  ker,
PixOpT &  pixOp,
RedOpT &  redOp,
int  y,
TagCallPointer  dummy 
) [static]

Line : X direction (inc), using pointer call.

Processes the entire line designated by y using pointer call.

This function does the same operation as FuncGenConv2dSep_Line_Xdir but the code of FuncGenConv2dSep_Pix_Xdir is inserted in the loop (instead of calling the function like FuncGenConv2dSep_Line_Xdir does).

Definition at line 170 of file FuncGenConv2dSep.h.

References ArrayCPB(), and ArrayCW().

Referenced by FuncGenConv2dSepDispatch_H().

00173 {
00174     typedef typename DstArrayT::StorType DstStorT;
00175     typedef typename SrcArrayT::StorType SrcStorT;
00176     typedef typename KerArrayT::StorType KerStorT;
00177 
00178     int width = ArrayCW(dst);
00179     int kerWidth = ArrayCW(ker);
00180     int kerBW = ArrayCW(ker) / 2;
00181     KerStorT buf[KerArrayT::ElemSize()];
00182     for (int x=0 ; x<width ; x++)
00183     {
00184         DstStorT* dPtr = ArrayCPB(dst, x, y);
00185         SrcStorT* sPtr = ArrayCPB(src, -kerBW + x, y);
00186         KerStorT* kPtr = ArrayCPB(ker, 0, 0);
00187         redOp.setNeutral(dPtr);
00188         for (int k=0; k<kerWidth; k++)
00189         {
00190             pixOp.DoIt(buf, sPtr, kPtr);
00191             sPtr += SrcArrayT::ElemSize();
00192             kPtr += KerArrayT::ElemSize();
00193             redOp.DoIt(dPtr, buf);
00194         }
00195     }
00196 }

Here is the call graph for this function:


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