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;
--
⑨