Average Error: 4.8 → 0.6
Time: 18.3s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.729435121298542586167068524360956871533 \cdot 10^{-5} \lor \neg \left(x \le 3.189879657056316050356090324997263338704 \cdot 10^{-14}\right):\\ \;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt[3]{{\left(\sqrt{e^{2 \cdot x}}\right)}^{3}} - \sqrt{1}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x \cdot \left(1 + x \cdot 0.5\right) + 2}\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -1.729435121298542586167068524360956871533 \cdot 10^{-5} \lor \neg \left(x \le 3.189879657056316050356090324997263338704 \cdot 10^{-14}\right):\\
\;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt[3]{{\left(\sqrt{e^{2 \cdot x}}\right)}^{3}} - \sqrt{1}}}}\\

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

\end{array}
double f(double x) {
        double r19372 = 2.0;
        double r19373 = x;
        double r19374 = r19372 * r19373;
        double r19375 = exp(r19374);
        double r19376 = 1.0;
        double r19377 = r19375 - r19376;
        double r19378 = exp(r19373);
        double r19379 = r19378 - r19376;
        double r19380 = r19377 / r19379;
        double r19381 = sqrt(r19380);
        return r19381;
}

double f(double x) {
        double r19382 = x;
        double r19383 = -1.7294351212985426e-05;
        bool r19384 = r19382 <= r19383;
        double r19385 = 3.189879657056316e-14;
        bool r19386 = r19382 <= r19385;
        double r19387 = !r19386;
        bool r19388 = r19384 || r19387;
        double r19389 = 2.0;
        double r19390 = r19389 * r19382;
        double r19391 = exp(r19390);
        double r19392 = sqrt(r19391);
        double r19393 = 1.0;
        double r19394 = sqrt(r19393);
        double r19395 = r19392 + r19394;
        double r19396 = exp(r19382);
        double r19397 = r19396 - r19393;
        double r19398 = 3.0;
        double r19399 = pow(r19392, r19398);
        double r19400 = cbrt(r19399);
        double r19401 = r19400 - r19394;
        double r19402 = r19397 / r19401;
        double r19403 = r19395 / r19402;
        double r19404 = sqrt(r19403);
        double r19405 = 0.5;
        double r19406 = r19382 * r19405;
        double r19407 = r19393 + r19406;
        double r19408 = r19382 * r19407;
        double r19409 = r19408 + r19389;
        double r19410 = sqrt(r19409);
        double r19411 = r19388 ? r19404 : r19410;
        return r19411;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

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

    1. Initial program 0.1

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

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - \color{blue}{\sqrt{1} \cdot \sqrt{1}}}{e^{x} - 1}}\]
    4. 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}}{e^{x} - 1}}\]
    5. 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)}}{e^{x} - 1}}\]
    6. Applied associate-/l*0.0

      \[\leadsto \sqrt{\color{blue}{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt{e^{2 \cdot x}} - \sqrt{1}}}}}\]
    7. Using strategy rm
    8. Applied add-cbrt-cube0.1

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

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

    if -1.7294351212985426e-05 < x < 3.189879657056316e-14

    1. Initial program 45.9

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

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

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

    if 3.189879657056316e-14 < x

    1. Initial program 15.8

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

      \[\leadsto \sqrt{\frac{e^{2 \cdot x} - \color{blue}{\sqrt{1} \cdot \sqrt{1}}}{e^{x} - 1}}\]
    4. Applied add-sqr-sqrt13.8

      \[\leadsto \sqrt{\frac{\color{blue}{\sqrt{e^{2 \cdot x}} \cdot \sqrt{e^{2 \cdot x}}} - \sqrt{1} \cdot \sqrt{1}}{e^{x} - 1}}\]
    5. Applied difference-of-squares6.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)}}{e^{x} - 1}}\]
    6. Applied associate-/l*6.0

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

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

      \[\leadsto \sqrt{\frac{\color{blue}{\sqrt{\sqrt{e^{2 \cdot x}}} \cdot \sqrt{\sqrt{e^{2 \cdot x}}}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt{e^{2 \cdot x}} - \sqrt{1}}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.729435121298542586167068524360956871533 \cdot 10^{-5} \lor \neg \left(x \le 3.189879657056316050356090324997263338704 \cdot 10^{-14}\right):\\ \;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{\sqrt[3]{{\left(\sqrt{e^{2 \cdot x}}\right)}^{3}} - \sqrt{1}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x \cdot \left(1 + x \cdot 0.5\right) + 2}\\ \end{array}\]

Reproduce

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