On 3 July 2012 08:34, Philippe Michel
<address@hidden> wrote:
On Mon, 2 Jul 2012, Joseph Heled wrote:
While "importing" the sse code to gnubg-nn I discovered an error in the
sigmoid implementation. The calculation made by the see code did not match
the one from the straight C code. (It was relatively easy for me to catch
since sse can be toggled during run time in gnubg-nn)
Since this results in bad evaluations, I am surprised it has not been
detected in gnubg.
>From the differences between the SSE code in gnubg and gnubg-nn, it looks like you mean the cases when the input is higher than 10, isn't it ?
For these cases, my understanding is that the combination of the _mm_min_ps(xin, tens.ps); at the beginning of sigmoid_positive_ps() and the 101th entry in the lookup table does what is needed.
That understanding is incorrect.
-Joseph