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

template<class DstArrayT, class SrcArrayT, class MpoT>
void Impala::Core::Array::Pattern::PatMPixOp ( DstArrayT *&  dst,
const std::vector< SrcArrayT * > &  srcList,
MpoT &  mpo 
) [inline]

Definition at line 24 of file PatMPixOp.h.

References FuncMpo(), Impala::Core::Array::PAR_PART, PxArrayForceNonDistributed(), PxArrayPD(), PxArrayPostStateTrans(), PxArrayPreStateTrans(), PxRunLazyParallel(), PxRunParallel(), and STRONG.

Referenced by Impala::Core::Training::PrecomputeKernelMatrix().

00027 {
00028     int length = srcList.size();
00029     if (length < 1)
00030         return;
00031     if (dst == 0)
00032         dst = ArrayClone<DstArrayT>(srcList[0]);
00033 
00034 #ifdef PX_HORUS_USED
00035     if (!PxRunParallel()) {                         // run sequential
00036 #endif
00037         FuncMpo(dst, srcList, mpo);
00038 
00039 #ifdef PX_HORUS_USED
00040     } else {                                        // run parallel
00041         int i;
00042         for(i=0 ; i<length ; ++i)
00043             PxArrayPreStateTrans(srcList[i],  PAR_PART, STRONG);
00044 
00045         std::vector<SrcArrayT*> pdList;
00046         pdList.resize(length);
00047         for(i=0 ; i<length ; ++i)
00048             pdList[i] = PxArrayPD(srcList[i]);
00049 
00050         FuncMpo(PxArrayPD(dst), pdList, mpo);
00051         PxArrayPostStateTrans(dst);
00052 
00053         if (!PxRunLazyParallel()) {
00054             for(i=0 ; i<length ; ++i)
00055                 PxArrayForceNonDistributed(srcList[i]);
00056             PxArrayForceNonDistributed(dst);
00057         }
00058     }
00059 #endif
00060 }

Here is the call graph for this function:


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