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

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

\end{array}
double f(double x) {
        double r20419 = 2.0;
        double r20420 = x;
        double r20421 = r20419 * r20420;
        double r20422 = exp(r20421);
        double r20423 = 1.0;
        double r20424 = r20422 - r20423;
        double r20425 = exp(r20420);
        double r20426 = r20425 - r20423;
        double r20427 = r20424 / r20426;
        double r20428 = sqrt(r20427);
        return r20428;
}

double f(double x) {
        double r20429 = x;
        double r20430 = -8.580579348341847e-06;
        bool r20431 = r20429 <= r20430;
        double r20432 = 2.0;
        double r20433 = r20432 * r20429;
        double r20434 = exp(r20433);
        double r20435 = 1.0;
        double r20436 = r20434 - r20435;
        double r20437 = r20429 + r20429;
        double r20438 = exp(r20437);
        double r20439 = r20435 * r20435;
        double r20440 = r20438 - r20439;
        double r20441 = exp(r20429);
        double r20442 = r20441 + r20435;
        double r20443 = r20440 / r20442;
        double r20444 = r20436 / r20443;
        double r20445 = sqrt(r20444);
        double r20446 = 0.5;
        double r20447 = 2.0;
        double r20448 = pow(r20429, r20447);
        double r20449 = fma(r20435, r20429, r20432);
        double r20450 = fma(r20446, r20448, r20449);
        double r20451 = sqrt(r20450);
        double r20452 = r20431 ? r20445 : r20451;
        return r20452;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8.580579348341847e-06

    1. Initial program 0.1

      \[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
    2. Using strategy rm
    3. Applied flip--0.1

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

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

    if -8.580579348341847e-06 < x

    1. Initial program 34.5

      \[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
    2. Using strategy rm
    3. Applied flip--31.3

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - 1}{\color{blue}{\frac{e^{x} \cdot e^{x} - 1 \cdot 1}{e^{x} + 1}}}}\]
    4. Simplified21.8

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

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

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

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

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

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

      \[\leadsto \sqrt{\sqrt[3]{\color{blue}{{\left(\frac{e^{2 \cdot x} - 1}{\frac{e^{x + x} - 1 \cdot 1}{e^{x} + 1}}\right)}^{3}}}}\]
    12. Taylor expanded around 0 6.1

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

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

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

Reproduce

herbie shell --seed 2020042 +o rules:numerics
(FPCore (x)
  :name "sqrtexp (problem 3.4.4)"
  :precision binary64
  (sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))