aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/verify/verify_abs_error.cc
diff options
context:
space:
mode:
authorevacha01 <evan.chandler@arm.com>2024-02-07 11:21:55 +0000
committerevacha01 <evan.chandler@arm.com>2024-03-07 12:06:38 +0000
commit9c96eefbaca6c85be79529bce7ff04fd7dfe3a0d (patch)
tree55647ee0216800b621bd0b27277c6f895929ef3d /reference_model/src/verify/verify_abs_error.cc
parent6e1e2bc06bff785e87577f24064bbc846300f8fd (diff)
downloadreference_model-9c96eefbaca6c85be79529bce7ff04fd7dfe3a0d.tar.gz
FULL data gen mode for FP16
Signed-off-by: evacha01 <evan.chandler@arm.com> Change-Id: I81bb322132daf25328a40342edc62d8e1db9edd6
Diffstat (limited to 'reference_model/src/verify/verify_abs_error.cc')
-rw-r--r--reference_model/src/verify/verify_abs_error.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/reference_model/src/verify/verify_abs_error.cc b/reference_model/src/verify/verify_abs_error.cc
index 125045e..64f86a3 100644
--- a/reference_model/src/verify/verify_abs_error.cc
+++ b/reference_model/src/verify/verify_abs_error.cc
@@ -30,12 +30,17 @@ double calcErrorBound(double referenceValue, double boundsValue, const void* cfg
{
const auto cfg = reinterpret_cast<const AbsErrorVerifyInfo*>(cfgPtr);
- double valBound = std::abs(referenceValue) * boundsValue;
- if (cfg->lowerBound > 0)
+ double errorBound = 0.0;
+ if (std::isfinite(referenceValue) && std::abs(referenceValue) != 0.0)
{
- valBound = std::max(cfg->lowerBound, valBound);
+ double valBound = std::abs(referenceValue) * boundsValue;
+ if (cfg->lowerBound > 0)
+ {
+ valBound = std::max(cfg->lowerBound, valBound);
+ }
+ errorBound = exp2(-AccPrecision<OutType>::normal_frac / cfg->normalDivisor) * valBound;
}
- return exp2(-AccPrecision<OutType>::normal_frac / cfg->normalDivisor) * valBound;
+ return errorBound;
}
} // namespace