summaryrefslogtreecommitdiffstats
path: root/lib/softplus.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/softplus.c')
-rw-r--r--lib/softplus.c7
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;
}