template<class DstArrayT, class SrcArrayT, class MpoT>
Definition at line 24 of file PatMPixOp.h. References FuncMpo(), Impala::Core::Array::PAR_PART, PxArrayForceNonDistributed(), PxArrayPD(), PxArrayPostStateTrans(), PxArrayPreStateTrans(), PxRunLazyParallel(), PxRunParallel(), and STRONG. 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:
|