shithub: opus

Download patch

ref: 8c7c03e568ae6430018959f3f91d1f5745950069
parent: 0e397a7241a8dd0021acc0677c80c222c5156440
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Tue Oct 17 21:44:50 EDT 2023

Don't call the libm tanh()

--- a/silk/dred_coding.c
+++ b/silk/dred_coding.c
@@ -37,6 +37,7 @@
 #include "os_support.h"
 #include "dred_config.h"
 #include "dred_coding.h"
+#include "vec.h"
 
 #define LATENT_DIM 80
 #define STATE_DIM 80
@@ -59,7 +60,7 @@
         int q;
         delta = dzone[i]*(1.f/1024.f);
         xq = x[i]*scale[i]*(1.f/256.f);
-        xq = xq - delta*tanh(xq/(delta+eps));
+        xq = xq - delta*tanh_approx(xq/(delta+eps));
         q = (int)floor(.5f+xq);
         /* Make the impossible actually impossible. */
         if (r[i] == 0 || p0[i] >= 32767) q = 0;
--