Average Error: 4.2 → 0.8
Time: 28.8s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -8.655783571717727279064015839147429667595 \cdot 10^{-13}:\\ \;\;\;\;\sqrt{\frac{\sqrt{1} + \left|\sqrt[3]{e^{2 \cdot x}}\right| \cdot \sqrt{\sqrt[3]{e^{2 \cdot x}}}}{\frac{e^{x} - 1}{e^{x \cdot 1} - \sqrt{1}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\mathsf{fma}\left(x, 0.5 \cdot x + 1, 2\right)}\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -8.655783571717727279064015839147429667595 \cdot 10^{-13}:\\
\;\;\;\;\sqrt{\frac{\sqrt{1} + \left|\sqrt[3]{e^{2 \cdot x}}\right| \cdot \sqrt{\sqrt[3]{e^{2 \cdot x}}}}{\frac{e^{x} - 1}{e^{x \cdot 1} - \sqrt{1}}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(x, 0.5 \cdot x + 1, 2\right)}\\

\end{array}
double f(double x) {
        double r1152130 = 2.0;
        double r1152131 = x;
        double r1152132 = r1152130 * r1152131;
        double r1152133 = exp(r1152132);
        double r1152134 = 1.0;
        double r1152135 = r1152133 - r1152134;
        double r1152136 = exp(r1152131);
        double r1152137 = r1152136 - r1152134;
        double r1152138 = r1152135 / r1152137;
        double r1152139 = sqrt(r1152138);
        return r1152139;
}

double f(double x) {
        double r1152140 = x;
        double r1152141 = -8.655783571717727e-13;
        bool r1152142 = r1152140 <= r1152141;
        double r1152143 = 1.0;
        double r1152144 = sqrt(r1152143);
        double r1152145 = 2.0;
        double r1152146 = r1152145 * r1152140;
        double r1152147 = exp(r1152146);
        double r1152148 = cbrt(r1152147);
        double r1152149 = fabs(r1152148);
        double r1152150 = sqrt(r1152148);
        double r1152151 = r1152149 * r1152150;
        double r1152152 = r1152144 + r1152151;
        double r1152153 = exp(r1152140);
        double r1152154 = r1152153 - r1152143;
        double r1152155 = r1152140 * r1152143;
        double r1152156 = exp(r1152155);
        double r1152157 = r1152156 - r1152144;
        double r1152158 = r1152154 / r1152157;
        double r1152159 = r1152152 / r1152158;
        double r1152160 = sqrt(r1152159);
        double r1152161 = 0.5;
        double r1152162 = r1152161 * r1152140;
        double r1152163 = r1152162 + r1152143;
        double r1152164 = fma(r1152140, r1152163, r1152145);
        double r1152165 = sqrt(r1152164);
        double r1152166 = r1152142 ? r1152160 : r1152165;
        return r1152166;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8.655783571717727e-13

    1. Initial program 0.6

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

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

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

      \[\leadsto \sqrt{\frac{\color{blue}{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \left(\sqrt{e^{2 \cdot x}} - \sqrt{1}\right)}}{e^{x} - 1}}\]
    6. Applied associate-/l*0.2

      \[\leadsto \sqrt{\color{blue}{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt{e^{2 \cdot x}} - \sqrt{1}}}}}\]
    7. Using strategy rm
    8. Applied add-log-exp0.2

      \[\leadsto \sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt{e^{\color{blue}{\log \left(e^{2}\right)} \cdot x}} - \sqrt{1}}}}\]
    9. Applied exp-to-pow0.2

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

      \[\leadsto \sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\color{blue}{{\left(e^{2}\right)}^{\left(\frac{x}{2}\right)}} - \sqrt{1}}}}\]
    11. Taylor expanded around inf 0.0

      \[\leadsto \sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\color{blue}{e^{1 \cdot x} - \sqrt{1}}}}}\]
    12. Using strategy rm
    13. Applied add-cube-cbrt0.0

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

      \[\leadsto \sqrt{\frac{\color{blue}{\sqrt{\sqrt[3]{e^{2 \cdot x}} \cdot \sqrt[3]{e^{2 \cdot x}}} \cdot \sqrt{\sqrt[3]{e^{2 \cdot x}}}} + \sqrt{1}}{\frac{e^{x} - 1}{e^{1 \cdot x} - \sqrt{1}}}}\]
    15. Simplified0.0

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

    if -8.655783571717727e-13 < x

    1. Initial program 35.4

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

      \[\leadsto \sqrt{\color{blue}{1 \cdot x + \left(0.5 \cdot {x}^{2} + 2\right)}}\]
    3. Simplified7.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -8.655783571717727279064015839147429667595 \cdot 10^{-13}:\\ \;\;\;\;\sqrt{\frac{\sqrt{1} + \left|\sqrt[3]{e^{2 \cdot x}}\right| \cdot \sqrt{\sqrt[3]{e^{2 \cdot x}}}}{\frac{e^{x} - 1}{e^{x \cdot 1} - \sqrt{1}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\mathsf{fma}\left(x, 0.5 \cdot x + 1, 2\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019170 +o rules:numerics
(FPCore (x)
  :name "sqrtexp (problem 3.4.4)"
  (sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))