Average Error: 29.0 → 0.0
Time: 16.9s
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.008471190016557226:\\ \;\;\;\;\frac{2}{1 + e^{-2 \cdot x}} - 1\\ \mathbf{elif}\;x \le 0.007486431308016665:\\ \;\;\;\;x + \left(\frac{2}{15} \cdot \left(x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left(x \cdot x\right) \cdot \left(\frac{-1}{3} \cdot x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{1 + e^{-2 \cdot x}} - 1\\ \end{array}\]
\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;x \le -0.008471190016557226:\\
\;\;\;\;\frac{2}{1 + e^{-2 \cdot x}} - 1\\

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

\mathbf{else}:\\
\;\;\;\;\frac{2}{1 + e^{-2 \cdot x}} - 1\\

\end{array}
double f(double x, double __attribute__((unused)) y) {
        double r1717923 = 2.0;
        double r1717924 = 1.0;
        double r1717925 = -2.0;
        double r1717926 = x;
        double r1717927 = r1717925 * r1717926;
        double r1717928 = exp(r1717927);
        double r1717929 = r1717924 + r1717928;
        double r1717930 = r1717923 / r1717929;
        double r1717931 = r1717930 - r1717924;
        return r1717931;
}

double f(double x, double __attribute__((unused)) y) {
        double r1717932 = x;
        double r1717933 = -0.008471190016557226;
        bool r1717934 = r1717932 <= r1717933;
        double r1717935 = 2.0;
        double r1717936 = 1.0;
        double r1717937 = -2.0;
        double r1717938 = r1717937 * r1717932;
        double r1717939 = exp(r1717938);
        double r1717940 = r1717936 + r1717939;
        double r1717941 = r1717935 / r1717940;
        double r1717942 = r1717941 - r1717936;
        double r1717943 = 0.007486431308016665;
        bool r1717944 = r1717932 <= r1717943;
        double r1717945 = 0.13333333333333333;
        double r1717946 = r1717932 * r1717932;
        double r1717947 = r1717946 * r1717946;
        double r1717948 = r1717932 * r1717947;
        double r1717949 = r1717945 * r1717948;
        double r1717950 = -0.3333333333333333;
        double r1717951 = r1717950 * r1717932;
        double r1717952 = r1717946 * r1717951;
        double r1717953 = r1717949 + r1717952;
        double r1717954 = r1717932 + r1717953;
        double r1717955 = r1717944 ? r1717954 : r1717942;
        double r1717956 = r1717934 ? r1717942 : r1717955;
        return r1717956;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -0.008471190016557226 or 0.007486431308016665 < x

    1. Initial program 0.0

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

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

    if -0.008471190016557226 < x < 0.007486431308016665

    1. Initial program 59.0

      \[\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}{x \cdot \left(\frac{-1}{3} \cdot \left(x \cdot x\right)\right) + \left({x}^{5} \cdot \frac{2}{15} + x\right)}\]
    4. Using strategy rm
    5. Applied associate-+r+0.0

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

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

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

Reproduce

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