\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.0066854960496659944:\\
\;\;\;\;\left(\sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1} \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\
\mathbf{elif}\;-2 \cdot x \le 4.05655490242564146 \cdot 10^{-4}:\\
\;\;\;\;\mathsf{fma}\left(1, x, -\mathsf{fma}\left(5.55112 \cdot 10^{-17}, {x}^{4}, 0.33333333333333337 \cdot {x}^{3}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\right) \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sqrt{\frac{\sqrt[3]{2} \cdot \sqrt[3]{2}}{1}}, \sqrt{\frac{\sqrt[3]{2}}{1 + e^{-2 \cdot x}}}, -\sqrt{1}\right)} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}}\right)\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r66021 = 2.0;
double r66022 = 1.0;
double r66023 = -2.0;
double r66024 = x;
double r66025 = r66023 * r66024;
double r66026 = exp(r66025);
double r66027 = r66022 + r66026;
double r66028 = r66021 / r66027;
double r66029 = r66028 - r66022;
return r66029;
}
double f(double x, double __attribute__((unused)) y) {
double r66030 = -2.0;
double r66031 = x;
double r66032 = r66030 * r66031;
double r66033 = -0.006685496049665994;
bool r66034 = r66032 <= r66033;
double r66035 = 2.0;
double r66036 = 1.0;
double r66037 = exp(r66032);
double r66038 = r66036 + r66037;
double r66039 = r66035 / r66038;
double r66040 = r66039 - r66036;
double r66041 = cbrt(r66040);
double r66042 = r66041 * r66041;
double r66043 = r66042 * r66041;
double r66044 = 0.00040565549024256415;
bool r66045 = r66032 <= r66044;
double r66046 = 5.551115123125783e-17;
double r66047 = 4.0;
double r66048 = pow(r66031, r66047);
double r66049 = 0.33333333333333337;
double r66050 = 3.0;
double r66051 = pow(r66031, r66050);
double r66052 = r66049 * r66051;
double r66053 = fma(r66046, r66048, r66052);
double r66054 = -r66053;
double r66055 = fma(r66036, r66031, r66054);
double r66056 = sqrt(r66039);
double r66057 = sqrt(r66036);
double r66058 = r66056 + r66057;
double r66059 = cbrt(r66058);
double r66060 = r66059 * r66059;
double r66061 = cbrt(r66035);
double r66062 = r66061 * r66061;
double r66063 = 1.0;
double r66064 = r66062 / r66063;
double r66065 = sqrt(r66064);
double r66066 = r66061 / r66038;
double r66067 = sqrt(r66066);
double r66068 = -r66057;
double r66069 = fma(r66065, r66067, r66068);
double r66070 = cbrt(r66069);
double r66071 = r66056 - r66057;
double r66072 = cbrt(r66071);
double r66073 = r66070 * r66072;
double r66074 = r66060 * r66073;
double r66075 = r66074 * r66041;
double r66076 = r66045 ? r66055 : r66075;
double r66077 = r66034 ? r66043 : r66076;
return r66077;
}



Bits error versus x



Bits error versus y
if (* -2.0 x) < -0.006685496049665994Initial program 0.0
rmApplied add-cube-cbrt0.0
if -0.006685496049665994 < (* -2.0 x) < 0.00040565549024256415Initial program 59.2
Taylor expanded around 0 0.0
Simplified0.0
if 0.00040565549024256415 < (* -2.0 x) Initial program 0.0
rmApplied add-cube-cbrt0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied difference-of-squares0.0
Applied cbrt-prod0.1
Applied add-sqr-sqrt0.1
Applied add-sqr-sqrt0.1
Applied difference-of-squares0.0
Applied cbrt-prod0.1
Applied swap-sqr0.1
rmApplied *-un-lft-identity0.1
Applied add-cube-cbrt0.1
Applied times-frac0.1
Applied sqrt-prod0.1
Applied fma-neg0.1
Final simplification0.0
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))