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

Function af_convolve2_sep

src/api/c/convolve.cpp:258–334  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256}
257
258af_err af_convolve2_sep(af_array *out, const af_array col_filter,
259 const af_array row_filter, const af_array signal,
260 const af_conv_mode mode) {
261 try {
262 const ArrayInfo &sInfo = getInfo(signal);
263
264 const dim4 &sdims = sInfo.dims();
265
266 const af_dtype signalType = sInfo.getType();
267
268 ARG_ASSERT(1, (sdims.ndims() >= 2));
269
270 af_array output = 0;
271
272 const bool expand = mode == AF_CONV_EXPAND;
273
274 switch (signalType) {
275 case c32:
276 output = convolve2<cfloat, cfloat>(signal, col_filter,
277 row_filter, expand);
278 break;
279 case c64:
280 output = convolve2<cdouble, cdouble>(signal, col_filter,
281 row_filter, expand);
282 break;
283 case f32:
284 output = convolve2<float, float>(signal, col_filter, row_filter,
285 expand);
286 break;
287 case f64:
288 output = convolve2<double, double>(signal, col_filter,
289 row_filter, expand);
290 break;
291 case u32:
292 output = convolve2<uint, float>(signal, col_filter, row_filter,
293 expand);
294 break;
295 case s32:
296 output = convolve2<int, float>(signal, col_filter, row_filter,
297 expand);
298 break;
299 case u16:
300 output = convolve2<ushort, float>(signal, col_filter,
301 row_filter, expand);
302 break;
303 case s16:
304 output = convolve2<short, float>(signal, col_filter, row_filter,
305 expand);
306 break;
307 case u64:
308 output = convolve2<uintl, float>(signal, col_filter, row_filter,
309 expand);
310 break;
311 case s64:
312 output = convolve2<intl, float>(signal, col_filter, row_filter,
313 expand);
314 break;
315 case u8:

Callers 3

sepConvolveTestFunction · 0.50
TESTFunction · 0.50
convolveFunction · 0.50

Calls 4

swapFunction · 0.85
dimsMethod · 0.45
getTypeMethod · 0.45
ndimsMethod · 0.45

Tested by

no test coverage detected