| 121 | } |
| 122 | |
| 123 | double cpu_norm_inf(af::array &value) { |
| 124 | double norm_inf; |
| 125 | af::dim4 dims = value.dims(); |
| 126 | if (value.type() == c32 || value.type() == c64) { |
| 127 | vector<complex<double> > values(value.elements()); |
| 128 | value.as(c64).host(values.data()); |
| 129 | norm_inf = cpu_norm_inf_impl<complex<double> >(dims, values); |
| 130 | } else { |
| 131 | vector<double> values(value.elements()); |
| 132 | value.as(f64).host(values.data()); |
| 133 | norm_inf = cpu_norm_inf_impl<double>(dims, values); |
| 134 | } |
| 135 | return norm_inf; |
| 136 | } |
| 137 | |
| 138 | using norm_params = std::tuple<af::dim4, af::dtype>; |
| 139 | class Norm |