aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2024-01-23 15:02:34 +0000
committerEric Kunze <eric.kunze@arm.com>2024-01-24 21:00:31 +0000
commit1f75232dab1b50162ebc420e6e076edeb8a58341 (patch)
treeef7431e6b9e0105eb16ef0cf16d06c125cadb150
parentbef907a0a1161df3cfc51c6401ffa061e10f430b (diff)
downloadreference_model-1f75232dab1b50162ebc420e6e076edeb8a58341.tar.gz
Fix and improve verify ABS_ERROR reporting
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Id0030fbd1b3b7a526dc17e947a433b4957dbf5e4
-rw-r--r--reference_model/src/verify/verify_abs_error.cc2
-rw-r--r--reference_model/src/verify/verify_utils.cc9
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;
}