\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;
}




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 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)))))