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

PatM22PixOp.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Array_Pattern_PatM22PixOp_h
00002 #define Impala_Core_Array_Pattern_PatM22PixOp_h
00003 
00004 #include "Core/Array/Pattern/FuncMpo.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 DstArrayT, class SrcArrayT, class MpoT>
00022 inline void
00023 PatM22PixOp(DstArrayT*& dst, SrcArrayT* s1,  SrcArrayT* s2,
00024             SrcArrayT* s3,  SrcArrayT* s4,  SrcArrayT* s5,
00025             SrcArrayT* s6,  SrcArrayT* s7,  SrcArrayT* s8,
00026             SrcArrayT* s9,  SrcArrayT* s10, SrcArrayT* s11,
00027             SrcArrayT* s12, SrcArrayT* s13, SrcArrayT* s14,
00028             SrcArrayT* s15, SrcArrayT* s16, SrcArrayT* s17,
00029             SrcArrayT* s18, SrcArrayT* s19, SrcArrayT* s20,
00030             SrcArrayT* s21, SrcArrayT* s22, MpoT& mpo)
00031 {
00032     if (dst == 0)
00033         dst = ArrayClone<DstArrayT>(s1);
00034 
00035 #ifdef PX_HORUS_USED
00036     if (!PxRunParallel()) {                         // run sequential
00037 #endif
00038         FuncM22po(dst, s1,
00039                   s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13,
00040                   s14, s15, s16, s17, s18, s19, s20, s21, s22, mpo);
00041 
00042 #ifdef PX_HORUS_USED
00043     } else {                                        // run parallel
00044         PxArrayPreStateTrans(s1,  PAR_PART, STRONG);
00045         PxArrayPreStateTrans(s2,  PAR_PART, STRONG);
00046         PxArrayPreStateTrans(s3,  PAR_PART, STRONG);
00047         PxArrayPreStateTrans(s4,  PAR_PART, STRONG);
00048         PxArrayPreStateTrans(s5,  PAR_PART, STRONG);
00049         PxArrayPreStateTrans(s6,  PAR_PART, STRONG);
00050         PxArrayPreStateTrans(s7,  PAR_PART, STRONG);
00051         PxArrayPreStateTrans(s8,  PAR_PART, STRONG);
00052         PxArrayPreStateTrans(s9,  PAR_PART, STRONG);
00053         PxArrayPreStateTrans(s10, PAR_PART, STRONG);
00054         PxArrayPreStateTrans(s11, PAR_PART, STRONG);
00055         PxArrayPreStateTrans(s12, PAR_PART, STRONG);
00056         PxArrayPreStateTrans(s13, PAR_PART, STRONG);
00057         PxArrayPreStateTrans(s14, PAR_PART, STRONG);
00058         PxArrayPreStateTrans(s15, PAR_PART, STRONG);
00059         PxArrayPreStateTrans(s16, PAR_PART, STRONG);
00060         PxArrayPreStateTrans(s17, PAR_PART, STRONG);
00061         PxArrayPreStateTrans(s18, PAR_PART, STRONG);
00062         PxArrayPreStateTrans(s19, PAR_PART, STRONG);
00063         PxArrayPreStateTrans(s20, PAR_PART, STRONG);
00064         PxArrayPreStateTrans(s21, PAR_PART, STRONG);
00065         PxArrayPreStateTrans(s22, PAR_PART, STRONG);
00066         PxArrayPreStateTrans(dst, PAR_PART, WEAK);
00067         FuncM22po(PxArrayPD(dst),PxArrayPD(s1),
00068                   PxArrayPD(s2), PxArrayPD(s3), PxArrayPD(s4),
00069                   PxArrayPD(s5), PxArrayPD(s6), PxArrayPD(s7),
00070                   PxArrayPD(s8), PxArrayPD(s9), PxArrayPD(s10),
00071                   PxArrayPD(s11),PxArrayPD(s12),PxArrayPD(s13),
00072                   PxArrayPD(s14),PxArrayPD(s15),PxArrayPD(s16),
00073                   PxArrayPD(s17),PxArrayPD(s18),PxArrayPD(s19),
00074                   PxArrayPD(s20),PxArrayPD(s21),PxArrayPD(s22), mpo);
00075         PxArrayPostStateTrans(dst);
00076 
00077         if (!PxRunLazyParallel()) {
00078             PxArrayForceNonDistributed(s1);
00079             PxArrayForceNonDistributed(s2);
00080             PxArrayForceNonDistributed(s3);
00081             PxArrayForceNonDistributed(s4);
00082             PxArrayForceNonDistributed(s5);
00083             PxArrayForceNonDistributed(s6);
00084             PxArrayForceNonDistributed(s7);
00085             PxArrayForceNonDistributed(s8);
00086             PxArrayForceNonDistributed(s9);
00087             PxArrayForceNonDistributed(s10);
00088             PxArrayForceNonDistributed(s11);
00089             PxArrayForceNonDistributed(s12);
00090             PxArrayForceNonDistributed(s13);
00091             PxArrayForceNonDistributed(s14);
00092             PxArrayForceNonDistributed(s15);
00093             PxArrayForceNonDistributed(s16);
00094             PxArrayForceNonDistributed(s17);
00095             PxArrayForceNonDistributed(s18);
00096             PxArrayForceNonDistributed(s19);
00097             PxArrayForceNonDistributed(s20);
00098             PxArrayForceNonDistributed(s21);
00099             PxArrayForceNonDistributed(s22);
00100             PxArrayForceNonDistributed(dst);
00101         }
00102     }
00103 #endif
00104 }
00105 
00106 } // namespace Pattern
00107 } // namespace Array
00108 } // namespace Core
00109 } // namespace Impala
00110 
00111 #endif

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