\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 r856071 = 6.0;
double r856072 = x;
double r856073 = 1.0;
double r856074 = r856072 - r856073;
double r856075 = r856071 * r856074;
double r856076 = r856072 + r856073;
double r856077 = 4.0;
double r856078 = sqrt(r856072);
double r856079 = r856077 * r856078;
double r856080 = r856076 + r856079;
double r856081 = r856075 / r856080;
return r856081;
}
double f(double x) {
double r856082 = 6.0;
double r856083 = x;
double r856084 = 1.0;
double r856085 = r856083 + r856084;
double r856086 = 4.0;
double r856087 = sqrt(r856083);
double r856088 = r856086 * r856087;
double r856089 = r856085 + r856088;
double r856090 = r856083 - r856084;
double r856091 = r856089 / r856090;
double r856092 = r856082 / r856091;
return r856092;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2020049
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:precision binary64
:herbie-target
(/ 6 (/ (+ (+ x 1) (* 4 (sqrt x))) (- x 1)))
(/ (* 6 (- x 1)) (+ (+ x 1) (* 4 (sqrt x)))))