Average Error: 29.4 → 0.0
Time: 2.0m
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.006924991008319216:\\ \;\;\;\;\frac{2}{e^{-2 \cdot x} + 1} - 1\\ \mathbf{elif}\;x \le 0.007564632236305705:\\ \;\;\;\;\left(\left(\frac{-1}{3} \cdot \left(x \cdot x\right)\right) \cdot x + x\right) + {x}^{5} \cdot \frac{2}{15}\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(\frac{2}{e^{-2 \cdot x} + 1}\right)}^{3} - 1}{\frac{\frac{1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}}{1 + \frac{2}{e^{-2 \cdot x} + 1}} \cdot \left(2 \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) + \left(1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}{\left(1 - \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}}\\ \end{array}\]
double f(double x, double __attribute__((unused)) y) {
        double r12436912 = 2.0;
        double r12436913 = 1.0;
        double r12436914 = -2.0;
        double r12436915 = x;
        double r12436916 = r12436914 * r12436915;
        double r12436917 = exp(r12436916);
        double r12436918 = r12436913 + r12436917;
        double r12436919 = r12436912 / r12436918;
        double r12436920 = r12436919 - r12436913;
        return r12436920;
}

double f(double x, double __attribute__((unused)) y) {
        double r12436921 = x;
        double r12436922 = -0.006924991008319216;
        bool r12436923 = r12436921 <= r12436922;
        double r12436924 = 2.0;
        double r12436925 = -2.0;
        double r12436926 = r12436925 * r12436921;
        double r12436927 = exp(r12436926);
        double r12436928 = 1.0;
        double r12436929 = r12436927 + r12436928;
        double r12436930 = r12436924 / r12436929;
        double r12436931 = r12436930 - r12436928;
        double r12436932 = 0.007564632236305705;
        bool r12436933 = r12436921 <= r12436932;
        double r12436934 = -0.3333333333333333;
        double r12436935 = r12436921 * r12436921;
        double r12436936 = r12436934 * r12436935;
        double r12436937 = r12436936 * r12436921;
        double r12436938 = r12436937 + r12436921;
        double r12436939 = 5.0;
        double r12436940 = pow(r12436921, r12436939);
        double r12436941 = 0.13333333333333333;
        double r12436942 = r12436940 * r12436941;
        double r12436943 = r12436938 + r12436942;
        double r12436944 = 3.0;
        double r12436945 = pow(r12436930, r12436944);
        double r12436946 = r12436945 - r12436928;
        double r12436947 = r12436930 * r12436930;
        double r12436948 = r12436928 - r12436947;
        double r12436949 = r12436928 + r12436930;
        double r12436950 = r12436948 / r12436949;
        double r12436951 = r12436924 * r12436930;
        double r12436952 = r12436950 * r12436951;
        double r12436953 = r12436948 * r12436929;
        double r12436954 = r12436952 + r12436953;
        double r12436955 = r12436928 - r12436930;
        double r12436956 = r12436955 * r12436929;
        double r12436957 = r12436954 / r12436956;
        double r12436958 = r12436946 / r12436957;
        double r12436959 = r12436933 ? r12436943 : r12436958;
        double r12436960 = r12436923 ? r12436931 : r12436959;
        return r12436960;
}

\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;x \le -0.006924991008319216:\\
\;\;\;\;\frac{2}{e^{-2 \cdot x} + 1} - 1\\

\mathbf{elif}\;x \le 0.007564632236305705:\\
\;\;\;\;\left(\left(\frac{-1}{3} \cdot \left(x \cdot x\right)\right) \cdot x + x\right) + {x}^{5} \cdot \frac{2}{15}\\

