Average Error: 4.3 → 0.1
Time: 6.4s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.16411630771553129 \cdot 10^{-10}:\\ \;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{e^{x} + 1}}}\\ \mathbf{elif}\;x \le 1.07703766894357749 \cdot 10^{-13}:\\ \;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(e^{2 \cdot x} - 1\right) \cdot \frac{1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{e^{x} + 1}}}\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -1.16411630771553129 \cdot 10^{-10}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{e^{x} + 1}}}\\

\mathbf{elif}\;x \le 1.07703766894357749 \cdot 10^{-13}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\

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

\end{array}
double f(double x) {
        double r17100 = 2.0;
        double r17101 = x;
        double r17102 = r17100 * r17101;
        double r17103 = exp(r17102);
        double r17104 = 1.0;
        double r17105 = r17103 - r17104;
        double r17106 = exp(r17101);
        double r17107 = r17106 - r17104;
        double r17108 = r17105 / r17107;
        double r17109 = sqrt(r17108);
        return r17109;
}

double f(double x) {
        double r17110 = x;
        double r17111 = -1.1641163077155313e-10;
        bool r17112 = r17110 <= r17111;
        double r17113 = 2.0;
        double r17114 = r17113 * r17110;
        double r17115 = exp(r17114);
        double r17116 = 1.0;
        double r17117 = r17115 - r17116;
        double r17118 = -r17116;
        double r17119 = r17110 + r17110;
        double r17120 = exp(r17119);
        double r17121 = fma(r17118, r17116, r17120);
        double r17122 = exp(r17110);
        double r17123 = r17122 + r17116;
        double r17124 = r17121 / r17123;
        double r17125 = r17117 / r17124;
        double r17126 = sqrt(r17125);
        double r17127 = 1.0770376689435775e-13;
        bool r17128 = r17110 <= r17127;
        double r17129 = 0.5;
        double r17130 = sqrt(r17113);
        double r17131 = r17110 / r17130;
        double r17132 = r17129 * r17131;
        double r17133 = 2.0;
        double r17134 = pow(r17110, r17133);
        double r17135 = r17134 / r17130;
        double r17136 = 0.25;
        double r17137 = 0.125;
        double r17138 = r17137 / r17113;
        double r17139 = r17136 - r17138;
        double r17140 = r17135 * r17139;
        double r17141 = r17130 + r17140;
        double r17142 = r17132 + r17141;
        double r17143 = 1.0;
        double r17144 = r17143 / r17124;
        double r17145 = r17117 * r17144;
        double r17146 = sqrt(r17145);
        double r17147 = r17128 ? r17142 : r17146;
        double r17148 = r17112 ? r17126 : r17147;
        return r17148;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -1.1641163077155313e-10

    1. Initial program 0.3

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

      \[\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}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}}{e^{x} + 1}}}\]

    if -1.1641163077155313e-10 < x < 1.0770376689435775e-13

    1. Initial program 51.2

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

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

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

    if 1.0770376689435775e-13 < x

    1. Initial program 14.0

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

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

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\color{blue}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}}{e^{x} + 1}}}\]
    5. Using strategy rm
    6. Applied div-inv1.8

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

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

Reproduce

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