Average Error: 28.9 → 0.1
Time: 7.0s
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;-2 \cdot x \le -0.04639353646233555783506830039186752401292:\\ \;\;\;\;\frac{\left(-1 \cdot 1\right) + \frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\\ \mathbf{elif}\;-2 \cdot x \le 7.357856183748689123394269679412382258177 \cdot 10^{-11}:\\ \;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4} + 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\left(0 - 1 \cdot 1\right) + \frac{2}{\frac{{\left(\left|e^{-2 \cdot x} + 1\right|\right)}^{2}}{2}}}\right)}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\\ \end{array}\]
\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.04639353646233555783506830039186752401292:\\
\;\;\;\;\frac{\left(-1 \cdot 1\right) + \frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\\

\mathbf{elif}\;-2 \cdot x \le 7.357856183748689123394269679412382258177 \cdot 10^{-11}:\\
\;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4} + 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\right)\\

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

\end{array}
double f(double x, double __attribute__((unused)) y) {
        double r63551 = 2.0;
        double r63552 = 1.0;
        double r63553 = -2.0;
        double r63554 = x;
        double r63555 = r63553 * r63554;
        double r63556 = exp(r63555);
        double r63557 = r63552 + r63556;
        double r63558 = r63551 / r63557;
        double r63559 = r63558 - r63552;
        return r63559;
}

double f(double x, double __attribute__((unused)) y) {
        double r63560 = -2.0;
        double r63561 = x;
        double r63562 = r63560 * r63561;
        double r63563 = -0.04639353646233556;
        bool r63564 = r63562 <= r63563;
        double r63565 = 1.0;
        double r63566 = r63565 * r63565;
        double r63567 = -r63566;
        double r63568 = 2.0;
        double r63569 = r63568 * r63568;
        double r63570 = exp(r63562);
        double r63571 = r63565 + r63570;
        double r63572 = fabs(r63571);
        double r63573 = r63569 / r63572;
        double r63574 = r63573 / r63572;
        double r63575 = r63567 + r63574;
        double r63576 = sqrt(r63571);
        double r63577 = 4.0;
        double r63578 = pow(r63576, r63577);
        double r63579 = 0.5;
        double r63580 = pow(r63578, r63579);
        double r63581 = r63568 / r63580;
        double r63582 = r63581 + r63565;
        double r63583 = r63575 / r63582;
        double r63584 = 7.357856183748689e-11;
        bool r63585 = r63562 <= r63584;
        double r63586 = r63565 * r63561;
        double r63587 = 5.551115123125783e-17;
        double r63588 = pow(r63561, r63577);
        double r63589 = r63587 * r63588;
        double r63590 = 0.33333333333333337;
        double r63591 = 3.0;
        double r63592 = pow(r63561, r63591);
        double r63593 = r63590 * r63592;
        double r63594 = r63589 + r63593;
        double r63595 = r63586 - r63594;
        double r63596 = 0.0;
        double r63597 = r63596 - r63566;
        double r63598 = r63570 + r63565;
        double r63599 = fabs(r63598);
        double r63600 = 2.0;
        double r63601 = pow(r63599, r63600);
        double r63602 = r63601 / r63568;
        double r63603 = r63568 / r63602;
        double r63604 = r63597 + r63603;
        double r63605 = exp(r63604);
        double r63606 = log(r63605);
        double r63607 = r63606 / r63582;
        double r63608 = r63585 ? r63595 : r63607;
        double r63609 = r63564 ? r63583 : r63608;
        return r63609;
}

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.04639353646233556

    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}{\color{blue}{\sqrt{1 + e^{-2 \cdot x}} \cdot \sqrt{1 + e^{-2 \cdot x}}}} - 1\]
    4. Using strategy rm
    5. Applied pow10.0

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

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

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

      \[\leadsto \frac{2}{\color{blue}{{\left(1 + e^{-2 \cdot x}\right)}^{\left(\frac{1}{2}\right)}} \cdot {\left(1 + e^{-2 \cdot x}\right)}^{\left(\frac{1}{2}\right)}} - 1\]
    9. Applied pow-prod-down0.0

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

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

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

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

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

    if -0.04639353646233556 < (* -2.0 x) < 7.357856183748689e-11

    1. Initial program 59.5

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

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

    if 7.357856183748689e-11 < (* -2.0 x)

    1. Initial program 0.4

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

      \[\leadsto \frac{2}{\color{blue}{\sqrt{1 + e^{-2 \cdot x}} \cdot \sqrt{1 + e^{-2 \cdot x}}}} - 1\]
    4. Using strategy rm
    5. Applied pow10.5

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

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

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

      \[\leadsto \frac{2}{\color{blue}{{\left(1 + e^{-2 \cdot x}\right)}^{\left(\frac{1}{2}\right)}} \cdot {\left(1 + e^{-2 \cdot x}\right)}^{\left(\frac{1}{2}\right)}} - 1\]
    9. Applied pow-prod-down0.4

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

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

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

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

      \[\leadsto \frac{\left(-1 \cdot 1\right) + \frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}{\color{blue}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}}\]
    15. Using strategy rm
    16. Applied add-log-exp0.4

      \[\leadsto \frac{\left(-1 \cdot 1\right) + \color{blue}{\log \left(e^{\frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}\right)}}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\]
    17. Applied add-log-exp0.4

      \[\leadsto \frac{\left(-\color{blue}{\log \left(e^{1 \cdot 1}\right)}\right) + \log \left(e^{\frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}\right)}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\]
    18. Applied neg-log0.4

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1}{e^{1 \cdot 1}}\right)} + \log \left(e^{\frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}\right)}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\]
    19. Applied sum-log0.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;-2 \cdot x \le -0.04639353646233555783506830039186752401292:\\ \;\;\;\;\frac{\left(-1 \cdot 1\right) + \frac{\frac{2 \cdot 2}{\left|1 + e^{-2 \cdot x}\right|}}{\left|1 + e^{-2 \cdot x}\right|}}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\\ \mathbf{elif}\;-2 \cdot x \le 7.357856183748689123394269679412382258177 \cdot 10^{-11}:\\ \;\;\;\;1 \cdot x - \left(5.5511151231257827021181583404541015625 \cdot 10^{-17} \cdot {x}^{4} + 0.3333333333333333703407674875052180141211 \cdot {x}^{3}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\left(0 - 1 \cdot 1\right) + \frac{2}{\frac{{\left(\left|e^{-2 \cdot x} + 1\right|\right)}^{2}}{2}}}\right)}{\frac{2}{{\left({\left(\sqrt{1 + e^{-2 \cdot x}}\right)}^{4}\right)}^{\frac{1}{2}}} + 1}\\ \end{array}\]

Reproduce

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