\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -5.111290763866047193175745633197948336601:\\
\;\;\;\;\sqrt[3]{{\left(\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)\right)}^{3}}\\
\mathbf{elif}\;-2 \cdot x \le 3.978856656911251737182447316826250371946 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{fma}\left(1, x, -\mathsf{fma}\left(5.5511151231257827021181583404541015625 \cdot 10^{-17}, {x}^{4}, 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{{\left(\frac{2}{1 + e^{-2 \cdot x}} - 1\right)}^{3}}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r68434 = 2.0;
double r68435 = 1.0;
double r68436 = -2.0;
double r68437 = x;
double r68438 = r68436 * r68437;
double r68439 = exp(r68438);
double r68440 = r68435 + r68439;
double r68441 = r68434 / r68440;
double r68442 = r68441 - r68435;
return r68442;
}
double f(double x, double __attribute__((unused)) y) {
double r68443 = -2.0;
double r68444 = x;
double r68445 = r68443 * r68444;
double r68446 = -5.111290763866047;
bool r68447 = r68445 <= r68446;
double r68448 = 2.0;
double r68449 = 1.0;
double r68450 = exp(r68445);
double r68451 = r68449 + r68450;
double r68452 = r68448 / r68451;
double r68453 = sqrt(r68452);
double r68454 = sqrt(r68449);
double r68455 = r68453 + r68454;
double r68456 = r68453 - r68454;
double r68457 = r68455 * r68456;
double r68458 = 3.0;
double r68459 = pow(r68457, r68458);
double r68460 = cbrt(r68459);
double r68461 = 3.978856656911252e-07;
bool r68462 = r68445 <= r68461;
double r68463 = 5.551115123125783e-17;
double r68464 = 4.0;
double r68465 = pow(r68444, r68464);
double r68466 = 0.33333333333333337;
double r68467 = pow(r68444, r68458);
double r68468 = r68466 * r68467;
double r68469 = fma(r68463, r68465, r68468);
double r68470 = -r68469;
double r68471 = fma(r68449, r68444, r68470);
double r68472 = r68452 - r68449;
double r68473 = pow(r68472, r68458);
double r68474 = cbrt(r68473);
double r68475 = r68462 ? r68471 : r68474;
double r68476 = r68447 ? r68460 : r68475;
return r68476;
}



Bits error versus x



Bits error versus y
if (* -2.0 x) < -5.111290763866047Initial program 0.0
rmApplied add-cbrt-cube0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt2.0
Applied difference-of-squares0.0
if -5.111290763866047 < (* -2.0 x) < 3.978856656911252e-07Initial program 59.2
Taylor expanded around 0 0.2
Simplified0.2
if 3.978856656911252e-07 < (* -2.0 x) Initial program 0.2
rmApplied add-cbrt-cube0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))