\mathbf{else}:\\
\;\;\;\;\frac{{\left(\frac{2}{e^{-2 \cdot x} + 1}\right)}^{3} - 1}{\frac{\frac{1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}}{1 + \frac{2}{e^{-2 \cdot x} + 1}} \cdot \left(2 \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) + \left(1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}{\left(1 - \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}}\\

\end{array}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Split input into 3 regimes
  2. if x < -0.006924991008319216

    1. Initial program 0.0

      \[\frac{2}{1 + e^{-2 \cdot x}} - 1\]

    if -0.006924991008319216 < x < 0.007564632236305705

    1. Initial program 59.1

      \[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
    2. Taylor expanded around 0 0.0

      \[\leadsto \color{blue}{\left(x + \frac{2}{15} \cdot {x}^{5}\right) - \frac{1}{3} \cdot {x}^{3}}\]
    3. Simplified0.0

      \[\leadsto \color{blue}{\left(\left(\left(x \cdot x\right) \cdot \frac{-1}{3}\right) \cdot x + x\right) + {x}^{5} \cdot \frac{2}{15}}\]

    if 0.007564632236305705 < x

    1. Initial program 0.0

      \[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
    2. Using strategy rm
    3. Applied flip3--0.0

      \[\leadsto \color{blue}{\frac{{\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {1}^{3}}{\frac{2}{1 + e^{-2 \cdot x}} \cdot \frac{2}{1 + e^{-2 \cdot x}} + \left(1 \cdot 1 + \frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}}\]
    4. Using strategy rm
    5. Applied flip-+0.0

      \[\leadsto \frac{{\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {1}^{3}}{\frac{2}{1 + e^{-2 \cdot x}} \cdot \frac{2}{1 + e^{-2 \cdot x}} + \color{blue}{\frac{\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}{1 \cdot 1 - \frac{2}{1 + e^{-2 \cdot x}} \cdot 1}}}\]
    6. Applied associate-*l/0.0

      \[\leadsto \frac{{\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {1}^{3}}{\color{blue}{\frac{2 \cdot \frac{2}{1 + e^{-2 \cdot x}}}{1 + e^{-2 \cdot x}}} + \frac{\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}{1 \cdot 1 - \frac{2}{1 + e^{-2 \cdot x}} \cdot 1}}\]
    7. Applied frac-add0.0

      \[\leadsto \frac{{\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {1}^{3}}{\color{blue}{\frac{\left(2 \cdot \frac{2}{1 + e^{-2 \cdot x}}\right) \cdot \left(1 \cdot 1 - \frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) + \left(1 + e^{-2 \cdot x}\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)\right)}{\left(1 + e^{-2 \cdot x}\right) \cdot \left(1 \cdot 1 - \frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}}}\]
    8. Using strategy rm
    9. Applied flip--0.0

      \[\leadsto \frac{{\left(\frac{2}{1 + e^{-2 \cdot x}}\right)}^{3} - {1}^{3}}{\frac{\left(2 \cdot \frac{2}{1 + e^{-2 \cdot x}}\right) \cdot \color{blue}{\frac{\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}{1 \cdot 1 + \frac{2}{1 + e^{-2 \cdot x}} \cdot 1}} + \left(1 + e^{-2 \cdot x}\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right) \cdot \left(\frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)\right)}{\left(1 + e^{-2 \cdot x}\right) \cdot \left(1 \cdot 1 - \frac{2}{1 + e^{-2 \cdot x}} \cdot 1\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.006924991008319216:\\ \;\;\;\;\frac{2}{e^{-2 \cdot x} + 1} - 1\\ \mathbf{elif}\;x \le 0.007564632236305705:\\ \;\;\;\;\left(\left(\frac{-1}{3} \cdot \left(x \cdot x\right)\right) \cdot x + x\right) + {x}^{5} \cdot \frac{2}{15}\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(\frac{2}{e^{-2 \cdot x} + 1}\right)}^{3} - 1}{\frac{\frac{1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}}{1 + \frac{2}{e^{-2 \cdot x} + 1}} \cdot \left(2 \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) + \left(1 - \frac{2}{e^{-2 \cdot x} + 1} \cdot \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}{\left(1 - \frac{2}{e^{-2 \cdot x} + 1}\right) \cdot \left(e^{-2 \cdot x} + 1\right)}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019101 
(FPCore (x y)
  :name "Logistic function from Lakshay Garg"
  (- (/ 2 (+ 1 (exp (* -2 x)))) 1))