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

Function dog

src/api/c/dog.cpp:31–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30template<typename T, typename accT>
31static af_array dog(const af_array& in, const int radius1, const int radius2) {
32 af_array g1, g2;
33 g1 = g2 = 0;
34 AF_CHECK(
35 af_gaussian_kernel(&g1, 2 * radius1 + 1, 2 * radius1 + 1, 0.0, 0.0));
36 AF_CHECK(
37 af_gaussian_kernel(&g2, 2 * radius2 + 1, 2 * radius2 + 1, 0.0, 0.0));
38
39 Array<accT> input = castArray<accT>(in);
40 dim4 iDims = input.dims();
41
42 AF_BATCH_KIND bkind = iDims[2] > 1 ? AF_BATCH_LHS : AF_BATCH_NONE;
43
44 Array<accT> smth1 =
45 convolve<accT, accT>(input, castArray<accT>(g1), bkind, 2, false);
46 Array<accT> smth2 =
47 convolve<accT, accT>(input, castArray<accT>(g2), bkind, 2, false);
48 Array<accT> retVal = arithOp<accT, af_sub_t>(smth1, smth2, iDims);
49
50 AF_CHECK(af_release_array(g1));
51 AF_CHECK(af_release_array(g2));
52
53 return getHandle<accT>(retVal);
54}
55
56af_err af_dog(af_array* out, const af_array in, const int radius1,
57 const int radius2) {

Callers 1

TYPED_TESTFunction · 0.50

Calls 3

af_gaussian_kernelFunction · 0.70
af_release_arrayFunction · 0.70
dimsMethod · 0.45

Tested by

no test coverage detected