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

Function af_device_array

src/api/c/memory.cpp:54–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52using std::swap;
53
54af_err af_device_array(af_array *arr, void *data, const unsigned ndims,
55 const dim_t *const dims, const af_dtype type) {
56 try {
57 AF_CHECK(af_init());
58
59 af_array res;
60
61 DIM_ASSERT(1, ndims >= 1);
62 dim4 d(1, 1, 1, 1);
63 for (unsigned i = 0; i < ndims; i++) {
64 d[i] = dims[i];
65 DIM_ASSERT(3, dims[i] >= 1);
66 }
67
68 switch (type) {
69 case f32:
70 res = getHandle(createDeviceDataArray<float>(d, data));
71 break;
72 case f64:
73 res = getHandle(createDeviceDataArray<double>(d, data));
74 break;
75 case c32:
76 res = getHandle(createDeviceDataArray<cfloat>(d, data));
77 break;
78 case c64:
79 res = getHandle(createDeviceDataArray<cdouble>(d, data));
80 break;
81 case s32:
82 res = getHandle(createDeviceDataArray<int>(d, data));
83 break;
84 case u32:
85 res = getHandle(createDeviceDataArray<uint>(d, data));
86 break;
87 case s64:
88 res = getHandle(createDeviceDataArray<intl>(d, data));
89 break;
90 case u64:
91 res = getHandle(createDeviceDataArray<uintl>(d, data));
92 break;
93 case s16:
94 res = getHandle(createDeviceDataArray<short>(d, data));
95 break;
96 case u16:
97 res = getHandle(createDeviceDataArray<ushort>(d, data));
98 break;
99 case s8:
100 res = getHandle(createDeviceDataArray<schar>(d, data));
101 break;
102 case u8:
103 res = getHandle(createDeviceDataArray<uchar>(d, data));
104 break;
105 case b8:
106 res = getHandle(createDeviceDataArray<char>(d, data));
107 break;
108 case f16:
109 res = getHandle(createDeviceDataArray<half>(d, data));
110 break;
111 default: TYPE_ERROR(4, type);

Callers 3

initDataArrayFunction · 0.50
arrayFunction · 0.50
arrayFunction · 0.50

Calls 3

swapFunction · 0.85
af_initFunction · 0.70
getHandleFunction · 0.70

Tested by

no test coverage detected