diff options
Diffstat (limited to 'lib/softplus.c')
| -rw-r--r-- | lib/softplus.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/softplus.c b/lib/softplus.c index b61f96b..6853f66 100644 --- a/lib/softplus.c +++ b/lib/softplus.c @@ -34,7 +34,12 @@ int ts_softplus( for( uint_t i = 0; i < n; ++i ) { fp_t xi = x[0][i]; - y[0][i] = xi > 20 ? xi : log( 1 + exp( xi ) ); + if ( xi > 20 ) + y[0][i] = xi; + else if ( xi < -37 ) + y[0][i] = exp( xi ); + else + y[0][i] = log( 1 + exp( xi ) ); } return 0; } |