Average Error: 4.5 → 0.9
Time: 20.3s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -5.620247555861490600456011289930965376518 \cdot 10^{-17}:\\ \;\;\;\;\sqrt{\left(\sqrt{1} + \left|{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt{e^{x}}\right)\right)\right)}^{2}\right|\right) \cdot \frac{\sqrt{{\left(e^{x}\right)}^{2}} - \sqrt{1}}{e^{x} - 1}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{x}{\sqrt{2}}, \sqrt{2}\right) + \frac{x \cdot x}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -5.620247555861490600456011289930965376518 \cdot 10^{-17}:\\
\;\;\;\;\sqrt{\left(\sqrt{1} + \left|{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt{e^{x}}\right)\right)\right)}^{2}\right|\right) \cdot \frac{\sqrt{{\left(e^{x}\right)}^{2}} - \sqrt{1}}{e^{x} - 1}}\\

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

\end{array}
double f(double x) {
        double r28364 = 2.0;
        double r28365 = x;
        double r28366 = r28364 * r28365;
        double r28367 = exp(r28366);
        double r28368 = 1.0;
        double r28369 = r28367 - r28368;
        double r28370 = exp(r28365);
        double r28371 = r28370 - r28368;
        double r28372 = r28369 / r28371;
        double r28373 = sqrt(r28372);
        return r28373;
}

double f(double x) {
        double r28374 = x;
        double r28375 = -5.62024755586149e-17;
        bool r28376 = r28374 <= r28375;
        double r28377 = 1.0;
        double r28378 = sqrt(r28377);
        double r28379 = exp(r28374);
        double r28380 = sqrt(r28379);
        double r28381 = expm1(r28380);
        double r28382 = log1p(r28381);
        double r28383 = 2.0;
        double r28384 = pow(r28382, r28383);
        double r28385 = fabs(r28384);
        double r28386 = r28378 + r28385;
        double r28387 = pow(r28379, r28383);
        double r28388 = sqrt(r28387);
        double r28389 = r28388 - r28378;
        double r28390 = r28379 - r28377;
        double r28391 = r28389 / r28390;
        double r28392 = r28386 * r28391;
        double r28393 = sqrt(r28392);
        double r28394 = 0.5;
        double r28395 = sqrt(r28383);
        double r28396 = r28374 / r28395;
        double r28397 = fma(r28394, r28396, r28395);
        double r28398 = r28374 * r28374;
        double r28399 = r28398 / r28395;
        double r28400 = 0.25;
        double r28401 = 0.125;
        double r28402 = r28401 / r28383;
        double r28403 = r28400 - r28402;
        double r28404 = r28399 * r28403;
        double r28405 = r28397 + r28404;
        double r28406 = r28376 ? r28393 : r28405;
        return r28406;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -5.62024755586149e-17

    1. Initial program 0.9

      \[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.9

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

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

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

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

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

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

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

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

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

      \[\leadsto \sqrt{\left(\color{blue}{\left|{\left(\sqrt{e^{x}}\right)}^{2}\right|} + \sqrt{1}\right) \cdot \frac{\sqrt{{\left(e^{x}\right)}^{2}} - \sqrt{1}}{e^{x} - 1}}\]
    14. Using strategy rm
    15. Applied log1p-expm1-u0.0

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

    if -5.62024755586149e-17 < x

    1. Initial program 37.9

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

      \[\leadsto \color{blue}{\left(\sqrt{2} + \left(0.5 \cdot \frac{x}{\sqrt{2}} + 0.25 \cdot \frac{{x}^{2}}{\sqrt{2}}\right)\right) - 0.125 \cdot \frac{{x}^{2}}{{\left(\sqrt{2}\right)}^{3}}}\]
    3. Simplified9.6

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

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

Reproduce

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