diff options
author | evacha01 <evan.chandler@arm.com> | 2024-02-07 11:21:55 +0000 |
---|---|---|
committer | evacha01 <evan.chandler@arm.com> | 2024-03-07 12:06:38 +0000 |
commit | 9c96eefbaca6c85be79529bce7ff04fd7dfe3a0d (patch) | |
tree | 55647ee0216800b621bd0b27277c6f895929ef3d /reference_model/src/verify/verify_abs_error.cc | |
parent | 6e1e2bc06bff785e87577f24064bbc846300f8fd (diff) | |
download | reference_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.cc | 13 |
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 |