\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -306416.6377200472052209079265594482421875:\\
\;\;\;\;\frac{\frac{\frac{2}{\sqrt{\sqrt{e^{-2 \cdot x} + 1}}}}{\sqrt{\sqrt{e^{-2 \cdot x} + 1}}}}{\sqrt{e^{-2 \cdot x} + 1}} - 1\\
\mathbf{elif}\;-2 \cdot x \le 4.236193905385104490052934015503760534216 \cdot 10^{-7}:\\
\;\;\;\;x \cdot \left(1 - 0.3333333333333333703407674875052180141211 \cdot \left(x \cdot x\right)\right) - \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot 5.5511151231257827021181583404541015625 \cdot 10^{-17}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\sqrt{\sqrt{e^{-2 \cdot x} + 1}}}}{\sqrt{\sqrt{e^{-2 \cdot x} + 1}}}}{\sqrt{e^{-2 \cdot x} + 1}} - 1\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r2331777 = 2.0;
double r2331778 = 1.0;
double r2331779 = -2.0;
double r2331780 = x;
double r2331781 = r2331779 * r2331780;
double r2331782 = exp(r2331781);
double r2331783 = r2331778 + r2331782;
double r2331784 = r2331777 / r2331783;
double r2331785 = r2331784 - r2331778;
return r2331785;
}
double f(double x, double __attribute__((unused)) y) {
double r2331786 = -2.0;
double r2331787 = x;
double r2331788 = r2331786 * r2331787;
double r2331789 = -306416.6377200472;
bool r2331790 = r2331788 <= r2331789;
double r2331791 = 2.0;
double r2331792 = exp(r2331788);
double r2331793 = 1.0;
double r2331794 = r2331792 + r2331793;
double r2331795 = sqrt(r2331794);
double r2331796 = sqrt(r2331795);
double r2331797 = r2331791 / r2331796;
double r2331798 = r2331797 / r2331796;
double r2331799 = r2331798 / r2331795;
double r2331800 = r2331799 - r2331793;
double r2331801 = 4.2361939053851045e-07;
bool r2331802 = r2331788 <= r2331801;
double r2331803 = 0.33333333333333337;
double r2331804 = r2331787 * r2331787;
double r2331805 = r2331803 * r2331804;
double r2331806 = r2331793 - r2331805;
double r2331807 = r2331787 * r2331806;
double r2331808 = 5.551115123125783e-17;
double r2331809 = r2331804 * r2331808;
double r2331810 = r2331804 * r2331809;
double r2331811 = r2331807 - r2331810;
double r2331812 = r2331802 ? r2331811 : r2331800;
double r2331813 = r2331790 ? r2331800 : r2331812;
return r2331813;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -306416.6377200472 or 4.2361939053851045e-07 < (* -2.0 x) Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied associate-/r*0.1
rmApplied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied associate-/r*0.1
if -306416.6377200472 < (* -2.0 x) < 4.2361939053851045e-07Initial program 58.9
Taylor expanded around 0 0.6
Simplified0.6
Final simplification0.4
herbie shell --seed 2019192
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))