Average Error: 4.6 → 0.8
Time: 13.9s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le \frac{-151177675305233}{9223372036854775808}:\\ \;\;\;\;\sqrt{\frac{\sqrt{\sqrt{e^{2 \cdot x}}} \cdot \sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{e^{2 \cdot x}} - \sqrt{1}}{e^{x} - 1}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x \cdot \left(1 + \frac{1}{2} \cdot x\right) + 2}\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le \frac{-151177675305233}{9223372036854775808}:\\
\;\;\;\;\sqrt{\frac{\sqrt{\sqrt{e^{2 \cdot x}}} \cdot \sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{e^{2 \cdot x}} - \sqrt{1}}{e^{x} - 1}}\\

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

\end{array}
double f(double x) {
        double r19427 = 2.0;
        double r19428 = x;
        double r19429 = r19427 * r19428;
        double r19430 = exp(r19429);
        double r19431 = 1.0;
        double r19432 = r19430 - r19431;
        double r19433 = exp(r19428);
        double r19434 = r19433 - r19431;
        double r19435 = r19432 / r19434;
        double r19436 = sqrt(r19435);
        return r19436;
}

double f(double x) {
        double r19437 = x;
        double r19438 = -151177675305233.0;
        double r19439 = 9.223372036854776e+18;
        double r19440 = r19438 / r19439;
        bool r19441 = r19437 <= r19440;
        double r19442 = 2.0;
        double r19443 = r19442 * r19437;
        double r19444 = exp(r19443);
        double r19445 = sqrt(r19444);
        double r19446 = sqrt(r19445);
        double r19447 = r19446 * r19446;
        double r19448 = 1.0;
        double r19449 = sqrt(r19448);
        double r19450 = r19447 + r19449;
        double r19451 = 1.0;
        double r19452 = r19450 / r19451;
        double r19453 = sqrt(r19452);
        double r19454 = r19445 - r19449;
        double r19455 = exp(r19437);
        double r19456 = r19455 - r19448;
        double r19457 = r19454 / r19456;
        double r19458 = sqrt(r19457);
        double r19459 = r19453 * r19458;
        double r19460 = r19448 / r19442;
        double r19461 = r19460 * r19437;
        double r19462 = r19448 + r19461;
        double r19463 = r19437 * r19462;
        double r19464 = r19463 + r19442;
        double r19465 = sqrt(r19464);
        double r19466 = r19441 ? r19459 : r19465;
        return r19466;
}

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 x < -1.639071639972418e-05

    1. Initial program 0.1

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

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

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

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

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

      \[\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. Applied sqrt-prod0.0

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

      \[\leadsto \sqrt{\frac{\sqrt{\color{blue}{\sqrt{e^{2 \cdot x}} \cdot \sqrt{e^{2 \cdot x}}}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{e^{2 \cdot x}} - \sqrt{1}}{e^{x} - 1}}\]
    11. Applied sqrt-prod0.0

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

    if -1.639071639972418e-05 < x

    1. Initial program 35.0

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

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

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

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

Reproduce

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