\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -1147158.01509999507106840610504150390625:\\
\;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\
\mathbf{elif}\;-2 \cdot x \le 9.326698951531978754675718365670100684639 \cdot 10^{-11}:\\
\;\;\;\;x \cdot \left(1 - \left(x \cdot x\right) \cdot 0.3333333333333333703407674875052180141211\right) - \left(x \cdot x\right) \cdot \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot \left(x \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r3017429 = 2.0;
double r3017430 = 1.0;
double r3017431 = -2.0;
double r3017432 = x;
double r3017433 = r3017431 * r3017432;
double r3017434 = exp(r3017433);
double r3017435 = r3017430 + r3017434;
double r3017436 = r3017429 / r3017435;
double r3017437 = r3017436 - r3017430;
return r3017437;
}
double f(double x, double __attribute__((unused)) y) {
double r3017438 = -2.0;
double r3017439 = x;
double r3017440 = r3017438 * r3017439;
double r3017441 = -1147158.015099995;
bool r3017442 = r3017440 <= r3017441;
double r3017443 = 1.0;
double r3017444 = sqrt(r3017443);
double r3017445 = 2.0;
double r3017446 = exp(r3017440);
double r3017447 = r3017446 + r3017443;
double r3017448 = r3017445 / r3017447;
double r3017449 = sqrt(r3017448);
double r3017450 = r3017444 + r3017449;
double r3017451 = r3017450 * r3017450;
double r3017452 = r3017451 * r3017450;
double r3017453 = r3017449 - r3017444;
double r3017454 = r3017453 * r3017453;
double r3017455 = r3017453 * r3017454;
double r3017456 = r3017452 * r3017455;
double r3017457 = cbrt(r3017456);
double r3017458 = 9.326698951531979e-11;
bool r3017459 = r3017440 <= r3017458;
double r3017460 = r3017439 * r3017439;
double r3017461 = 0.33333333333333337;
double r3017462 = r3017460 * r3017461;
double r3017463 = r3017443 - r3017462;
double r3017464 = r3017439 * r3017463;
double r3017465 = 5.551115123125783e-17;
double r3017466 = r3017465 * r3017460;
double r3017467 = r3017460 * r3017466;
double r3017468 = r3017464 - r3017467;
double r3017469 = r3017459 ? r3017468 : r3017457;
double r3017470 = r3017442 ? r3017457 : r3017469;
return r3017470;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -1147158.015099995 or 9.326698951531979e-11 < (* -2.0 x) Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied add-sqr-sqrt1.0
Applied difference-of-squares0.7
rmApplied add-cbrt-cube0.7
Applied add-cbrt-cube0.2
Applied cbrt-unprod0.2
if -1147158.015099995 < (* -2.0 x) < 9.326698951531979e-11Initial program 58.5
Taylor expanded around 0 0.8
Simplified0.8
Final simplification0.5
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))