Average Error: 4.3 → 0.1
Time: 7.3s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.27319002816284202 \cdot 10^{-5} \lor \neg \left(x \le 3.15507236008555292 \cdot 10^{-9}\right):\\ \;\;\;\;\sqrt{\frac{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \left(\sqrt{e^{2 \cdot x}} - \sqrt{1}\right)}{e^{x} - 1}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.5 \cdot {x}^{2} + \left(1 \cdot x + 2\right)}\\ \end{array}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\begin{array}{l}
\mathbf{if}\;x \le -1.27319002816284202 \cdot 10^{-5} \lor \neg \left(x \le 3.15507236008555292 \cdot 10^{-9}\right):\\
\;\;\;\;\sqrt{\frac{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \left(\sqrt{e^{2 \cdot x}} - \sqrt{1}\right)}{e^{x} - 1}}\\

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

\end{array}
double f(double x) {
        double r23862 = 2.0;
        double r23863 = x;
        double r23864 = r23862 * r23863;
        double r23865 = exp(r23864);
        double r23866 = 1.0;
        double r23867 = r23865 - r23866;
        double r23868 = exp(r23863);
        double r23869 = r23868 - r23866;
        double r23870 = r23867 / r23869;
        double r23871 = sqrt(r23870);
        return r23871;
}

double f(double x) {
        double r23872 = x;
        double r23873 = -1.273190028162842e-05;
        bool r23874 = r23872 <= r23873;
        double r23875 = 3.155072360085553e-09;
        bool r23876 = r23872 <= r23875;
        double r23877 = !r23876;
        bool r23878 = r23874 || r23877;
        double r23879 = 2.0;
        double r23880 = r23879 * r23872;
        double r23881 = exp(r23880);
        double r23882 = sqrt(r23881);
        double r23883 = 1.0;
        double r23884 = sqrt(r23883);
        double r23885 = r23882 + r23884;
        double r23886 = r23882 - r23884;
        double r23887 = r23885 * r23886;
        double r23888 = exp(r23872);
        double r23889 = r23888 - r23883;
        double r23890 = r23887 / r23889;
        double r23891 = sqrt(r23890);
        double r23892 = 0.5;
        double r23893 = 2.0;
        double r23894 = pow(r23872, r23893);
        double r23895 = r23892 * r23894;
        double r23896 = r23883 * r23872;
        double r23897 = r23896 + r23879;
        double r23898 = r23895 + r23897;
        double r23899 = sqrt(r23898);
        double r23900 = r23878 ? r23891 : r23899;
        return r23900;
}

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.273190028162842e-05 or 3.155072360085553e-09 < x

    1. Initial program 0.5

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

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

      \[\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.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)}}{e^{x} - 1}}\]

    if -1.273190028162842e-05 < x < 3.155072360085553e-09

    1. Initial program 39.9

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

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

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

      \[\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. Using strategy rm
    7. Applied sub-neg32.7

      \[\leadsto \sqrt{\frac{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \color{blue}{\left(\sqrt{e^{2 \cdot x}} + \left(-\sqrt{1}\right)\right)}}{e^{x} - 1}}\]
    8. Applied distribute-lft-in37.7

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

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

      \[\leadsto \sqrt{\frac{\left(e^{2 \cdot x} + \sqrt{e^{2 \cdot x}} \cdot \sqrt{1}\right) + \color{blue}{\left(-\left(\sqrt{e^{2 \cdot x}} \cdot \sqrt{1} + 1\right)\right)}}{e^{x} - 1}}\]
    11. Taylor expanded around 0 0.1

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

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

Reproduce

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