\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.004082410410843178780182505249740643193945 \lor \neg \left(-2 \cdot x \le 2.401292736694836651360589196979589132752 \cdot 10^{-5}\right):\\
\;\;\;\;\frac{\log \left(\sqrt{{\left({\left(e^{1}\right)}^{\left(\frac{\sqrt{2}}{{\left(e^{-2 \cdot x} + 1\right)}^{2}}\right)}\right)}^{\left(\frac{\sqrt{2}}{\frac{1}{2}}\right)}}\right) + \left(\log \left(\sqrt{{\left({\left(e^{1}\right)}^{\left(\frac{\sqrt{2}}{{\left(e^{-2 \cdot x} + 1\right)}^{2}}\right)}\right)}^{\left(\frac{\sqrt{2}}{\frac{1}{2}}\right)}}\right) - 1 \cdot 1\right)}{\frac{2}{1 + e^{-2 \cdot x}} + 1}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4} + 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r60144 = 2.0;
double r60145 = 1.0;
double r60146 = -2.0;
double r60147 = x;
double r60148 = r60146 * r60147;
double r60149 = exp(r60148);
double r60150 = r60145 + r60149;
double r60151 = r60144 / r60150;
double r60152 = r60151 - r60145;
return r60152;
}
double f(double x, double __attribute__((unused)) y) {
double r60153 = -2.0;
double r60154 = x;
double r60155 = r60153 * r60154;
double r60156 = -0.004082410410843179;
bool r60157 = r60155 <= r60156;
double r60158 = 2.4012927366948367e-05;
bool r60159 = r60155 <= r60158;
double r60160 = !r60159;
bool r60161 = r60157 || r60160;
double r60162 = 1.0;
double r60163 = exp(r60162);
double r60164 = 2.0;
double r60165 = sqrt(r60164);
double r60166 = exp(r60155);
double r60167 = 1.0;
double r60168 = r60166 + r60167;
double r60169 = 2.0;
double r60170 = pow(r60168, r60169);
double r60171 = r60165 / r60170;
double r60172 = pow(r60163, r60171);
double r60173 = r60162 / r60164;
double r60174 = r60165 / r60173;
double r60175 = pow(r60172, r60174);
double r60176 = sqrt(r60175);
double r60177 = log(r60176);
double r60178 = r60167 * r60167;
double r60179 = r60177 - r60178;
double r60180 = r60177 + r60179;
double r60181 = r60167 + r60166;
double r60182 = r60164 / r60181;
double r60183 = r60182 + r60167;
double r60184 = r60180 / r60183;
double r60185 = r60167 * r60154;
double r60186 = 5.551115123125783e-17;
double r60187 = 4.0;
double r60188 = pow(r60154, r60187);
double r60189 = r60186 * r60188;
double r60190 = 0.33333333333333337;
double r60191 = 3.0;
double r60192 = pow(r60154, r60191);
double r60193 = r60190 * r60192;
double r60194 = r60189 + r60193;
double r60195 = r60185 - r60194;
double r60196 = r60161 ? r60184 : r60195;
return r60196;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -0.004082410410843179 or 2.4012927366948367e-05 < (* -2.0 x) Initial program 0.1
rmApplied flip--0.1
rmApplied add-log-exp0.1
Simplified0.1
rmApplied div-inv0.1
Applied add-sqr-sqrt0.6
Applied times-frac0.6
Applied pow-unpow0.1
rmApplied add-sqr-sqrt0.1
Applied log-prod0.1
Applied associate--l+0.1
if -0.004082410410843179 < (* -2.0 x) < 2.4012927366948367e-05Initial program 59.2
Taylor expanded around 0 0.0
Final simplification0.0
herbie shell --seed 2019294
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))