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

Function af_eval_multiple

src/api/c/device.cpp:323–363  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

321}
322
323af_err af_eval_multiple(int num, af_array* arrays) {
324 try {
325 const ArrayInfo& info = getInfo(arrays[0]);
326 af_dtype type = info.getType();
327 const dim4& dims = info.dims();
328
329 for (int i = 1; i < num; i++) {
330 const ArrayInfo& currInfo = getInfo(arrays[i]);
331
332 // FIXME: This needs to be removed when new functionality is added
333 if (type != currInfo.getType()) {
334 AF_ERROR("All arrays must be of same type", AF_ERR_TYPE);
335 }
336
337 if (dims != currInfo.dims()) {
338 AF_ERROR("All arrays must be of same size", AF_ERR_SIZE);
339 }
340 }
341
342 switch (type) {
343 case f32: evalMultiple<float>(num, arrays); break;
344 case f64: evalMultiple<double>(num, arrays); break;
345 case c32: evalMultiple<cfloat>(num, arrays); break;
346 case c64: evalMultiple<cdouble>(num, arrays); break;
347 case s32: evalMultiple<int>(num, arrays); break;
348 case u32: evalMultiple<uint>(num, arrays); break;
349 case s8: evalMultiple<schar>(num, arrays); break;
350 case u8: evalMultiple<uchar>(num, arrays); break;
351 case b8: evalMultiple<char>(num, arrays); break;
352 case s64: evalMultiple<intl>(num, arrays); break;
353 case u64: evalMultiple<uintl>(num, arrays); break;
354 case s16: evalMultiple<short>(num, arrays); break;
355 case u16: evalMultiple<ushort>(num, arrays); break;
356 case f16: evalMultiple<half>(num, arrays); break;
357 default: TYPE_ERROR(0, type);
358 }
359 }
360 CATCHALL;
361
362 return AF_SUCCESS;
363}
364
365af_err af_set_manual_eval_flag(bool flag) {
366 try {

Callers 1

evalFunction · 0.50

Calls 2

getTypeMethod · 0.45
dimsMethod · 0.45

Tested by

no test coverage detected