Average Error: 4.3 → 0.2
Time: 5.8s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3.26467025645999135252499356862898594045 \cdot 10^{-6} \lor \neg \left(x \le 5.717344166834740593150648857445617068151 \cdot 10^{-6}\right):\\ \;\;\;\;\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}:\\ \;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -3.26467025645999135252499356862898594045 \cdot 10^{-6} \lor \neg \left(x \le 5.717344166834740593150648857445617068151 \cdot 10^{-6}\right):\\
\;\;\;\;\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}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\

\end{array}
double f(double x) {
        double r11460 = 2.0;
        double r11461 = x;
        double r11462 = r11460 * r11461;
        double r11463 = exp(r11462);
        double r11464 = 1.0;
        double r11465 = r11463 - r11464;
        double r11466 = exp(r11461);
        double r11467 = r11466 - r11464;
        double r11468 = r11465 / r11467;
        double r11469 = sqrt(r11468);
        return r11469;
}

double f(double x) {
        double r11470 = x;
        double r11471 = -3.2646702564599914e-06;
        bool r11472 = r11470 <= r11471;
        double r11473 = 5.717344166834741e-06;
        bool r11474 = r11470 <= r11473;
        double r11475 = !r11474;
        bool r11476 = r11472 || r11475;
        double r11477 = 2.0;
        double r11478 = r11477 * r11470;
        double r11479 = exp(r11478);
        double r11480 = sqrt(r11479);
        double r11481 = sqrt(r11480);
        double r11482 = r11481 * r11481;
        double r11483 = 1.0;
        double r11484 = sqrt(r11483);
        double r11485 = r11482 + r11484;
        double r11486 = 1.0;
        double r11487 = r11485 / r11486;
        double r11488 = sqrt(r11487);
        double r11489 = r11480 - r11484;
        double r11490 = exp(r11470);
        double r11491 = r11490 - r11483;
        double r11492 = r11489 / r11491;
        double r11493 = sqrt(r11492);
        double r11494 = r11488 * r11493;
        double r11495 = 0.5;
        double r11496 = sqrt(r11477);
        double r11497 = r11470 / r11496;
        double r11498 = r11495 * r11497;
        double r11499 = 2.0;
        double r11500 = pow(r11470, r11499);
        double r11501 = r11500 / r11496;
        double r11502 = 0.25;
        double r11503 = 0.125;
        double r11504 = r11503 / r11477;
        double r11505 = r11502 - r11504;
        double r11506 = r11501 * r11505;
        double r11507 = r11496 + r11506;
        double r11508 = r11498 + r11507;
        double r11509 = r11476 ? r11494 : r11508;
        return r11509;
}

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 < -3.2646702564599914e-06 or 5.717344166834741e-06 < x

    1. Initial program 0.4

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

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

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

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

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

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

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

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

      \[\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 -3.2646702564599914e-06 < x < 5.717344166834741e-06

    1. Initial program 39.2

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3.26467025645999135252499356862898594045 \cdot 10^{-6} \lor \neg \left(x \le 5.717344166834740593150648857445617068151 \cdot 10^{-6}\right):\\ \;\;\;\;\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}:\\ \;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\ \end{array}\]

Reproduce

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