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

InvNw.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Array_InvNw_h
00002 #define Impala_Core_Array_InvNw_h
00003 
00004 #include <vector>
00005 #include "Core/Array/Pattern/PatM9PixOp.h"
00006 #include "Core/Array/Trait/M9poNw.h"
00007 
00008 namespace Impala
00009 {
00010 namespace Core
00011 {
00012 namespace Array
00013 {
00014 
00015 
00016 // s1 - s9 should contain E, El, Ell, Ex, Elx, Ellx, Ey, Ely, Elly
00017 template<class DstArrayT, class SrcArrayT>
00018 inline void
00019 InvNw(DstArrayT*& dst, SrcArrayT* s1, SrcArrayT* s2, SrcArrayT* s3,
00020       SrcArrayT* s4, SrcArrayT* s5, SrcArrayT* s6, SrcArrayT* s7,
00021       SrcArrayT* s8, SrcArrayT* s9, typename SrcArrayT::ArithType scale)
00022 {
00023     Trait::M9poNw<DstArrayT, SrcArrayT> mpo(scale);
00024     Pattern::PatM9PixOp(dst, s1, s2, s3, s4, s5, s6, s7, s8, s9, mpo);
00025 }
00026 
00027 
00028 // relies on eList to contain E, Ex, Ey, El, Elx, Ely, Ell, Ellx, Elly
00029 template<class ArrayT>
00030 inline void
00031 InvNw(ArrayT*& dst, const std::vector<ArrayT*>& eList,
00032       typename ArrayT::ArithType scale)
00033 {
00034     InvNw(dst,
00035           eList[0], eList[3], eList[6],
00036           eList[1], eList[4], eList[7],
00037           eList[2], eList[5], eList[8], scale);
00038 }
00039 
00040 
00041 // s1 - s9 should contain E, El, Ell, Ex, Elx, Ellx, Ey, Ely, Elly
00042 template<class DstArrayT, class SrcArrayT>
00043 inline void
00044 InvNw_log(DstArrayT*& dst, SrcArrayT* s1, SrcArrayT* s2, SrcArrayT* s3,
00045           SrcArrayT* s4, SrcArrayT* s5, SrcArrayT* s6, SrcArrayT* s7,
00046           SrcArrayT* s8, SrcArrayT* s9, typename SrcArrayT::ArithType scale)
00047 {
00048     Trait::M9poNw_log<DstArrayT, SrcArrayT> mpo(scale);
00049     Pattern::PatM9PixOp(dst, s1, s2, s3, s4, s5, s6, s7, s8, s9, mpo);
00050 }
00051 
00052 
00053 // relies on eList to contain E, Ex, Ey, El, Elx, Ely, Ell, Ellx, Elly
00054 template<class ArrayT>
00055 inline void
00056 InvNw_log(ArrayT*& dst, const std::vector<ArrayT*>& eList,
00057           typename ArrayT::ArithType scale)
00058 {
00059     InvNw_log(dst,
00060               eList[0], eList[3], eList[6],
00061               eList[1], eList[4], eList[7],
00062               eList[2], eList[5], eList[8], scale);
00063 }
00064 
00065 } // namespace Array
00066 } // namespace Core
00067 } // namespace Impala
00068 
00069 #endif

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