In lib/sigmoid.h, there is some code to calculate quickly exp(x) including the statement :
i = (int)x1;

In lib/neuralnetsse.c, the corresponding SSE code is :
i.i  = _mm_cvtps_epi32( x1 );

Shouldn't that be _mm_cvttps_epi32( x1 ) ? The cast-to-int truncates, it doesn't round, does it ?

Amazingly (to me, at least), it apparently makes very little difference in the final net outputs but the current code seems erroneous.

_______________________________________________
Bug-gnubg mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-gnubg

Reply via email to