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

PatMInOutOp.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Array_Pattern_PatMInOutOp_h
00002 #define Impala_Core_Array_Pattern_PatMInOutOp_h
00003 
00004 #include "Core/Array/Pattern/FuncInOut.h"
00005 
00006 #ifdef PX_HORUS_USED
00007 #include "Core/Array/Pattern/PxArrayFunc.h"
00008 #include "Core/Array/Pattern/PxStateTrans.h"
00009 #endif
00010 
00011 namespace Impala
00012 {
00013 namespace Core
00014 {
00015 namespace Array
00016 {
00017 namespace Pattern
00018 {
00019 
00020 
00021 template<class ArrayT, class InOutOpT>
00022 inline void
00023 PatM2InOutOp(ArrayT* array1, ArrayT* array2, InOutOpT& inOutOp)
00024 {
00025 #ifdef PX_HORUS_USED
00026     if (!PxRunParallel()) {                         // run sequential
00027 #endif
00028         FuncM2InOutDispatch(array1, array2, inOutOp);
00029 
00030 #ifdef PX_HORUS_USED
00031     } else {                                        // run parallel
00032         PX_COUT << "NOTE: PatInOutOp NOT PARALLELIZED YET!"
00033                 << PX_ENDL;
00034         PxArrayForceNonDistributed(array);
00035         FuncInOutDispatch(array, pixOp);
00036     }
00037 #endif
00038 }
00039 
00040 
00041 template<class ArrayT, class InOutOpT>
00042 inline void
00043 PatM3InOutOp(ArrayT* array1, ArrayT* array2, ArrayT* array3, InOutOpT& inOutOp)
00044 {
00045 #ifdef PX_HORUS_USED
00046     if (!PxRunParallel()) {                         // run sequential
00047 #endif
00048         FuncM3InOutDispatch(array1, array2, array3, inOutOp);
00049 
00050 #ifdef PX_HORUS_USED
00051     } else {                                        // run parallel
00052         PX_COUT << "NOTE: PatInOutOp NOT PARALLELIZED YET!"
00053                 << PX_ENDL;
00054         PxArrayForceNonDistributed(array);
00055         FuncInOutDispatch(array, pixOp);
00056     }
00057 #endif
00058 }
00059 
00060 } // namespace Pattern
00061 } // namespace Array
00062 } // namespace Core
00063 } // namespace Impala
00064 
00065 #endif

Generated on Fri Mar 19 09:30:51 2010 for ImpalaSrc by  doxygen 1.5.1