MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / convolve2

Function convolve2

src/backend/cuda/convolve.cpp:58–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56
57template<typename T, typename accT>
58Array<T> convolve2(Array<T> const &signal, Array<accT> const &c_filter,
59 Array<accT> const &r_filter, const bool expand) {
60 const dim4 &cfDims = c_filter.dims();
61 const dim4 &rfDims = r_filter.dims();
62
63 const dim_t cfLen = cfDims.elements();
64 const dim_t rfLen = rfDims.elements();
65
66 const dim4 &sDims = signal.dims();
67 dim4 tDims = sDims;
68 dim4 oDims = sDims;
69
70 if (expand) {
71 tDims[0] += cfLen - 1;
72 oDims[0] += cfLen - 1;
73 oDims[1] += rfLen - 1;
74 }
75
76 Array<T> temp = createEmptyArray<T>(tDims);
77 Array<T> out = createEmptyArray<T>(oDims);
78
79 kernel::convolve2<T, accT>(temp, signal, c_filter, 0, expand);
80 kernel::convolve2<T, accT>(out, temp, r_filter, 1, expand);
81
82 return out;
83}
84
85#define INSTANTIATE(T, accT) \
86 template Array<T> convolve<T, accT>(Array<T> const &, Array<accT> const &, \

Callers

nothing calls this directly

Calls 2

dimsMethod · 0.45
elementsMethod · 0.45

Tested by

no test coverage detected