\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}:\\
\;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4} + 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\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 r62813 = 2.0;
double r62814 = 1.0;
double r62815 = -2.0;
double r62816 = x;
double r62817 = r62815 * r62816;
double r62818 = exp(r62817);
double r62819 = r62814 + r62818;
double r62820 = r62813 / r62819;
double r62821 = r62820 - r62814;
return r62821;
}
double f(double x, double __attribute__((unused)) y) {
double r62822 = -2.0;
double r62823 = x;
double r62824 = r62822 * r62823;
double r62825 = -5.111290763866047;
bool r62826 = r62824 <= r62825;
double r62827 = 2.0;
double r62828 = 1.0;
double r62829 = exp(r62824);
double r62830 = r62828 + r62829;
double r62831 = r62827 / r62830;
double r62832 = sqrt(r62831);
double r62833 = sqrt(r62828);
double r62834 = r62832 + r62833;
double r62835 = r62832 - r62833;
double r62836 = r62834 * r62835;
double r62837 = 3.0;
double r62838 = pow(r62836, r62837);
double r62839 = cbrt(r62838);
double r62840 = 3.978856656911252e-07;
bool r62841 = r62824 <= r62840;
double r62842 = r62828 * r62823;
double r62843 = 5.551115123125783e-17;
double r62844 = 4.0;
double r62845 = pow(r62823, r62844);
double r62846 = r62843 * r62845;
double r62847 = 0.33333333333333337;
double r62848 = pow(r62823, r62837);
double r62849 = r62847 * r62848;
double r62850 = r62846 + r62849;
double r62851 = r62842 - r62850;
double r62852 = r62831 - r62828;
double r62853 = pow(r62852, r62837);
double r62854 = cbrt(r62853);
double r62855 = r62841 ? r62851 : r62854;
double r62856 = r62826 ? r62839 : r62855;
return r62856;
}



Bits error versus x



Bits error versus y
Results
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
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
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))