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

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

\end{array}
double f(double x) {
        double r20917 = 2.0;
        double r20918 = x;
        double r20919 = r20917 * r20918;
        double r20920 = exp(r20919);
        double r20921 = 1.0;
        double r20922 = r20920 - r20921;
        double r20923 = exp(r20918);
        double r20924 = r20923 - r20921;
        double r20925 = r20922 / r20924;
        double r20926 = sqrt(r20925);
        return r20926;
}

double f(double x) {
        double r20927 = x;
        double r20928 = -1.434798355623991e-05;
        bool r20929 = r20927 <= r20928;
        double r20930 = 2.0;
        double r20931 = r20930 * r20927;
        double r20932 = exp(r20931);
        double r20933 = 1.0;
        double r20934 = r20932 - r20933;
        double r20935 = -r20933;
        double r20936 = r20927 + r20927;
        double r20937 = exp(r20936);
        double r20938 = fma(r20935, r20933, r20937);
        double r20939 = exp(r20927);
        double r20940 = 3.0;
        double r20941 = pow(r20939, r20940);
        double r20942 = pow(r20933, r20940);
        double r20943 = r20941 + r20942;
        double r20944 = r20938 / r20943;
        double r20945 = r20934 / r20944;
        double r20946 = r20939 * r20939;
        double r20947 = r20933 * r20933;
        double r20948 = r20939 * r20933;
        double r20949 = r20947 - r20948;
        double r20950 = r20946 + r20949;
        double r20951 = r20945 / r20950;
        double r20952 = sqrt(r20951);
        double r20953 = 0.4999999999999998;
        double r20954 = 2.0;
        double r20955 = pow(r20927, r20954);
        double r20956 = fma(r20933, r20927, r20930);
        double r20957 = fma(r20953, r20955, r20956);
        double r20958 = sqrt(r20957);
        double r20959 = r20929 ? r20952 : r20958;
        return r20959;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -1.434798355623991e-05

    1. Initial program 0.1

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

      \[\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}}}\]
    5. Using strategy rm
    6. Applied flip3-+0.0

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{\color{blue}{\frac{{\left(e^{x}\right)}^{3} + {1}^{3}}{e^{x} \cdot e^{x} + \left(1 \cdot 1 - e^{x} \cdot 1\right)}}}}}\]
    7. Applied associate-/r/0.0

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - 1}{\color{blue}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{{\left(e^{x}\right)}^{3} + {1}^{3}} \cdot \left(e^{x} \cdot e^{x} + \left(1 \cdot 1 - e^{x} \cdot 1\right)\right)}}}\]
    8. Applied associate-/r*0.0

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

    if -1.434798355623991e-05 < x

    1. Initial program 35.3

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

      \[\leadsto \sqrt{\frac{\color{blue}{\sqrt{e^{2 \cdot x}} \cdot \sqrt{e^{2 \cdot x}}} - 1}{e^{x} - 1}}\]
    4. Applied fma-neg27.6

      \[\leadsto \sqrt{\frac{\color{blue}{\mathsf{fma}\left(\sqrt{e^{2 \cdot x}}, \sqrt{e^{2 \cdot x}}, -1\right)}}{e^{x} - 1}}\]
    5. Taylor expanded around 0 5.4

      \[\leadsto \sqrt{\color{blue}{0.49999999999999978 \cdot {x}^{2} + \left(1 \cdot x + 2\right)}}\]
    6. Simplified5.4

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

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

Reproduce

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