\frac{2}{1 + e^{-2 \cdot x}} - 1\begin{array}{l}
\mathbf{if}\;-2 \cdot x \leq -209.68920730807355:\\
\;\;\;\;\frac{\log \left({\left(e^{1 + \frac{2}{{\left(e^{-2 \cdot x}\right)}^{3} + {1}^{3}} \cdot \left(1 \cdot 1 + e^{-2 \cdot x} \cdot \left(e^{-2 \cdot x} - 1\right)\right)}\right)}^{\left(\frac{2}{{\left(e^{-2 \cdot x}\right)}^{3} + {1}^{3}} \cdot \left(1 \cdot 1 + e^{-2 \cdot x} \cdot \left(e^{-2 \cdot x} - 1\right)\right) - 1\right)}\right)}{1 + \frac{2}{e^{-2 \cdot x} + 1}}\\
\mathbf{elif}\;-2 \cdot x \leq 1.2623611574830718 \cdot 10^{-16}:\\
\;\;\;\;x \cdot 1 - {x}^{3} \cdot \left(x \cdot 5.551115123125783 \cdot 10^{-17} + 0.33333333333333337\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1} - 1 \cdot 1}{1 + \frac{2}{e^{-2 \cdot x} + 1}}\\
\end{array}(FPCore (x y) :precision binary64 (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))
(FPCore (x y)
:precision binary64
(if (<= (* -2.0 x) -209.68920730807355)
(/
(log
(pow
(exp
(+
1.0
(*
(/ 2.0 (+ (pow (exp (* -2.0 x)) 3.0) (pow 1.0 3.0)))
(+ (* 1.0 1.0) (* (exp (* -2.0 x)) (- (exp (* -2.0 x)) 1.0))))))
(-
(*
(/ 2.0 (+ (pow (exp (* -2.0 x)) 3.0) (pow 1.0 3.0)))
(+ (* 1.0 1.0) (* (exp (* -2.0 x)) (- (exp (* -2.0 x)) 1.0))))
1.0)))
(+ 1.0 (/ 2.0 (+ (exp (* -2.0 x)) 1.0))))
(if (<= (* -2.0 x) 1.2623611574830718e-16)
(-
(* x 1.0)
(* (pow x 3.0) (+ (* x 5.551115123125783e-17) 0.33333333333333337)))
(/
(-
(* (/ 2.0 (+ (exp (* -2.0 x)) 1.0)) (/ 2.0 (+ (exp (* -2.0 x)) 1.0)))
(* 1.0 1.0))
(+ 1.0 (/ 2.0 (+ (exp (* -2.0 x)) 1.0)))))))double code(double x, double y) {
return ((double) ((2.0 / ((double) (1.0 + ((double) exp(((double) (-2.0 * x))))))) - 1.0));
}
double code(double x, double y) {
double tmp;
if ((((double) (-2.0 * x)) <= -209.68920730807355)) {
tmp = (((double) log(((double) pow(((double) exp(((double) (1.0 + ((double) ((2.0 / ((double) (((double) pow(((double) exp(((double) (-2.0 * x)))), 3.0)) + ((double) pow(1.0, 3.0))))) * ((double) (((double) (1.0 * 1.0)) + ((double) (((double) exp(((double) (-2.0 * x)))) * ((double) (((double) exp(((double) (-2.0 * x)))) - 1.0)))))))))))), ((double) (((double) ((2.0 / ((double) (((double) pow(((double) exp(((double) (-2.0 * x)))), 3.0)) + ((double) pow(1.0, 3.0))))) * ((double) (((double) (1.0 * 1.0)) + ((double) (((double) exp(((double) (-2.0 * x)))) * ((double) (((double) exp(((double) (-2.0 * x)))) - 1.0)))))))) - 1.0)))))) / ((double) (1.0 + (2.0 / ((double) (((double) exp(((double) (-2.0 * x)))) + 1.0))))));
} else {
double tmp_1;
if ((((double) (-2.0 * x)) <= 1.2623611574830718e-16)) {
tmp_1 = ((double) (((double) (x * 1.0)) - ((double) (((double) pow(x, 3.0)) * ((double) (((double) (x * 5.551115123125783e-17)) + 0.33333333333333337))))));
} else {
tmp_1 = (((double) (((double) ((2.0 / ((double) (((double) exp(((double) (-2.0 * x)))) + 1.0))) * (2.0 / ((double) (((double) exp(((double) (-2.0 * x)))) + 1.0))))) - ((double) (1.0 * 1.0)))) / ((double) (1.0 + (2.0 / ((double) (((double) exp(((double) (-2.0 * x)))) + 1.0))))));
}
tmp = tmp_1;
}
return tmp;
}



Bits error versus x



Bits error versus y
Results
if (* -2.0 x) < -209.68920730807355Initial program Error: 0 bits
rmApplied flip--Error: 0 bits
SimplifiedError: 0 bits
rmApplied flip3-+Error: 0 bits
Applied associate-/r/Error: 0 bits
Applied flip3-+Error: 0 bits
Applied associate-/r/Error: 0 bits
Applied swap-sqrError: 0 bits
SimplifiedError: 0 bits
rmApplied add-log-expError: 0 bits
Applied add-log-expError: 0 bits
Applied diff-logError: 0 bits
SimplifiedError: 0 bits
if -209.68920730807355 < (* -2.0 x) < 1.26236115748307184e-16Initial program Error: 59.2 bits
Taylor expanded around 0 Error: 0.4 bits
SimplifiedError: 0.4 bits
if 1.26236115748307184e-16 < (* -2.0 x) Initial program Error: 1.2 bits
rmApplied flip--Error: 1.2 bits
SimplifiedError: 1.2 bits
Final simplificationError: 0.5 bits
herbie shell --seed 2020205
(FPCore (x y)
:name "Logistic function from Lakshay Garg"
:precision binary64
(- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))