\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;x \le -0.008058366041537793:\\
\;\;\;\;\frac{2}{e^{-2 \cdot x} + 1} - 1\\
\mathbf{elif}\;x \le 0.006522581402346801:\\
\;\;\;\;\mathsf{fma}\left(\frac{-1}{3}, \left(x \cdot \left(x \cdot x\right)\right), \left(\mathsf{fma}\left(\left({x}^{5}\right), \frac{2}{15}, x\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\mathsf{fma}\left(\left(\mathsf{fma}\left(\left(e^{-2 \cdot x}\right), \left(e^{-2 \cdot x}\right), 1\right) - e^{-2 \cdot x}\right), \left(\frac{2}{\mathsf{fma}\left(\left(\sqrt{e^{-2 \cdot x}} \cdot e^{-2 \cdot x}\right), \left(\sqrt{e^{-2 \cdot x}} \cdot e^{-2 \cdot x}\right), 1\right)}\right), -1\right)}\right)\\
\end{array}double f(double x, double __attribute__((unused)) y) {
double r1349169 = 2.0;
double r1349170 = 1.0;
double r1349171 = -2.0;
double r1349172 = x;
double r1349173 = r1349171 * r1349172;
double r1349174 = exp(r1349173);
double r1349175 = r1349170 + r1349174;
double r1349176 = r1349169 / r1349175;
double r1349177 = r1349176 - r1349170;
return r1349177;
}
double f(double x, double __attribute__((unused)) y) {
double r1349178 = x;
double r1349179 = -0.008058366041537793;
bool r1349180 = r1349178 <= r1349179;
double r1349181 = 2.0;
double r1349182 = -2.0;
double r1349183 = r1349182 * r1349178;
double r1349184 = exp(r1349183);
double r1349185 = 1.0;
double r1349186 = r1349184 + r1349185;
double r1349187 = r1349181 / r1349186;
double r1349188 = r1349187 - r1349185;
double r1349189 = 0.006522581402346801;
bool r1349190 = r1349178 <= r1349189;
double r1349191 = -0.3333333333333333;
double r1349192 = r1349178 * r1349178;
double r1349193 = r1349178 * r1349192;
double r1349194 = 5.0;
double r1349195 = pow(r1349178, r1349194);
double r1349196 = 0.13333333333333333;
double r1349197 = fma(r1349195, r1349196, r1349178);
double r1349198 = fma(r1349191, r1349193, r1349197);
double r1349199 = fma(r1349184, r1349184, r1349185);
double r1349200 = r1349199 - r1349184;
double r1349201 = sqrt(r1349184);
double r1349202 = r1349201 * r1349184;
double r1349203 = fma(r1349202, r1349202, r1349185);
double r1349204 = r1349181 / r1349203;
double r1349205 = -1.0;
double r1349206 = fma(r1349200, r1349204, r1349205);
double r1349207 = exp(r1349206);
double r1349208 = log(r1349207);
double r1349209 = r1349190 ? r1349198 : r1349208;
double r1349210 = r1349180 ? r1349188 : r1349209;
return r1349210;
}



Bits error versus x



Bits error versus y
if x < -0.008058366041537793Initial program 0.0
Taylor expanded around -inf 0.0
Simplified0.0
if -0.008058366041537793 < x < 0.006522581402346801Initial program 59.0
Taylor expanded around 0 0.0
Simplified0.0
if 0.006522581402346801 < x Initial program 0.0
Taylor expanded around -inf 0.0
Simplified0.0
rmApplied flip3-+0.0
Applied associate-/r/0.0
Applied fma-neg0.0
Simplified0.0
rmApplied add-log-exp0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019129 +o rules:numerics
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
(- (/ 2 (+ 1 (exp (* -2 x)))) 1))