| 747 | |
| 748 | template <typename T> |
| 749 | Status TensorsAreCloseImpl(const Tensor& x, const Tensor& y, double atol, |
| 750 | double rtol) { |
| 751 | auto Tx = x.flat<T>(); |
| 752 | auto Ty = y.flat<T>(); |
| 753 | for (int i = 0; i < Tx.size(); ++i) { |
| 754 | if (!IsClose(Tx(i), Ty(i), atol, rtol)) { |
| 755 | return errors::InvalidArgument( |
| 756 | absl::StrCat(i, "-th tensor element isn't close: ", Str(Tx(i)), |
| 757 | " vs. ", Str(Ty(i)), ". x = ", x.DebugString(), |
| 758 | "y = ", y.DebugString(), "atol = ", atol, |
| 759 | " rtol = ", rtol, " tol = ", atol + rtol * Abs(Tx(i)))); |
| 760 | } |
| 761 | } |
| 762 | return Status::OK(); |
| 763 | } |
| 764 | |
| 765 | template <typename T> |
| 766 | Status TensorsAreEqualImpl(const Tensor& x, const Tensor& y) { |
nothing calls this directly
no test coverage detected