| 163 | } |
| 164 | |
| 165 | af_err af_get_raw_ptr(void **ptr, const af_array arr) { |
| 166 | try { |
| 167 | void *res = NULL; |
| 168 | |
| 169 | af_dtype ty = getInfo(arr).getType(); |
| 170 | |
| 171 | switch (ty) { |
| 172 | case f32: res = getRawPtr(getArray<float>(arr)); break; |
| 173 | case f64: res = getRawPtr(getArray<double>(arr)); break; |
| 174 | case c32: res = getRawPtr(getArray<cfloat>(arr)); break; |
| 175 | case c64: res = getRawPtr(getArray<cdouble>(arr)); break; |
| 176 | case u32: res = getRawPtr(getArray<uint>(arr)); break; |
| 177 | case s32: res = getRawPtr(getArray<int>(arr)); break; |
| 178 | case u64: res = getRawPtr(getArray<uintl>(arr)); break; |
| 179 | case s64: res = getRawPtr(getArray<intl>(arr)); break; |
| 180 | case u16: res = getRawPtr(getArray<ushort>(arr)); break; |
| 181 | case s16: res = getRawPtr(getArray<short>(arr)); break; |
| 182 | case b8: res = getRawPtr(getArray<char>(arr)); break; |
| 183 | case u8: res = getRawPtr(getArray<uchar>(arr)); break; |
| 184 | case s8: res = getRawPtr(getArray<schar>(arr)); break; |
| 185 | case f16: res = getRawPtr(getArray<half>(arr)); break; |
| 186 | default: TYPE_ERROR(6, ty); |
| 187 | } |
| 188 | |
| 189 | std::swap(*ptr, res); |
| 190 | } |
| 191 | CATCHALL; |
| 192 | return AF_SUCCESS; |
| 193 | } |
| 194 | |
| 195 | af_err af_is_linear(bool *result, const af_array arr) { |
| 196 | try { |