\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.896697363290915095 \lor \neg \left(-2 \cdot x \le 3.59224269730938628 \cdot 10^{-6}\right):\\
\;\;\;\;\left(\frac{\frac{2}{\sqrt[3]{1 + e^{-2 \cdot x}}}}{\sqrt[3]{1 + e^{-2 \cdot x}} \cdot \sqrt[3]{1 + e^{-2 \cdot x}}} - 1\right) + \left(1 - 1\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot x - \mathsf{fma}\left(5.55112 \cdot 10^{-17}, {x}^{4}, 0.33333333333333337 \cdot {x}^{3}\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r45282 = 2.0;
double r45283 = 1.0;
double r45284 = -2.0;
double r45285 = x;
double r45286 = r45284 * r45285;
double r45287 = exp(r45286);
double r45288 = r45283 + r45287;
double r45289 = r45282 / r45288;
double r45290 = r45289 - r45283;
return r45290;
}
double f(double x, double __attribute__((unused)) y) {
double r45291 = -2.0;
double r45292 = x;
double r45293 = r45291 * r45292;
double r45294 = -0.8966973632909151;
bool r45295 = r45293 <= r45294;
double r45296 = 3.5922426973093863e-06;
bool r45297 = r45293 <= r45296;
double r45298 = !r45297;
bool r45299 = r45295 || r45298;
double r45300 = 2.0;
double r45301 = 1.0;
double r45302 = exp(r45293);
double r45303 = r45301 + r45302;
double r45304 = cbrt(r45303);
double r45305 = r45300 / r45304;
double r45306 = r45304 * r45304;
double r45307 = r45305 / r45306;
double r45308 = r45307 - r45301;
double r45309 = r45301 - r45301;
double r45310 = r45308 + r45309;
double r45311 = r45301 * r45292;
double r45312 = 5.551115123125783e-17;
double r45313 = 4.0;
double r45314 = pow(r45292, r45313);
double r45315 = 0.33333333333333337;
double r45316 = 3.0;
double r45317 = pow(r45292, r45316);
double r45318 = r45315 * r45317;
double r45319 = fma(r45312, r45314, r45318);
double r45320 = r45311 - r45319;
double r45321 = r45299 ? r45310 : r45320;
return r45321;
}



Bits error versus x



Bits error versus y
if (* -2.0 x) < -0.8966973632909151 or 3.5922426973093863e-06 < (* -2.0 x) Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied add-cube-cbrt0.1
Applied add-sqr-sqrt0.9
Applied times-frac0.9
Applied prod-diff0.6
Simplified0.1
Simplified0.1
if -0.8966973632909151 < (* -2.0 x) < 3.5922426973093863e-06Initial program 59.1
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020042 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))