| 284 | } |
| 285 | |
| 286 | af_err af_write_array(af_array arr, const void *data, const size_t bytes, |
| 287 | af_source src) { |
| 288 | if (bytes == 0) { return AF_SUCCESS; } |
| 289 | try { |
| 290 | af_dtype type = getInfo(arr).getType(); |
| 291 | ARG_ASSERT(1, (data != nullptr)); |
| 292 | ARG_ASSERT(3, (src == afHost || src == afDevice)); |
| 293 | // FIXME ArrayInfo class no bytes method, hence commented |
| 294 | // DIM_ASSERT(2, bytes <= getInfo(arr).bytes()); |
| 295 | |
| 296 | switch (type) { |
| 297 | case f32: |
| 298 | write_array(arr, static_cast<const float *>(data), bytes, src); |
| 299 | break; |
| 300 | case c32: |
| 301 | write_array(arr, static_cast<const cfloat *>(data), bytes, src); |
| 302 | break; |
| 303 | case f64: |
| 304 | write_array(arr, static_cast<const double *>(data), bytes, src); |
| 305 | break; |
| 306 | case c64: |
| 307 | write_array(arr, static_cast<const cdouble *>(data), bytes, |
| 308 | src); |
| 309 | break; |
| 310 | case b8: |
| 311 | write_array(arr, static_cast<const char *>(data), bytes, src); |
| 312 | break; |
| 313 | case s32: |
| 314 | write_array(arr, static_cast<const int *>(data), bytes, src); |
| 315 | break; |
| 316 | case u32: |
| 317 | write_array(arr, static_cast<const uint *>(data), bytes, src); |
| 318 | break; |
| 319 | case s8: |
| 320 | write_array(arr, static_cast<const schar *>(data), bytes, src); |
| 321 | break; |
| 322 | case u8: |
| 323 | write_array(arr, static_cast<const uchar *>(data), bytes, src); |
| 324 | break; |
| 325 | case s64: |
| 326 | write_array(arr, static_cast<const intl *>(data), bytes, src); |
| 327 | break; |
| 328 | case u64: |
| 329 | write_array(arr, static_cast<const uintl *>(data), bytes, src); |
| 330 | break; |
| 331 | case s16: |
| 332 | write_array(arr, static_cast<const short *>(data), bytes, src); |
| 333 | break; |
| 334 | case u16: |
| 335 | write_array(arr, static_cast<const ushort *>(data), bytes, src); |
| 336 | break; |
| 337 | case f16: |
| 338 | write_array(arr, static_cast<const half *>(data), bytes, src); |
| 339 | break; |
| 340 | default: TYPE_ERROR(4, type); |
| 341 | } |
| 342 | } |
| 343 | CATCHALL |
no test coverage detected