diff options
author | Jeremy Johnson <jeremy.johnson@arm.com> | 2024-01-23 15:02:34 +0000 |
---|---|---|
committer | Eric Kunze <eric.kunze@arm.com> | 2024-01-24 21:00:31 +0000 |
commit | 1f75232dab1b50162ebc420e6e076edeb8a58341 (patch) | |
tree | ef7431e6b9e0105eb16ef0cf16d06c125cadb150 /reference_model/src/verify | |
parent | bef907a0a1161df3cfc51c6401ffa061e10f430b (diff) | |
download | reference_model-1f75232dab1b50162ebc420e6e076edeb8a58341.tar.gz |
Fix and improve verify ABS_ERROR reporting
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Change-Id: Id0030fbd1b3b7a526dc17e947a433b4957dbf5e4
Diffstat (limited to 'reference_model/src/verify')
-rw-r--r-- | reference_model/src/verify/verify_abs_error.cc | 2 | ||||
-rw-r--r-- | reference_model/src/verify/verify_utils.cc | 9 |
2 files changed, 5 insertions, 6 deletions
diff --git a/reference_model/src/verify/verify_abs_error.cc b/reference_model/src/verify/verify_abs_error.cc index 25ecae4..5005dcf 100644 --- a/reference_model/src/verify/verify_abs_error.cc +++ b/reference_model/src/verify/verify_abs_error.cc @@ -47,7 +47,7 @@ bool validateData(const double* ref, bool valid = tosaCheckFloatBound(imp[i], ref[i], errBound); if (!valid) { - auto pos = indexToPosition(T, shape); + auto pos = indexToPosition(i, shape); WARNING("[Verifier][AE] Location %s", positionToString(pos).c_str()); return false; } diff --git a/reference_model/src/verify/verify_utils.cc b/reference_model/src/verify/verify_utils.cc index 6f53c63..618724b 100644 --- a/reference_model/src/verify/verify_utils.cc +++ b/reference_model/src/verify/verify_utils.cc @@ -143,6 +143,7 @@ std::vector<int32_t> indexToPosition(int64_t index, const std::vector<int32_t>& pos.insert(pos.begin(), index % *d); index /= *d; } + ASSERT_MSG(index == 0, "index too large for given shape") return pos; } @@ -225,8 +226,7 @@ bool tosaCheckFloatBound(OutType testValue, double referenceValue, double errorB { return true; } - WARNING("[Verifier][Bound] Non-matching NaN values - ref (%10f) versus test (%10f).", referenceValue, - testValue); + WARNING("[Verifier][Bound] Non-matching NaN values - ref (%g) versus test (%g).", referenceValue, testValue); return false; } @@ -294,9 +294,8 @@ bool tosaCheckFloatBound(OutType testValue, double referenceValue, double errorB bool withinBound = testValue64 >= referenceMin && testValue64 <= referenceMax; if (!withinBound) { - WARNING( - "[Verifier][Bound] value (%10.10f) is not in error bound %g range (%10.10f <= ref (%10.10f) <= %10.10f).", - testValue64, errorBound, referenceMin, referenceValue, referenceMax); + WARNING("[Verifier][Bound] value %.20f is not in error bound %g range (%.20f <= ref %.20f <= %.20f).", + testValue64, testValue64, errorBound, referenceMin, referenceValue, referenceValue, referenceMax); } return withinBound; } |