| 13 | float exec_forward(const T* src1, const T* src2, const size_t nr_elem) { |
| 14 | float maxerr = 0.f; |
| 15 | rep(i, nr_elem) { |
| 16 | float x = src1[i]; |
| 17 | float y = src2[i]; |
| 18 | float diff = std::isfinite(x) && std::isfinite(y) |
| 19 | ? fabs(x - y) / fmax(fmin(fabs(x), fabs(y)), 1) |
| 20 | : INFINITY; |
| 21 | maxerr = std::max(diff, maxerr); |
| 22 | } |
| 23 | |
| 24 | return maxerr; |
| 25 | } |