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

template<class DstArrayT, class SrcArrayT, class KerArrayT, class PixOpT, class RedOpT>
void Impala::Core::Array::Pattern::PatRecGenConv2d ( DstArrayT *&  dst,
SrcArrayT *  src,
KerArrayT *  ker,
PixOpT &  pixOp,
RedOpT &  redOp 
) [inline]

Definition at line 26 of file PatRecGenConv2d.h.

References ArrayCH(), ArrayCW(), BORDERPROPAGATE, Impala::Core::Array::CheckBorderSize(), FuncRecGenConv2dDispatch(), PatSet(), PatSetBorder(), PX_COUT, PX_ENDL, PxArrayForceNonDistributed(), and PxRunParallel().

Referenced by Impala::Samples::Talk::DoTalkRecGenConv2d().

00028 {
00029     int numX = ArrayCW(ker) / 2;
00030     int numY = ArrayCH(ker) / 2;
00031     SrcArrayT* checkedSrc = CheckBorderSize(src, numX, numY);
00032 
00033     if (checkedSrc != src)
00034     {
00035         if ((dst != 0) && (dst != src)) 
00036             delete dst;
00037         dst = checkedSrc;
00038     }
00039     else
00040     {
00041         if (dst != src)
00042             PatSet(dst, src);
00043     }
00044 
00045 #ifdef PX_HORUS_USED
00046     if (!PxRunParallel()) {                         // run sequential
00047 #endif
00048         PatSetBorder(dst, numX, numY, BORDERPROPAGATE);
00049         FuncRecGenConv2dDispatch(dst, ker, pixOp, redOp);
00050 
00051 #ifdef PX_HORUS_USED
00052     } else {                                        // run parallel
00053         PX_COUT << "NOTE: PatRecGenConv2d NOT PARALLELIZED YET!"
00054                 << PX_ENDL;
00055         PxArrayForceNonDistributed(dst);
00056         PatSetBorder(dst, numX, numY, BORDERPROPAGATE);
00057         FuncRecGenConv2dDispatch(dst, ker, pixOp, redOp);
00058     }
00059 #endif
00060 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:02:17 2010 for ImpalaSrc by  doxygen 1.5.1