\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.16694293117624887 \lor \neg \left(-2 \cdot x \le 1.3471487435038969 \cdot 10^{-8}\right):\\
\;\;\;\;\frac{{\left(\frac{2}{1 + e^{-2 \cdot x}} \cdot \frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {\left(1 \cdot 1\right)}^{3}}{\left(\left({\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{4} + \left(\left(2 \cdot 2\right) \cdot \frac{1}{{\left(e^{-2 \cdot x} + 1\right)}^{2}}\right) \cdot \left(1 \cdot 1\right)\right) + {1}^{4}\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot x - \left(4.996 \cdot 10^{-16} \cdot {x}^{4} + 0.33333333333333348 \cdot {x}^{3}\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r65798 = 2.0;
double r65799 = 1.0;
double r65800 = -2.0;
double r65801 = x;
double r65802 = r65800 * r65801;
double r65803 = exp(r65802);
double r65804 = r65799 + r65803;
double r65805 = r65798 / r65804;
double r65806 = r65805 - r65799;
return r65806;
}
double f(double x, double __attribute__((unused)) y) {
double r65807 = -2.0;
double r65808 = x;
double r65809 = r65807 * r65808;
double r65810 = -0.16694293117624887;
bool r65811 = r65809 <= r65810;
double r65812 = 1.3471487435038969e-08;
bool r65813 = r65809 <= r65812;
double r65814 = !r65813;
bool r65815 = r65811 || r65814;
double r65816 = 2.0;
double r65817 = 1.0;
double r65818 = exp(r65809);
double r65819 = r65817 + r65818;
double r65820 = r65816 / r65819;
double r65821 = r65820 * r65820;
double r65822 = 3.0;
double r65823 = pow(r65821, r65822);
double r65824 = r65817 * r65817;
double r65825 = pow(r65824, r65822);
double r65826 = r65823 - r65825;
double r65827 = 4.0;
double r65828 = pow(r65820, r65827);
double r65829 = r65816 * r65816;
double r65830 = 1.0;
double r65831 = r65818 + r65817;
double r65832 = 2.0;
double r65833 = pow(r65831, r65832);
double r65834 = r65830 / r65833;
double r65835 = r65829 * r65834;
double r65836 = r65835 * r65824;
double r65837 = r65828 + r65836;
double r65838 = pow(r65817, r65827);
double r65839 = r65837 + r65838;
double r65840 = r65820 + r65817;
double r65841 = r65839 * r65840;
double r65842 = r65826 / r65841;
double r65843 = r65817 * r65808;
double r65844 = 4.996003610813204e-16;
double r65845 = pow(r65808, r65827);
double r65846 = r65844 * r65845;
double r65847 = 0.3333333333333335;
double r65848 = pow(r65808, r65822);
double r65849 = r65847 * r65848;
double r65850 = r65846 + r65849;
double r65851 = r65843 - r65850;
double r65852 = r65815 ? r65842 : r65851;
return r65852;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -0.16694293117624887 or 1.3471487435038969e-08 < (* -2.0 x) Initial program 0.2
rmApplied flip--0.2
rmApplied flip3--0.2
Applied associate-/l/0.2
Simplified0.2
if -0.16694293117624887 < (* -2.0 x) < 1.3471487435038969e-08Initial program 59.4
rmApplied flip--59.4
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2020047
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))