Average Error: 29.4 → 0.2
Time: 12.6s
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;-2 \cdot x \le -0.448110715835612849:\\ \;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{2}{1 + e^{-2 \cdot x}} - 1}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\ \mathbf{elif}\;-2 \cdot x \le 5.632744022585048 \cdot 10^{-10}:\\ \;\;\;\;1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{\frac{{\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}}\right)}^{4}}{1} - \frac{1 \cdot 1}{1}}{\frac{2}{1 + e^{-2 \cdot x}} + 1}}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\ \end{array}\]
\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.448110715835612849:\\
\;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{2}{1 + e^{-2 \cdot x}} - 1}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\

\mathbf{elif}\;-2 \cdot x \le 5.632744022585048 \cdot 10^{-10}:\\
\;\;\;\;1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)\\

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

\end{array}
double f(double x, double __attribute__((unused)) y) {
        double r99688 = 2.0;
        double r99689 = 1.0;
        double r99690 = -2.0;
        double r99691 = x;
        double r99692 = r99690 * r99691;
        double r99693 = exp(r99692);
        double r99694 = r99689 + r99693;
        double r99695 = r99688 / r99694;
        double r99696 = r99695 - r99689;
        return r99696;
}

double f(double x, double __attribute__((unused)) y) {
        double r99697 = -2.0;
        double r99698 = x;
        double r99699 = r99697 * r99698;
        double r99700 = -0.44811071583561285;
        bool r99701 = r99699 <= r99700;
        double r99702 = 2.0;
        double r99703 = 1.0;
        double r99704 = exp(r99699);
        double r99705 = r99703 + r99704;
        double r99706 = r99702 / r99705;
        double r99707 = sqrt(r99706);
        double r99708 = sqrt(r99703);
        double r99709 = r99707 + r99708;
        double r99710 = r99706 - r99703;
        double r99711 = r99710 / r99709;
        double r99712 = r99709 * r99711;
        double r99713 = 5.632744022585048e-10;
        bool r99714 = r99699 <= r99713;
        double r99715 = r99703 * r99698;
        double r99716 = 5.551115123125783e-17;
        double r99717 = 4.0;
        double r99718 = pow(r99698, r99717);
        double r99719 = r99716 * r99718;
        double r99720 = 0.33333333333333337;
        double r99721 = 3.0;
        double r99722 = pow(r99698, r99721);
        double r99723 = r99720 * r99722;
        double r99724 = r99719 + r99723;
        double r99725 = r99715 - r99724;
        double r99726 = pow(r99707, r99717);
        double r99727 = 1.0;
        double r99728 = r99726 / r99727;
        double r99729 = r99703 * r99703;
        double r99730 = r99729 / r99727;
        double r99731 = r99728 - r99730;
        double r99732 = r99706 + r99703;
        double r99733 = r99731 / r99732;
        double r99734 = r99733 / r99709;
        double r99735 = r99709 * r99734;
        double r99736 = r99714 ? r99725 : r99735;
        double r99737 = r99701 ? r99712 : r99736;
        return r99737;
}

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 3 regimes
  2. if (* -2.0 x) < -0.44811071583561285

    1. Initial program 0.0

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

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

      \[\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-squares1.0

      \[\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 flip--1.6

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

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

    if -0.44811071583561285 < (* -2.0 x) < 5.632744022585048e-10

    1. Initial program 59.4

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

      \[\leadsto \color{blue}{1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)}\]

    if 5.632744022585048e-10 < (* -2.0 x)

    1. Initial program 0.5

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

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

      \[\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.5

      \[\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 flip--0.5

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;-2 \cdot x \le -0.448110715835612849:\\ \;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{2}{1 + e^{-2 \cdot x}} - 1}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\ \mathbf{elif}\;-2 \cdot x \le 5.632744022585048 \cdot 10^{-10}:\\ \;\;\;\;1 \cdot x - \left(5.55112 \cdot 10^{-17} \cdot {x}^{4} + 0.33333333333333337 \cdot {x}^{3}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}\right) \cdot \frac{\frac{\frac{{\left(\sqrt{\frac{2}{1 + e^{-2 \cdot x}}}\right)}^{4}}{1} - \frac{1 \cdot 1}{1}}{\frac{2}{1 + e^{-2 \cdot x}} + 1}}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\\ \end{array}\]

Reproduce

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