\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{\frac{6}{\sqrt[3]{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}} \cdot \sqrt[3]{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}}}{\sqrt[3]{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}}double f(double x) {
double r596444 = 6.0;
double r596445 = x;
double r596446 = 1.0;
double r596447 = r596445 - r596446;
double r596448 = r596444 * r596447;
double r596449 = r596445 + r596446;
double r596450 = 4.0;
double r596451 = sqrt(r596445);
double r596452 = r596450 * r596451;
double r596453 = r596449 + r596452;
double r596454 = r596448 / r596453;
return r596454;
}
double f(double x) {
double r596455 = 6.0;
double r596456 = x;
double r596457 = 1.0;
double r596458 = r596456 + r596457;
double r596459 = 4.0;
double r596460 = sqrt(r596456);
double r596461 = r596459 * r596460;
double r596462 = r596458 + r596461;
double r596463 = r596456 - r596457;
double r596464 = r596462 / r596463;
double r596465 = cbrt(r596464);
double r596466 = r596465 * r596465;
double r596467 = r596455 / r596466;
double r596468 = r596467 / r596465;
return r596468;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-/l*0.0
rmApplied add-cube-cbrt0.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019326
(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)))))