\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -17964639.956402041 \lor \neg \left(-2 \cdot x \le 3.59556513046770647 \cdot 10^{-10}\right):\\
\;\;\;\;\left(\sqrt[3]{\frac{\sqrt{2}}{\sqrt{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \left(\sqrt[3]{\sqrt{2} \cdot \sqrt{\frac{1}{e^{-2 \cdot x} + 1}} - \sqrt{1}} \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\right)\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r62540 = 2.0;
double r62541 = 1.0;
double r62542 = -2.0;
double r62543 = x;
double r62544 = r62542 * r62543;
double r62545 = exp(r62544);
double r62546 = r62541 + r62545;
double r62547 = r62540 / r62546;
double r62548 = r62547 - r62541;
return r62548;
}
double f(double x, double __attribute__((unused)) y) {
double r62549 = -2.0;
double r62550 = x;
double r62551 = r62549 * r62550;
double r62552 = -17964639.95640204;
bool r62553 = r62551 <= r62552;
double r62554 = 3.5955651304677065e-10;
bool r62555 = r62551 <= r62554;
double r62556 = !r62555;
bool r62557 = r62553 || r62556;
double r62558 = 2.0;
double r62559 = sqrt(r62558);
double r62560 = 1.0;
double r62561 = exp(r62551);
double r62562 = r62560 + r62561;
double r62563 = sqrt(r62562);
double r62564 = r62559 / r62563;
double r62565 = sqrt(r62560);
double r62566 = r62564 + r62565;
double r62567 = cbrt(r62566);
double r62568 = 1.0;
double r62569 = r62561 + r62560;
double r62570 = r62568 / r62569;
double r62571 = sqrt(r62570);
double r62572 = r62559 * r62571;
double r62573 = r62572 - r62565;
double r62574 = cbrt(r62573);
double r62575 = r62558 / r62562;
double r62576 = r62575 - r62560;
double r62577 = cbrt(r62576);
double r62578 = r62574 * r62577;
double r62579 = r62567 * r62578;
double r62580 = r62579 * r62577;
double r62581 = r62560 * r62550;
double r62582 = 5.551115123125783e-17;
double r62583 = 4.0;
double r62584 = pow(r62550, r62583);
double r62585 = r62582 * r62584;
double r62586 = 0.33333333333333337;
double r62587 = 3.0;
double r62588 = pow(r62550, r62587);
double r62589 = r62586 * r62588;
double r62590 = r62585 + r62589;
double r62591 = r62581 - r62590;
double r62592 = r62557 ? r62580 : r62591;
return r62592;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -17964639.95640204 or 3.5955651304677065e-10 < (* -2.0 x) Initial program 0.2
rmApplied add-cube-cbrt0.2
rmApplied add-sqr-sqrt0.2
Applied add-sqr-sqrt0.2
Applied add-sqr-sqrt0.2
Applied times-frac0.2
Applied difference-of-squares0.2
Applied cbrt-prod0.2
Applied associate-*l*0.2
Taylor expanded around inf 0.2
if -17964639.95640204 < (* -2.0 x) < 3.5955651304677065e-10Initial program 58.6
Taylor expanded around 0 1.0
Final simplification0.6
herbie shell --seed 2020036
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))