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

Function af_eval

src/api/c/device.cpp:273–309  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271}
272
273af_err af_eval(af_array arr) {
274 try {
275 const ArrayInfo& info = getInfo(arr, false);
276 af_dtype type = info.getType();
277
278 if (info.isSparse()) {
279 switch (type) {
280 case f32: sparseEval<float>(arr); break;
281 case f64: sparseEval<double>(arr); break;
282 case c32: sparseEval<cfloat>(arr); break;
283 case c64: sparseEval<cdouble>(arr); break;
284 default: TYPE_ERROR(0, type);
285 }
286 } else {
287 switch (type) {
288 case f32: eval<float>(arr); break;
289 case f64: eval<double>(arr); break;
290 case c32: eval<cfloat>(arr); break;
291 case c64: eval<cdouble>(arr); break;
292 case s32: eval<int>(arr); break;
293 case u32: eval<uint>(arr); break;
294 case s8: eval<schar>(arr); break;
295 case u8: eval<uchar>(arr); break;
296 case b8: eval<char>(arr); break;
297 case s64: eval<intl>(arr); break;
298 case u64: eval<uintl>(arr); break;
299 case s16: eval<short>(arr); break;
300 case u16: eval<ushort>(arr); break;
301 case f16: eval<half>(arr); break;
302 default: TYPE_ERROR(0, type);
303 }
304 }
305 }
306 CATCHALL;
307
308 return AF_SUCCESS;
309}
310
311template<typename T>
312static inline void evalMultiple(int num, af_array* arrayPtrs) {

Callers 4

dotAllFunction · 0.70
TESTFunction · 0.50
toTempFormatFunction · 0.50
evalMethod · 0.50

Calls 2

isSparseMethod · 0.80
getTypeMethod · 0.45

Tested by 1

toTempFormatFunction · 0.40