\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;x \le -0.007335249056257028:\\
\;\;\;\;\frac{\sqrt[3]{\left(\left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right) \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right)\right) \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right)}}{\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(1 + \frac{2}{e^{-2 \cdot x} + 1}\right) + 1}\\
\mathbf{elif}\;x \le 0.006741279642019881:\\
\;\;\;\;\left(x \cdot \left(\frac{-1}{3} \cdot \left(x \cdot x\right)\right) + x\right) + \frac{2}{15} \cdot {x}^{5}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\left(\left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right) \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right)\right) \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) - 1\right)}}{\frac{2}{e^{-2 \cdot x} + 1} \cdot \left(1 + \frac{2}{e^{-2 \cdot x} + 1}\right) + 1}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r16143569 = 2.0;
double r16143570 = 1.0;
double r16143571 = -2.0;
double r16143572 = x;
double r16143573 = r16143571 * r16143572;
double r16143574 = exp(r16143573);
double r16143575 = r16143570 + r16143574;
double r16143576 = r16143569 / r16143575;
double r16143577 = r16143576 - r16143570;
return r16143577;
}
double f(double x, double __attribute__((unused)) y) {
double r16143578 = x;
double r16143579 = -0.007335249056257028;
bool r16143580 = r16143578 <= r16143579;
double r16143581 = 2.0;
double r16143582 = -2.0;
double r16143583 = r16143582 * r16143578;
double r16143584 = exp(r16143583);
double r16143585 = 1.0;
double r16143586 = r16143584 + r16143585;
double r16143587 = r16143581 / r16143586;
double r16143588 = r16143587 * r16143587;
double r16143589 = r16143587 * r16143588;
double r16143590 = r16143589 - r16143585;
double r16143591 = r16143590 * r16143590;
double r16143592 = r16143591 * r16143590;
double r16143593 = cbrt(r16143592);
double r16143594 = r16143585 + r16143587;
double r16143595 = r16143587 * r16143594;
double r16143596 = r16143595 + r16143585;
double r16143597 = r16143593 / r16143596;
double r16143598 = 0.006741279642019881;
bool r16143599 = r16143578 <= r16143598;
double r16143600 = -0.3333333333333333;
double r16143601 = r16143578 * r16143578;
double r16143602 = r16143600 * r16143601;
double r16143603 = r16143578 * r16143602;
double r16143604 = r16143603 + r16143578;
double r16143605 = 0.13333333333333333;
double r16143606 = 5.0;
double r16143607 = pow(r16143578, r16143606);
double r16143608 = r16143605 * r16143607;
double r16143609 = r16143604 + r16143608;
double r16143610 = r16143599 ? r16143609 : r16143597;
double r16143611 = r16143580 ? r16143597 : r16143610;
return r16143611;
}



Bits error versus x



Bits error versus y
Results
if x < -0.007335249056257028 or 0.006741279642019881 < x Initial program 0.0
rmApplied flip3--0.0
Simplified0.0
Simplified0.0
rmApplied add-cbrt-cube0.0
if -0.007335249056257028 < x < 0.006741279642019881Initial program 59.0
rmApplied flip3--59.0
Simplified59.1
Simplified59.1
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019128
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))