Average Error: 29.5 → 0.0
Time: 6.7s
Precision: 64
\[\frac{2}{1 + e^{-2 \cdot x}} - 1\]
\[\begin{array}{l} \mathbf{if}\;-2 \cdot x \le -0.0066854960496659944:\\ \;\;\;\;\left(\sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1} \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\ \mathbf{elif}\;-2 \cdot x \le 4.05655490242564146 \cdot 10^{-4}:\\ \;\;\;\;\mathsf{fma}\left(1, x, -\mathsf{fma}\left(5.55112 \cdot 10^{-17}, {x}^{4}, 0.33333333333333337 \cdot {x}^{3}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\right) \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sqrt{\frac{\sqrt[3]{2} \cdot \sqrt[3]{2}}{1}}, \sqrt{\frac{\sqrt[3]{2}}{1 + e^{-2 \cdot x}}}, -\sqrt{1}\right)} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}}\right)\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\ \end{array}\]
\frac{2}{1 + e^{-2 \cdot x}} - 1
\begin{array}{l}
\mathbf{if}\;-2 \cdot x \le -0.0066854960496659944:\\
\;\;\;\;\left(\sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1} \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\\

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

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

\end{array}
double f(double x, double __attribute__((unused)) y) {
        double r66021 = 2.0;
        double r66022 = 1.0;
        double r66023 = -2.0;
        double r66024 = x;
        double r66025 = r66023 * r66024;
        double r66026 = exp(r66025);
        double r66027 = r66022 + r66026;
        double r66028 = r66021 / r66027;
        double r66029 = r66028 - r66022;
        return r66029;
}

double f(double x, double __attribute__((unused)) y) {
        double r66030 = -2.0;
        double r66031 = x;
        double r66032 = r66030 * r66031;
        double r66033 = -0.006685496049665994;
        bool r66034 = r66032 <= r66033;
        double r66035 = 2.0;
        double r66036 = 1.0;
        double r66037 = exp(r66032);
        double r66038 = r66036 + r66037;
        double r66039 = r66035 / r66038;
        double r66040 = r66039 - r66036;
        double r66041 = cbrt(r66040);
        double r66042 = r66041 * r66041;
        double r66043 = r66042 * r66041;
        double r66044 = 0.00040565549024256415;
        bool r66045 = r66032 <= r66044;
        double r66046 = 5.551115123125783e-17;
        double r66047 = 4.0;
        double r66048 = pow(r66031, r66047);
        double r66049 = 0.33333333333333337;
        double r66050 = 3.0;
        double r66051 = pow(r66031, r66050);
        double r66052 = r66049 * r66051;
        double r66053 = fma(r66046, r66048, r66052);
        double r66054 = -r66053;
        double r66055 = fma(r66036, r66031, r66054);
        double r66056 = sqrt(r66039);
        double r66057 = sqrt(r66036);
        double r66058 = r66056 + r66057;
        double r66059 = cbrt(r66058);
        double r66060 = r66059 * r66059;
        double r66061 = cbrt(r66035);
        double r66062 = r66061 * r66061;
        double r66063 = 1.0;
        double r66064 = r66062 / r66063;
        double r66065 = sqrt(r66064);
        double r66066 = r66061 / r66038;
        double r66067 = sqrt(r66066);
        double r66068 = -r66057;
        double r66069 = fma(r66065, r66067, r66068);
        double r66070 = cbrt(r66069);
        double r66071 = r66056 - r66057;
        double r66072 = cbrt(r66071);
        double r66073 = r66070 * r66072;
        double r66074 = r66060 * r66073;
        double r66075 = r66074 * r66041;
        double r66076 = r66045 ? r66055 : r66075;
        double r66077 = r66034 ? r66043 : r66076;
        return r66077;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Split input into 3 regimes
  2. if (* -2.0 x) < -0.006685496049665994

    1. Initial program 0.0

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

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

    if -0.006685496049665994 < (* -2.0 x) < 0.00040565549024256415

    1. Initial program 59.2

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

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

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

    if 0.00040565549024256415 < (* -2.0 x)

    1. Initial program 0.0

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

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

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

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

      \[\leadsto \left(\sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1} \cdot \sqrt[3]{\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)}}\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\]
    8. Applied cbrt-prod0.1

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

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

      \[\leadsto \left(\sqrt[3]{\color{blue}{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} \cdot \sqrt{\frac{2}{1 + e^{-2 \cdot x}}}} - \sqrt{1} \cdot \sqrt{1}} \cdot \left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}}\right)\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\]
    11. Applied difference-of-squares0.0

      \[\leadsto \left(\sqrt[3]{\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)}} \cdot \left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}}\right)\right) \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\]
    12. Applied cbrt-prod0.1

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

      \[\leadsto \color{blue}{\left(\left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} + \sqrt{1}}\right) \cdot \left(\sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}} \cdot \sqrt[3]{\sqrt{\frac{2}{1 + e^{-2 \cdot x}}} - \sqrt{1}}\right)\right)} \cdot \sqrt[3]{\frac{2}{1 + e^{-2 \cdot x}} - 1}\]
    14. Using strategy rm
    15. Applied *-un-lft-identity0.1

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

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

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

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

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

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

Reproduce

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