From 9c96eefbaca6c85be79529bce7ff04fd7dfe3a0d Mon Sep 17 00:00:00 2001 From: evacha01 Date: Wed, 7 Feb 2024 11:21:55 +0000 Subject: FULL data gen mode for FP16 Signed-off-by: evacha01 Change-Id: I81bb322132daf25328a40342edc62d8e1db9edd6 --- reference_model/src/verify/verify_abs_error.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'reference_model/src/verify/verify_abs_error.cc') 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(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::normal_frac / cfg->normalDivisor) * valBound; } - return exp2(-AccPrecision::normal_frac / cfg->normalDivisor) * valBound; + return errorBound; } } // namespace -- cgit v1.2.1