Average Error: 4.7 → 0.3
Time: 17.5s
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 3288981.7384411361999809741973876953125:\\ \;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1} \cdot \left(e^{x} + 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{2 + x \cdot \left(0.5 \cdot x + 1\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 3288981.7384411361999809741973876953125:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1} \cdot \left(e^{x} + 1\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{2 + x \cdot \left(0.5 \cdot x + 1\right)}\\

\end{array}
double f(double x) {
        double r20130 = 2.0;
        double r20131 = x;
        double r20132 = r20130 * r20131;
        double r20133 = exp(r20132);
        double r20134 = 1.0;
        double r20135 = r20133 - r20134;
        double r20136 = exp(r20131);
        double r20137 = r20136 - r20134;
        double r20138 = r20135 / r20137;
        double r20139 = sqrt(r20138);
        return r20139;
}

double f(double x) {
        double r20140 = 2.0;
        double r20141 = x;
        double r20142 = r20140 * r20141;
        double r20143 = exp(r20142);
        double r20144 = 1.0;
        double r20145 = r20143 - r20144;
        double r20146 = exp(r20141);
        double r20147 = r20146 - r20144;
        double r20148 = r20145 / r20147;
        double r20149 = 3288981.738441136;
        bool r20150 = r20148 <= r20149;
        double r20151 = r20141 + r20141;
        double r20152 = exp(r20151);
        double r20153 = r20144 * r20144;
        double r20154 = r20152 - r20153;
        double r20155 = r20145 / r20154;
        double r20156 = r20146 + r20144;
        double r20157 = r20155 * r20156;
        double r20158 = sqrt(r20157);
        double r20159 = 0.5;
        double r20160 = r20159 * r20141;
        double r20161 = r20160 + r20144;
        double r20162 = r20141 * r20161;
        double r20163 = r20140 + r20162;
        double r20164 = sqrt(r20163);
        double r20165 = r20150 ? r20158 : r20164;
        return r20165;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0)) < 3288981.738441136

    1. Initial program 1.8

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

    if 3288981.738441136 < (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))

    1. Initial program 59.6

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

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

      \[\leadsto \sqrt{\color{blue}{2 + x \cdot \left(0.5 \cdot x + 1\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

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

Reproduce

herbie shell --seed 2019209 
(FPCore (x)
  :name "sqrtexp (problem 3.4.4)"
  :precision binary64
  (sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))