Average Error: 29.2 → 0.5
Time: 26.4s
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;-2 \cdot x \le -1147158.01509999507106840610504150390625:\\ \;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\ \mathbf{elif}\;-2 \cdot x \le 9.326698951531978754675718365670100684639 \cdot 10^{-11}:\\ \;\;\;\;1 \cdot x - \mathsf{fma}\left(x \cdot \left(x \cdot x\right), 0.3333333333333333703407674875052180141211, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 5.5511151231257827021181583404541015625 \cdot 10^{-17}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\ \end{array}\]
\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -1147158.01509999507106840610504150390625:\\
\;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\

\mathbf{elif}\;-2 \cdot x \le 9.326698951531978754675718365670100684639 \cdot 10^{-11}:\\
\;\;\;\;1 \cdot x - \mathsf{fma}\left(x \cdot \left(x \cdot x\right), 0.3333333333333333703407674875052180141211, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 5.5511151231257827021181583404541015625 \cdot 10^{-17}\right)\\

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

\end{array}
double f(double x, double __attribute__((unused)) y) {
        double r2724413 = 2.0;
        double r2724414 = 1.0;
        double r2724415 = -2.0;
        double r2724416 = x;
        double r2724417 = r2724415 * r2724416;
        double r2724418 = exp(r2724417);
        double r2724419 = r2724414 + r2724418;
        double r2724420 = r2724413 / r2724419;
        double r2724421 = r2724420 - r2724414;
        return r2724421;
}

double f(double x, double __attribute__((unused)) y) {
        double r2724422 = -2.0;
        double r2724423 = x;
        double r2724424 = r2724422 * r2724423;
        double r2724425 = -1147158.015099995;
        bool r2724426 = r2724424 <= r2724425;
        double r2724427 = 1.0;
        double r2724428 = sqrt(r2724427);
        double r2724429 = 2.0;
        double r2724430 = exp(r2724424);
        double r2724431 = r2724430 + r2724427;
        double r2724432 = r2724429 / r2724431;
        double r2724433 = sqrt(r2724432);
        double r2724434 = r2724428 + r2724433;
        double r2724435 = r2724434 * r2724434;
        double r2724436 = r2724435 * r2724434;
        double r2724437 = r2724433 - r2724428;
        double r2724438 = r2724437 * r2724437;
        double r2724439 = r2724437 * r2724438;
        double r2724440 = r2724436 * r2724439;
        double r2724441 = cbrt(r2724440);
        double r2724442 = 9.326698951531979e-11;
        bool r2724443 = r2724424 <= r2724442;
        double r2724444 = r2724427 * r2724423;
        double r2724445 = r2724423 * r2724423;
        double r2724446 = r2724423 * r2724445;
        double r2724447 = 0.33333333333333337;
        double r2724448 = r2724445 * r2724445;
        double r2724449 = 5.551115123125783e-17;
        double r2724450 = r2724448 * r2724449;
        double r2724451 = fma(r2724446, r2724447, r2724450);
        double r2724452 = r2724444 - r2724451;
        double r2724453 = r2724443 ? r2724452 : r2724441;
        double r2724454 = r2724426 ? r2724441 : r2724453;
        return r2724454;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Split input into 2 regimes
  2. if (* -2.0 x) < -1147158.015099995 or 9.326698951531979e-11 < (* -2.0 x)

    1. Initial program 0.2

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

      \[\leadsto \frac{2}{1 + e^{-2 \cdot x}} - \color{blue}{\sqrt{1} \cdot \sqrt{1}}\]
    4. Applied add-sqr-sqrt1.0

      \[\leadsto \color{blue}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} \cdot \sqrt{\frac{2}{1 + e^{-2 \cdot x}}}} - \sqrt{1} \cdot \sqrt{1}\]
    5. Applied difference-of-squares0.7

      \[\leadsto \color{blue}{\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)}\]
    6. Using strategy rm
    7. Applied add-cbrt-cube0.7

      \[\leadsto \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)}}\]
    8. Applied add-cbrt-cube0.2

      \[\leadsto \color{blue}{\sqrt[3]{\left(\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right)\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right)}} \cdot \sqrt[3]{\left(\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)\right) \cdot \left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}\right)}\]
    9. Applied cbrt-unprod0.2

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

    if -1147158.015099995 < (* -2.0 x) < 9.326698951531979e-11

    1. Initial program 58.5

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

      \[\leadsto \color{blue}{1 \cdot x - \left(0.3333333333333333703407674875052180141211 \cdot {x}^{3} + 5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4}\right)}\]
    3. Simplified0.8

      \[\leadsto \color{blue}{x \cdot 1 - \mathsf{fma}\left(\left(x \cdot x\right) \cdot x, 0.3333333333333333703407674875052180141211, 5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;-2 \cdot x \le -1147158.01509999507106840610504150390625:\\ \;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\ \mathbf{elif}\;-2 \cdot x \le 9.326698951531978754675718365670100684639 \cdot 10^{-11}:\\ \;\;\;\;1 \cdot x - \mathsf{fma}\left(x \cdot \left(x \cdot x\right), 0.3333333333333333703407674875052180141211, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 5.5511151231257827021181583404541015625 \cdot 10^{-17}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\left(\left(\left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\sqrt{1} + \sqrt{\frac{2}{e^{-2 \cdot x} + 1}}\right)\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right) \cdot \left(\sqrt{\frac{2}{e^{-2 \cdot x} + 1}} - \sqrt{1}\right)\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y)
  :name "Logistic function from Lakshay Garg"
  (- (/ 2.0 (+ 1.0 (exp (* -2.0 x)))) 1.0))