00001 #ifndef Impala_Core_Array_SetVal_h 00002 #define Impala_Core_Array_SetVal_h 00003 00004 #include "Core/Array/Pattern/PatUnaryPixOp.h" 00005 #include "Core/Array/Trait/UpoSetVal.h" 00006 #include "Core/Array/Trait/InOutSetVal.h" 00007 #include "Core/Array/Pattern/PatInOutOp.h" 00008 00009 namespace Impala 00010 { 00011 namespace Core 00012 { 00013 namespace Array 00014 { 00015 00016 00017 template<class DstArrayT, class SrcArrayT> 00018 inline void 00019 SetVal(DstArrayT*& dst, SrcArrayT* src, typename SrcArrayT::ArithType val) 00020 { 00021 Trait::UpoSetVal<DstArrayT, SrcArrayT> upo(val); 00022 Pattern::PatUnaryPixOp(dst, src, upo); 00023 } 00024 00025 template<class ArrayT> 00026 inline void 00027 SetVal(ArrayT* a, typename ArrayT::ArithType val) 00028 { 00029 Trait::InOutSetVal<ArrayT> setval(val); 00030 Pattern::PatInOutOp(a, setval); 00031 } 00032 00033 } // namespace Array 00034 } // namespace Core 00035 } // namespace Impala 00036 00037 #endif