diff options
author | Dominic Symes <dominic.symes@arm.com> | 2023-11-07 11:46:16 +0000 |
---|---|---|
committer | Dominic Symes <dominic.symes@arm.com> | 2023-11-22 17:21:14 +0000 |
commit | a46cf1d2f3b22b1d54f71ddb3a99aa16f9e75a94 (patch) | |
tree | b94da5999509ff9c26f2246963d3c83f5c4b3a01 /chapters/introduction.adoc | |
parent | f43fdce7f8984cbec1c4aa28b2199a1c99943ece (diff) | |
download | specification-a46cf1d2f3b22b1d54f71ddb3a99aa16f9e75a94.tar.gz |
Main Conformance: Update RSQRT precision
Change RSQRT precision to 2 ulp to allow
unfused square root and reciprocal.
Also fixes:
- a typo in EXP and POW conformance
- exp2() handling of large negative values
- symmetry about 0 of test set S=4 data generation
- err_bnd cannot be negative
- ulp not taken for reference value of 0
Change-Id: Idaeeb7b615f1634e8e09dea5f82827039780b462
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Diffstat (limited to 'chapters/introduction.adoc')
-rw-r--r-- | chapters/introduction.adoc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/chapters/introduction.adoc b/chapters/introduction.adoc index 1fabcc3..4b0696c 100644 --- a/chapters/introduction.adoc +++ b/chapters/introduction.adoc @@ -259,7 +259,7 @@ Otherwise:the result must be within 1 ulp of the mathematical result. | <<RSQRT>> | If the input is less than zero the result must be a NaN. + Otherwise if the input is a zero the output must be an infinity of the same sign. + -Otherwise the result must be within 1 ulp of the mathematical result. +Otherwise the result must be within 2 ulp of the mathematical result. | <<SIGMOID>>, <<TANH>>, <<LOG>>, <<ERF>> | If the input to LOG is less than zero then the result must be a NaN. + @@ -270,14 +270,14 @@ Otherwise the result must be within 5 ulp of the mathematical result. | <<EXP>> | Let `x` be an input element and `out_imp` the implementation output of `exp(x)`. + Let `out_ref` be the result of the fp64_t reference implementation of `exp(x)`. + -Let `err_bnd = out_ref*exp2(-normal_fraction<in_out_t>)*(1+abs(x))` + -Then `tosa_reference_check_fp_bnd<in_out_t>(out_imp, out_ref, out_bnd)` must be true +Let `err_bnd = abs(out_ref) * exp2(-normal_frac<in_out_t>) * (1+abs(x))` + +Then `tosa_reference_check_fp_bnd<in_out_t>(out_imp, out_ref, err_bnd)` must be true | <<POW>> | Let `x`, `y` be input elements and `out_imp` the implementation output of `pow(x,y)`. + Let `out_ref` be the result of the fp64_t reference implementation of `pow(x,y)`. + -Let `err_bnd = out_ref*exp2(-normal_fraction<in_out_t>)*(1+abs(log(abs(x))*y))` + -Then `tosa_reference_check_fp_bnd<in_out_t>(out_imp, out_ref, out_bnd)` must be true +Let `err_bnd = abs(out_ref) * exp2(-normal_frac<in_out_t>) * (1+abs(log(abs(x))*y))` + +Then `tosa_reference_check_fp_bnd<in_out_t>(out_imp, out_ref, err_bnd)` must be true | <<REDUCE_SUM>> | Each output can be expressed as a dot product of an input vector with a vector of ones. + |