Average Error: 4.2 → 0.1
Time: 19.9s
Precision: 64
\[\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\]
\[\sqrt{\left(e^{x} + 2\right) - 1}\]
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}
\sqrt{\left(e^{x} + 2\right) - 1}
double f(double x) {
        double r524151 = 2.0;
        double r524152 = x;
        double r524153 = r524151 * r524152;
        double r524154 = exp(r524153);
        double r524155 = 1.0;
        double r524156 = r524154 - r524155;
        double r524157 = exp(r524152);
        double r524158 = r524157 - r524155;
        double r524159 = r524156 / r524158;
        double r524160 = sqrt(r524159);
        return r524160;
}

double f(double x) {
        double r524161 = x;
        double r524162 = exp(r524161);
        double r524163 = 2.0;
        double r524164 = r524162 + r524163;
        double r524165 = 1.0;
        double r524166 = r524164 - r524165;
        double r524167 = sqrt(r524166);
        return r524167;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 4.2

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

    \[\leadsto \sqrt{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{x} + 1\right)\right)}}\]
  5. Using strategy rm
  6. Applied expm1-udef0.1

    \[\leadsto \sqrt{\color{blue}{e^{\mathsf{log1p}\left(e^{x} + 1\right)} - 1}}\]
  7. Simplified0.1

    \[\leadsto \sqrt{\color{blue}{\left(e^{x} + 2\right)} - 1}\]
  8. Final simplification0.1

    \[\leadsto \sqrt{\left(e^{x} + 2\right) - 1}\]

Reproduce

herbie shell --seed 2019135 +o rules:numerics
(FPCore (x)
  :name "sqrtexp (problem 3.4.4)"
  (sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))