Average Error: 4.4 → 0.2
Time: 40.5s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\sqrt{\sqrt{e^{x} + 1}} \cdot \sqrt{\sqrt{e^{x} + 1}}\]
double f(double x) {
        double r1460254 = 2.0;
        double r1460255 = x;
        double r1460256 = r1460254 * r1460255;
        double r1460257 = exp(r1460256);
        double r1460258 = 1.0;
        double r1460259 = r1460257 - r1460258;
        double r1460260 = exp(r1460255);
        double r1460261 = r1460260 - r1460258;
        double r1460262 = r1460259 / r1460261;
        double r1460263 = sqrt(r1460262);
        return r1460263;
}

double f(double x) {
        double r1460264 = x;
        double r1460265 = exp(r1460264);
        double r1460266 = 1.0;
        double r1460267 = r1460265 + r1460266;
        double r1460268 = sqrt(r1460267);
        double r1460269 = sqrt(r1460268);
        double r1460270 = r1460269 * r1460269;
        return r1460270;
}

\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\sqrt{\sqrt{e^{x} + 1}} \cdot \sqrt{\sqrt{e^{x} + 1}}

Error

Bits error versus x

Derivation

  1. Initial program 4.4

    \[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
  2. Simplified0.1

    \[\leadsto \color{blue}{\sqrt{e^{x} + 1}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.1

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

    \[\leadsto \color{blue}{\sqrt{\sqrt{e^{x} + 1}} \cdot \sqrt{\sqrt{e^{x} + 1}}}\]
  6. Final simplification0.2

    \[\leadsto \sqrt{\sqrt{e^{x} + 1}} \cdot \sqrt{\sqrt{e^{x} + 1}}\]

Reproduce

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