\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}6 \cdot \frac{1}{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}double f(double x) {
double r59517068 = 6.0;
double r59517069 = x;
double r59517070 = 1.0;
double r59517071 = r59517069 - r59517070;
double r59517072 = r59517068 * r59517071;
double r59517073 = r59517069 + r59517070;
double r59517074 = 4.0;
double r59517075 = sqrt(r59517069);
double r59517076 = r59517074 * r59517075;
double r59517077 = r59517073 + r59517076;
double r59517078 = r59517072 / r59517077;
return r59517078;
}
double f(double x) {
double r59517079 = 6.0;
double r59517080 = 1.0;
double r59517081 = x;
double r59517082 = 1.0;
double r59517083 = r59517081 + r59517082;
double r59517084 = 4.0;
double r59517085 = sqrt(r59517081);
double r59517086 = r59517084 * r59517085;
double r59517087 = r59517083 + r59517086;
double r59517088 = r59517081 - r59517082;
double r59517089 = r59517087 / r59517088;
double r59517090 = r59517080 / r59517089;
double r59517091 = r59517079 * r59517090;
return r59517091;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-/l*0.1
rmApplied div-inv0.1
Final simplification0.1
herbie shell --seed 2019174
(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)))))