\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.3535994530314286454775185575272189453244:\\
\;\;\;\;\mathsf{fma}\left(1, -1, 1\right) + \left(\frac{\frac{2}{\sqrt{e^{-2 \cdot x} + 1}}}{\sqrt{e^{-2 \cdot x} + 1}} - 1\right)\\
\mathbf{elif}\;-2 \cdot x \le 1.360762104871435039234140937369765822496 \cdot 10^{-6}:\\
\;\;\;\;1 \cdot x - \left(x \cdot 0.3333333333333333703407674875052180141211 + \left(x \cdot x\right) \cdot 5.5511151231257827021181583404541015625 \cdot 10^{-17}\right) \cdot \left(x \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(1, -1, 1\right) + \left(\frac{\frac{2}{\sqrt{e^{-2 \cdot x} + 1}}}{\sqrt{e^{-2 \cdot x} + 1}} - 1\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r3078725 = 2.0;
double r3078726 = 1.0;
double r3078727 = -2.0;
double r3078728 = x;
double r3078729 = r3078727 * r3078728;
double r3078730 = exp(r3078729);
double r3078731 = r3078726 + r3078730;
double r3078732 = r3078725 / r3078731;
double r3078733 = r3078732 - r3078726;
return r3078733;
}
double f(double x, double __attribute__((unused)) y) {
double r3078734 = -2.0;
double r3078735 = x;
double r3078736 = r3078734 * r3078735;
double r3078737 = -0.35359945303142865;
bool r3078738 = r3078736 <= r3078737;
double r3078739 = 1.0;
double r3078740 = -1.0;
double r3078741 = fma(r3078739, r3078740, r3078739);
double r3078742 = 2.0;
double r3078743 = exp(r3078736);
double r3078744 = r3078743 + r3078739;
double r3078745 = sqrt(r3078744);
double r3078746 = r3078742 / r3078745;
double r3078747 = r3078746 / r3078745;
double r3078748 = r3078747 - r3078739;
double r3078749 = r3078741 + r3078748;
double r3078750 = 1.360762104871435e-06;
bool r3078751 = r3078736 <= r3078750;
double r3078752 = r3078739 * r3078735;
double r3078753 = 0.33333333333333337;
double r3078754 = r3078735 * r3078753;
double r3078755 = r3078735 * r3078735;
double r3078756 = 5.551115123125783e-17;
double r3078757 = r3078755 * r3078756;
double r3078758 = r3078754 + r3078757;
double r3078759 = r3078758 * r3078755;
double r3078760 = r3078752 - r3078759;
double r3078761 = r3078751 ? r3078760 : r3078749;
double r3078762 = r3078738 ? r3078749 : r3078761;
return r3078762;
}



Bits error versus x



Bits error versus y
if (* -2.0 x) < -0.35359945303142865 or 1.360762104871435e-06 < (* -2.0 x) Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied add-sqr-sqrt0.1
Applied add-sqr-sqrt0.9
Applied times-frac0.9
Applied prod-diff0.6
Simplified0.1
Simplified0.1
if -0.35359945303142865 < (* -2.0 x) < 1.360762104871435e-06Initial program 59.3
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))