Average Error: 0.2 → 0.1
Time: 47.2s
Precision: 64
\[\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\]
\[\frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}\]
\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}
\frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}
double f(double x) {
        double r51022254 = 6.0;
        double r51022255 = x;
        double r51022256 = 1.0;
        double r51022257 = r51022255 - r51022256;
        double r51022258 = r51022254 * r51022257;
        double r51022259 = r51022255 + r51022256;
        double r51022260 = 4.0;
        double r51022261 = sqrt(r51022255);
        double r51022262 = r51022260 * r51022261;
        double r51022263 = r51022259 + r51022262;
        double r51022264 = r51022258 / r51022263;
        return r51022264;
}

double f(double x) {
        double r51022265 = 6.0;
        double r51022266 = x;
        double r51022267 = 1.0;
        double r51022268 = r51022266 + r51022267;
        double r51022269 = 4.0;
        double r51022270 = sqrt(r51022266);
        double r51022271 = r51022269 * r51022270;
        double r51022272 = r51022268 + r51022271;
        double r51022273 = r51022266 - r51022267;
        double r51022274 = r51022272 / r51022273;
        double r51022275 = r51022265 / r51022274;
        return r51022275;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.2
Target0.1
Herbie0.1
\[\frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}\]

Derivation

  1. Initial program 0.2

    \[\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\]
  2. Using strategy rm
  3. Applied associate-/l*0.1

    \[\leadsto \color{blue}{\frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}}\]
  4. Final simplification0.1

    \[\leadsto \frac{6}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}\]

Reproduce

herbie shell --seed 2019169 
(FPCore (x)
  :name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"

  :herbie-target
  (/ 6.0 (/ (+ (+ x 1.0) (* 4.0 (sqrt x))) (- x 1.0)))

  (/ (* 6.0 (- x 1.0)) (+ (+ x 1.0) (* 4.0 (sqrt x)))))