Average Error: 4.5 → 0.2
Time: 3.9s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;\frac{e^{2 \cdot x} - 1}{e^{x} - 1} \le 4.18846305646304769 \cdot 10^{84}:\\ \;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)} \cdot \mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, 1\right)}\\ \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}\;\frac{e^{2 \cdot x} - 1}{e^{x} - 1} \le 4.18846305646304769 \cdot 10^{84}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)} \cdot \mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, 1\right)}\\

\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 r10666 = 2.0;
        double r10667 = x;
        double r10668 = r10666 * r10667;
        double r10669 = exp(r10668);
        double r10670 = 1.0;
        double r10671 = r10669 - r10670;
        double r10672 = exp(r10667);
        double r10673 = r10672 - r10670;
        double r10674 = r10671 / r10673;
        double r10675 = sqrt(r10674);
        return r10675;
}

double f(double x) {
        double r10676 = 2.0;
        double r10677 = x;
        double r10678 = r10676 * r10677;
        double r10679 = exp(r10678);
        double r10680 = 1.0;
        double r10681 = r10679 - r10680;
        double r10682 = exp(r10677);
        double r10683 = r10682 - r10680;
        double r10684 = r10681 / r10683;
        double r10685 = 4.188463056463048e+84;
        bool r10686 = r10684 <= r10685;
        double r10687 = -r10680;
        double r10688 = r10677 + r10677;
        double r10689 = exp(r10688);
        double r10690 = fma(r10687, r10680, r10689);
        double r10691 = r10681 / r10690;
        double r10692 = sqrt(r10682);
        double r10693 = fma(r10692, r10692, r10680);
        double r10694 = r10691 * r10693;
        double r10695 = sqrt(r10694);
        double r10696 = 0.5;
        double r10697 = 2.0;
        double r10698 = pow(r10677, r10697);
        double r10699 = fma(r10680, r10677, r10676);
        double r10700 = fma(r10696, r10698, r10699);
        double r10701 = sqrt(r10700);
        double r10702 = r10686 ? r10695 : r10701;
        return r10702;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0)) < 4.188463056463048e+84

    1. Initial program 1.7

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

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - 1}{\color{blue}{\frac{e^{x} \cdot e^{x} - 1 \cdot 1}{e^{x} + 1}}}}\]
    4. Applied associate-/r/1.3

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

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

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

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

    if 4.188463056463048e+84 < (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))

    1. Initial program 63.1

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

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

      \[\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.2

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

Reproduce

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