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

Function af_diff2

src/api/c/diff.cpp:79–115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79af_err af_diff2(af_array* out, const af_array in, const int dim) {
80 try {
81 ARG_ASSERT(2, ((dim >= 0) && (dim < 4)));
82
83 const ArrayInfo& info = getInfo(in);
84 af_dtype type = info.getType();
85
86 af::dim4 in_dims = info.dims();
87 if (in_dims[dim] < 3) {
88 return af_create_handle(out, 0, nullptr, type);
89 }
90 DIM_ASSERT(1, in_dims[dim] >= 3);
91
92 af_array output;
93
94 switch (type) {
95 case f32: output = diff2<float>(in, dim); break;
96 case c32: output = diff2<cfloat>(in, dim); break;
97 case f64: output = diff2<double>(in, dim); break;
98 case c64: output = diff2<cdouble>(in, dim); break;
99 case b8: output = diff2<char>(in, dim); break;
100 case s32: output = diff2<int>(in, dim); break;
101 case u32: output = diff2<uint>(in, dim); break;
102 case s64: output = diff2<intl>(in, dim); break;
103 case u64: output = diff2<uintl>(in, dim); break;
104 case s16: output = diff2<short>(in, dim); break;
105 case u16: output = diff2<ushort>(in, dim); break;
106 case s8: output = diff2<schar>(in, dim); break;
107 case u8: output = diff2<uchar>(in, dim); break;
108 default: TYPE_ERROR(1, type);
109 }
110 std::swap(*out, output);
111 }
112 CATCHALL;
113
114 return AF_SUCCESS;
115}

Callers 3

diff2TestFunction · 0.85
diff2ArgsTestFunction · 0.85
diff2Function · 0.85

Calls 4

swapFunction · 0.85
af_create_handleFunction · 0.70
getTypeMethod · 0.45
dimsMethod · 0.45

Tested by

no test coverage detected