\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.448110715835612849:\\
\;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{2}{1 + e^{-2 \cdot x}} - 1}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\
\mathbf{elif}\;-2 \cdot x \le 5.632744022585048 \cdot 10^{-10}:\\
\;\;\;\;1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{\frac{{\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}}\right)}^{4}}{1} - \frac{1 \cdot 1}{1}}{\frac{2}{1 + e^{-2 \cdot x}} + 1}}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r99688 = 2.0;
double r99689 = 1.0;
double r99690 = -2.0;
double r99691 = x;
double r99692 = r99690 * r99691;
double r99693 = exp(r99692);
double r99694 = r99689 + r99693;
double r99695 = r99688 / r99694;
double r99696 = r99695 - r99689;
return r99696;
}
double f(double x, double __attribute__((unused)) y) {
double r99697 = -2.0;
double r99698 = x;
double r99699 = r99697 * r99698;
double r99700 = -0.44811071583561285;
bool r99701 = r99699 <= r99700;
double r99702 = 2.0;
double r99703 = 1.0;
double r99704 = exp(r99699);
double r99705 = r99703 + r99704;
double r99706 = r99702 / r99705;
double r99707 = sqrt(r99706);
double r99708 = sqrt(r99703);
double r99709 = r99707 + r99708;
double r99710 = r99706 - r99703;
double r99711 = r99710 / r99709;
double r99712 = r99709 * r99711;
double r99713 = 5.632744022585048e-10;
bool r99714 = r99699 <= r99713;
double r99715 = r99703 * r99698;
double r99716 = 5.551115123125783e-17;
double r99717 = 4.0;
double r99718 = pow(r99698, r99717);
double r99719 = r99716 * r99718;
double r99720 = 0.33333333333333337;
double r99721 = 3.0;
double r99722 = pow(r99698, r99721);
double r99723 = r99720 * r99722;
double r99724 = r99719 + r99723;
double r99725 = r99715 - r99724;
double r99726 = pow(r99707, r99717);
double r99727 = 1.0;
double r99728 = r99726 / r99727;
double r99729 = r99703 * r99703;
double r99730 = r99729 / r99727;
double r99731 = r99728 - r99730;
double r99732 = r99706 + r99703;
double r99733 = r99731 / r99732;
double r99734 = r99733 / r99709;
double r99735 = r99709 * r99734;
double r99736 = r99714 ? r99725 : r99735;
double r99737 = r99701 ? r99712 : r99736;
return r99737;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -0.44811071583561285Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt1.6
Applied difference-of-squares1.0
rmApplied flip--1.6
Simplified0.0
if -0.44811071583561285 < (* -2.0 x) < 5.632744022585048e-10Initial program 59.4
Taylor expanded around 0 0.1
if 5.632744022585048e-10 < (* -2.0 x) Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied add-sqr-sqrt0.5
Applied difference-of-squares0.5
rmApplied flip--0.5
Simplified0.5
rmApplied flip--0.5
Simplified0.5
Final simplification0.2
herbie shell --seed 2020059
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))