\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -29.4323329991655491:\\
\;\;\;\;\log \left(e^{\frac{2}{e^{-2 \cdot x} + 1}}\right) - 1\\
\mathbf{elif}\;-2 \cdot x \le 3.8844474649051155 \cdot 10^{-6}:\\
\;\;\;\;\mathsf{fma}\left(1, x, -\mathsf{fma}\left(5.55112 \cdot 10^{-17}, {x}^{4}, 0.33333333333333337 \cdot {x}^{3}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{1 + e^{-2 \cdot x}}\right)\right) - 1\\
\end{array}double code(double x, double y) {
return ((2.0 / (1.0 + exp((-2.0 * x)))) - 1.0);
}
double code(double x, double y) {
double VAR;
if (((-2.0 * x) <= -29.43233299916555)) {
VAR = (log(exp((2.0 / (exp((-2.0 * x)) + 1.0)))) - 1.0);
} else {
double VAR_1;
if (((-2.0 * x) <= 3.8844474649051155e-06)) {
VAR_1 = fma(1.0, x, -fma(5.551115123125783e-17, pow(x, 4.0), (0.33333333333333337 * pow(x, 3.0))));
} else {
VAR_1 = (expm1(log1p((2.0 / (1.0 + exp((-2.0 * x)))))) - 1.0);
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -29.43233299916555Initial program 0.0
rmApplied add-log-exp0.0
Simplified0.0
if -29.43233299916555 < (* -2.0 x) < 3.8844474649051155e-06Initial program 58.8
Taylor expanded around 0 0.3
Simplified0.3
if 3.8844474649051155e-06 < (* -2.0 x) Initial program 0.1
rmApplied expm1-log1p-u0.1
Final simplification0.2
herbie shell --seed 2020103 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))