\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;x \le -0.006778948484773374:\\
\;\;\;\;\frac{\frac{\frac{8}{e^{-2 \cdot x} + 1}}{\left(e^{-2 \cdot x} + 1\right) \cdot \left(e^{-2 \cdot x} + 1\right)} - 1}{\frac{2}{e^{-2 \cdot x} + 1} + \mathsf{fma}\left(\frac{2}{e^{-2 \cdot x} + 1}, \frac{2}{e^{-2 \cdot x} + 1}, 1\right)}\\
\mathbf{elif}\;x \le 0.006963305059651398:\\
\;\;\;\;\mathsf{fma}\left({x}^{5}, \frac{2}{15}, \mathsf{fma}\left(\left(x \cdot x\right) \cdot x, \frac{-1}{3}, x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{8}{e^{-2 \cdot x} + 1}}{\left(e^{-2 \cdot x} + 1\right) \cdot \left(e^{-2 \cdot x} + 1\right)} - 1}{\frac{2}{e^{-2 \cdot x} + 1} + \mathsf{fma}\left(\frac{2}{e^{-2 \cdot x} + 1}, \frac{2}{e^{-2 \cdot x} + 1}, 1\right)}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r3358553 = 2.0;
double r3358554 = 1.0;
double r3358555 = -2.0;
double r3358556 = x;
double r3358557 = r3358555 * r3358556;
double r3358558 = exp(r3358557);
double r3358559 = r3358554 + r3358558;
double r3358560 = r3358553 / r3358559;
double r3358561 = r3358560 - r3358554;
return r3358561;
}
double f(double x, double __attribute__((unused)) y) {
double r3358562 = x;
double r3358563 = -0.006778948484773374;
bool r3358564 = r3358562 <= r3358563;
double r3358565 = 8.0;
double r3358566 = -2.0;
double r3358567 = r3358566 * r3358562;
double r3358568 = exp(r3358567);
double r3358569 = 1.0;
double r3358570 = r3358568 + r3358569;
double r3358571 = r3358565 / r3358570;
double r3358572 = r3358570 * r3358570;
double r3358573 = r3358571 / r3358572;
double r3358574 = r3358573 - r3358569;
double r3358575 = 2.0;
double r3358576 = r3358575 / r3358570;
double r3358577 = fma(r3358576, r3358576, r3358569);
double r3358578 = r3358576 + r3358577;
double r3358579 = r3358574 / r3358578;
double r3358580 = 0.006963305059651398;
bool r3358581 = r3358562 <= r3358580;
double r3358582 = 5.0;
double r3358583 = pow(r3358562, r3358582);
double r3358584 = 0.13333333333333333;
double r3358585 = r3358562 * r3358562;
double r3358586 = r3358585 * r3358562;
double r3358587 = -0.3333333333333333;
double r3358588 = fma(r3358586, r3358587, r3358562);
double r3358589 = fma(r3358583, r3358584, r3358588);
double r3358590 = r3358581 ? r3358589 : r3358579;
double r3358591 = r3358564 ? r3358579 : r3358590;
return r3358591;
}



Bits error versus x



Bits error versus y
if x < -0.006778948484773374 or 0.006963305059651398 < x Initial program 0.0
Taylor expanded around inf 0.0
Simplified0.0
rmApplied flip3--0.0
Simplified0.0
Simplified0.0
if -0.006778948484773374 < x < 0.006963305059651398Initial program 58.9
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))