template<class ArrayT, class Window, class KerArrayT>
Definition at line 19 of file SeqConvKernel.h. References Impala::Core::Array::Add(), Impala::Core::Array::Element::E1Cast(), ILOG_ERROR, ILOG_VAR, and Impala::Core::Array::MulVal(). Referenced by Impala::Application::Src::WindowSrc::HandleNewFrame(). 00020 { 00021 typedef typename ArrayT::ArithType ArithT; 00022 typedef typename KerArrayT::ArithType KerArithT; 00023 typedef typename KerArrayT::StorType KerStorT; 00024 00025 using Array::MulVal; 00026 using Array::Element::E1Cast; 00027 00028 ILOG_VAR(Impala.Core.Stream.SeqConvKernel); 00029 if (src->WindowSize() != ker->CW()) 00030 { 00031 ILOG_ERROR("window size does not match kernel size"); 00032 return; 00033 } 00034 00035 KerStorT* filter = ker->CPB(); 00036 MulVal(dst, src->DataArrayWindow(0), E1Cast(filter[0], ArithT())); 00037 int filterSize = ker->CW(); 00038 ArrayT* tmp = 0; 00039 for (int i=1 ; i<filterSize ; i++) 00040 { 00041 MulVal(tmp, src->DataArrayWindow(i), E1Cast(filter[i], ArithT())); 00042 Array::Add(dst, dst, tmp); 00043 } 00044 delete tmp; 00045 }
Here is the call graph for this function:
|