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

Function af_moddims

src/api/c/moddims.cpp:42–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40} // namespace
41
42af_err af_moddims(af_array* out, const af_array in, const unsigned ndims,
43 const dim_t* const dims) {
44 try {
45 if (ndims == 0) {
46 *out = retain(in);
47 return AF_SUCCESS;
48 }
49 ARG_ASSERT(2, ndims >= 1);
50 ARG_ASSERT(3, dims != NULL);
51
52 af_array output = 0;
53 dim4 newDims(ndims, dims);
54 const ArrayInfo& info = getInfo(in);
55 dim_t in_elements = info.elements();
56 dim_t new_elements = newDims.elements();
57
58 DIM_ASSERT(1, in_elements == new_elements);
59
60 af_dtype type = info.getType();
61
62 switch (type) {
63 case f32: output = modDims<float>(in, newDims); break;
64 case c32: output = modDims<cfloat>(in, newDims); break;
65 case f64: output = modDims<double>(in, newDims); break;
66 case c64: output = modDims<cdouble>(in, newDims); break;
67 case b8: output = modDims<char>(in, newDims); break;
68 case s32: output = modDims<int>(in, newDims); break;
69 case u32: output = modDims<uint>(in, newDims); break;
70 case s8: output = modDims<schar>(in, newDims); break;
71 case u8: output = modDims<uchar>(in, newDims); break;
72 case s64: output = modDims<intl>(in, newDims); break;
73 case u64: output = modDims<uintl>(in, newDims); break;
74 case s16: output = modDims<short>(in, newDims); break;
75 case u16: output = modDims<ushort>(in, newDims); break;
76 case f16: output = modDims<half>(in, newDims); break;
77 default: TYPE_ERROR(1, type);
78 }
79 std::swap(*out, output);
80 }
81 CATCHALL
82
83 return AF_SUCCESS;
84}
85
86af_err af_flat(af_array* out, const af_array in) {
87 try {

Callers 15

medianFunction · 0.70
af_transposeFunction · 0.70
gray2rgbFunction · 0.70
af_assign_seqFunction · 0.70
af_assign_genFunction · 0.70
af_draw_plot3Function · 0.70
af_draw_scatter3Function · 0.70
moddimsTestFunction · 0.50
moddimsArgsTestFunction · 0.50
moddimsMismatchTestFunction · 0.50
MatMulCheckFunction · 0.50
iotaTestFunction · 0.50

Calls 4

retainFunction · 0.85
swapFunction · 0.85
elementsMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected