\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \leq -0.287660782793311:\\
\;\;\;\;\frac{\log \left(e^{{\left(\frac{2}{1 + {\left(e^{-2}\right)}^{x}}\right)}^{2} + -1}\right)}{\frac{1 + {\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3}}{1 + \frac{-2 + \frac{4}{1 + e^{-2 \cdot x}}}{1 + e^{-2 \cdot x}}}}\\
\mathbf{elif}\;-2 \cdot x \leq 2.922242698280268 \cdot 10^{-16}:\\
\;\;\;\;x\\
\mathbf{else}:\\
\;\;\;\;\frac{-1 + \frac{4}{\left(1 + e^{-2 \cdot x}\right) \cdot \left(1 + e^{-2 \cdot x}\right)}}{1 + \frac{2}{1 + e^{-2 \cdot x}}}\\
\end{array}(FPCore (x y) :precision binary64 (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))
(FPCore (x y)
:precision binary64
(if (<= (* -2.0 x) -0.287660782793311)
(/
(log (exp (+ (pow (/ 2.0 (+ 1.0 (pow (exp -2.0) x))) 2.0) -1.0)))
(/
(+ 1.0 (pow (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 3.0))
(+
1.0
(/ (+ -2.0 (/ 4.0 (+ 1.0 (exp (* -2.0 x))))) (+ 1.0 (exp (* -2.0 x)))))))
(if (<= (* -2.0 x) 2.922242698280268e-16)
x
(/
(+ -1.0 (/ 4.0 (* (+ 1.0 (exp (* -2.0 x))) (+ 1.0 (exp (* -2.0 x))))))
(+ 1.0 (/ 2.0 (+ 1.0 (exp (* -2.0 x)))))))))double code(double x, double y) {
return (2.0 / (1.0 + exp(-2.0 * x))) - 1.0;
}
double code(double x, double y) {
double tmp;
if ((-2.0 * x) <= -0.287660782793311) {
tmp = log(exp(pow((2.0 / (1.0 + pow(exp(-2.0), x))), 2.0) + -1.0)) / ((1.0 + pow((2.0 / (1.0 + exp(-2.0 * x))), 3.0)) / (1.0 + ((-2.0 + (4.0 / (1.0 + exp(-2.0 * x)))) / (1.0 + exp(-2.0 * x)))));
} else if ((-2.0 * x) <= 2.922242698280268e-16) {
tmp = x;
} else {
tmp = (-1.0 + (4.0 / ((1.0 + exp(-2.0 * x)) * (1.0 + exp(-2.0 * x))))) / (1.0 + (2.0 / (1.0 + exp(-2.0 * x))));
}
return tmp;
}



Bits error versus x



Bits error versus y
Results
if (*.f64 -2 x) < -0.28766078279331098Initial program 0.0
rmApplied flip--_binary64_24400.0
Simplified0.0
Simplified0.0
rmApplied flip3-+_binary64_24680.0
Simplified0.0
Simplified0.0
rmApplied add-log-exp_binary64_25040.0
Applied add-log-exp_binary64_25040.0
Applied sum-log_binary64_25560.0
Simplified0.0
if -0.28766078279331098 < (*.f64 -2 x) < 2.9222426982802681e-16Initial program 59.8
Taylor expanded around 0 0.2
if 2.9222426982802681e-16 < (*.f64 -2 x) Initial program 1.1
rmApplied flip--_binary64_24401.1
Simplified1.1
Simplified1.1
Final simplification0.4
herbie shell --seed 2020353
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))