diff options
author | Dominic Symes <dominic.symes@arm.com> | 2023-12-08 17:45:31 +0000 |
---|---|---|
committer | Dominic Symes <dominic.symes@arm.com> | 2024-01-15 09:50:58 +0000 |
commit | 8754ec288dc491f3a9e936e68a1fd35783c9808e (patch) | |
tree | 601cc4c765e97ea8a0450d3f79332e64c1f18ee4 /chapters/introduction.adoc | |
parent | 2f3f4a2abb894ca608cdf536f5f803dc4c971a04 (diff) | |
download | specification-8754ec288dc491f3a9e936e68a1fd35783c9808e.tar.gz |
Main Conformance: TANH change, SCATTER clarification
TANH can have cancellation between exp(x) and exp(-x)
for small abs(x). To allow for this, a lower bound of
0.5*exp(-normal_fraction<in_out_t>) is set for the
error bound. The TANH formula also can contain 4
exp() values, so the error bound is increased to 4
multiplied by the exp() error bound.
SCATTER output size K must be as least as great
as the number of indices W, as each index is distinct.
Change-Id: I8d1f1c866bd59d8140cf7db76404f5006a04a3f3
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Diffstat (limited to 'chapters/introduction.adoc')
-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 11ba26b..dc45808 100644 --- a/chapters/introduction.adoc +++ b/chapters/introduction.adoc @@ -281,12 +281,18 @@ 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>> +| <<SIGMOID>> | 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 +| <<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 = exp2(-normal_frac<in_out_t>) * max(0.5, abs(out_ref) * (4 * (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>> |