| 141 | } |
| 142 | |
| 143 | af_err af_print_array(af_array arr) { |
| 144 | try { |
| 145 | const ArrayInfo &info = |
| 146 | getInfo(arr, false); // Don't assert sparse/dense |
| 147 | af_dtype type = info.getType(); |
| 148 | |
| 149 | if (info.isSparse()) { |
| 150 | switch (type) { |
| 151 | case f32: printSparse<float>(NULL, arr, 4); break; |
| 152 | case f64: printSparse<double>(NULL, arr, 4); break; |
| 153 | case c32: printSparse<cfloat>(NULL, arr, 4); break; |
| 154 | case c64: printSparse<cdouble>(NULL, arr, 4); break; |
| 155 | default: TYPE_ERROR(0, type); |
| 156 | } |
| 157 | } else { |
| 158 | switch (type) { |
| 159 | case f32: print<float>(NULL, arr, 4); break; |
| 160 | case c32: print<cfloat>(NULL, arr, 4); break; |
| 161 | case f64: print<double>(NULL, arr, 4); break; |
| 162 | case c64: print<cdouble>(NULL, arr, 4); break; |
| 163 | case b8: print<char>(NULL, arr, 4); break; |
| 164 | case s32: print<int>(NULL, arr, 4); break; |
| 165 | case u32: print<unsigned>(NULL, arr, 4); break; |
| 166 | case s8: print<schar>(NULL, arr, 4); break; |
| 167 | case u8: print<uchar>(NULL, arr, 4); break; |
| 168 | case s64: print<intl>(NULL, arr, 4); break; |
| 169 | case u64: print<uintl>(NULL, arr, 4); break; |
| 170 | case s16: print<short>(NULL, arr, 4); break; |
| 171 | case u16: print<ushort>(NULL, arr, 4); break; |
| 172 | case f16: print<half>(NULL, arr, 4); break; |
| 173 | default: TYPE_ERROR(1, type); |
| 174 | } |
| 175 | } |
| 176 | } |
| 177 | CATCHALL; |
| 178 | return AF_SUCCESS; |
| 179 | } |
| 180 | |
| 181 | af_err af_print_array_gen(const char *exp, const af_array arr, |
| 182 | const int precision) { |