diff options
author | Dominic Symes <dominic.symes@arm.com> | 2023-11-30 10:56:33 +0000 |
---|---|---|
committer | Dominic Symes <dominic.symes@arm.com> | 2023-12-04 11:21:18 +0000 |
commit | 2bc6c57eb24f71131ebfe631e89522eb5ce008e7 (patch) | |
tree | c3317a8560b46cfb3a8122016a6c71255cdd8be9 | |
parent | 9151dd5b223ea069e4c9526e9e82442edaf525d0 (diff) | |
download | specification-2bc6c57eb24f71131ebfe631e89522eb5ce008e7.tar.gz |
Main Conformance: Update SIGMOID, TANH precision
Change SIGMOID, TANH precision to allow an
implementation using EXP. The bound is based
on the EXP bound.
Change-Id: I19582b31753ac614a1064a1b81961dbc54acf823
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
-rw-r--r-- | chapters/introduction.adoc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/chapters/introduction.adoc b/chapters/introduction.adoc index 4b0696c..48b169d 100644 --- a/chapters/introduction.adoc +++ b/chapters/introduction.adoc @@ -261,7 +261,7 @@ Otherwise:the result must be within 1 ulp of the mathematical result. Otherwise if the input is a zero the output must be an infinity of the same sign. + Otherwise the result must be within 2 ulp of the mathematical result. -| <<SIGMOID>>, <<TANH>>, <<LOG>>, <<ERF>> +| <<LOG>>, <<ERF>> | If the input to LOG is less than zero then the result must be a NaN. + If the result overflows the output must be an infinity of the correct sign. + If the result underflows the output must be a zero of the correct sign. + @@ -279,6 +279,12 @@ Let `out_ref` be the result of the fp64_t reference implementation of `pow(x,y)` 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 +| <<SIGMOID>>, <<TANH>> +| Let `x` be an input element and `out_imp` the implementation output. + +Let `out_ref` be the result of the fp64_t reference implementation. + +Let `err_bnd = abs(out_ref) * exp2(-normal_frac<in_out_t>) * (2 * (1+abs(x)))` + +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. + This dot product must meet the <<Dot product accuracy requirements>> |