\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;x \cdot -2 \le -0.1837147540782742005660566064761951565742:\\
\;\;\;\;\frac{\sqrt[3]{\left(\frac{2}{e^{x \cdot -2} + 1} \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) - \left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(\frac{2}{e^{x \cdot -2} + 1} \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) - \left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1} - 1 \cdot 1\right)\right)}}{\sqrt[3]{\left(\left(1 \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right) + \frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) \cdot \left(1 \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right) + \frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right)\right) \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right)}}\\
\mathbf{elif}\;x \cdot -2 \le 1.042492423760650159831312601586774009566 \cdot 10^{-10}:\\
\;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot \left(x \cdot x\right) + 0.3333333333333333703407674875052180141211 \cdot x\right) \cdot \left(x \cdot x\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\left(\frac{2}{e^{x \cdot -2} + 1} \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) - \left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(\frac{2}{e^{x \cdot -2} + 1} \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) - \left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1} - 1 \cdot 1\right)\right)}}{\sqrt[3]{\left(\left(1 \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right) + \frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right) \cdot \left(1 \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right) + \frac{2}{e^{x \cdot -2} + 1} \cdot \frac{2}{e^{x \cdot -2} + 1}\right)\right) \cdot \left(1 + \frac{2}{e^{x \cdot -2} + 1}\right)}}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r3135548 = 2.0;
double r3135549 = 1.0;
double r3135550 = -2.0;
double r3135551 = x;
double r3135552 = r3135550 * r3135551;
double r3135553 = exp(r3135552);
double r3135554 = r3135549 + r3135553;
double r3135555 = r3135548 / r3135554;
double r3135556 = r3135555 - r3135549;
return r3135556;
}
double f(double x, double __attribute__((unused)) y) {
double r3135557 = x;
double r3135558 = -2.0;
double r3135559 = r3135557 * r3135558;
double r3135560 = -0.1837147540782742;
bool r3135561 = r3135559 <= r3135560;
double r3135562 = 2.0;
double r3135563 = exp(r3135559);
double r3135564 = 1.0;
double r3135565 = r3135563 + r3135564;
double r3135566 = r3135562 / r3135565;
double r3135567 = r3135566 * r3135566;
double r3135568 = r3135566 * r3135567;
double r3135569 = r3135564 * r3135564;
double r3135570 = r3135569 * r3135564;
double r3135571 = r3135568 - r3135570;
double r3135572 = r3135567 - r3135569;
double r3135573 = r3135571 * r3135572;
double r3135574 = r3135571 * r3135573;
double r3135575 = cbrt(r3135574);
double r3135576 = r3135564 + r3135566;
double r3135577 = r3135564 * r3135576;
double r3135578 = r3135577 + r3135567;
double r3135579 = r3135578 * r3135578;
double r3135580 = r3135579 * r3135576;
double r3135581 = cbrt(r3135580);
double r3135582 = r3135575 / r3135581;
double r3135583 = 1.0424924237606502e-10;
bool r3135584 = r3135559 <= r3135583;
double r3135585 = r3135564 * r3135557;
double r3135586 = 5.551115123125783e-17;
double r3135587 = r3135557 * r3135557;
double r3135588 = r3135586 * r3135587;
double r3135589 = 0.33333333333333337;
double r3135590 = r3135589 * r3135557;
double r3135591 = r3135588 + r3135590;
double r3135592 = r3135591 * r3135587;
double r3135593 = r3135585 - r3135592;
double r3135594 = r3135584 ? r3135593 : r3135582;
double r3135595 = r3135561 ? r3135582 : r3135594;
return r3135595;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -0.1837147540782742 or 1.0424924237606502e-10 < (* -2.0 x) Initial program 0.2
rmApplied add-cbrt-cube0.2
rmApplied flip--0.2
Applied flip3--0.2
Applied flip3--0.2
Applied frac-times0.2
Applied frac-times0.2
Applied cbrt-div0.2
Simplified0.2
Simplified0.2
if -0.1837147540782742 < (* -2.0 x) < 1.0424924237606502e-10Initial program 59.4
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019200
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))