\frac{6.0 \cdot \left(x - 1.0\right)}{\left(x + 1.0\right) + 4.0 \cdot \sqrt{x}}\left(\sqrt[3]{\sqrt[3]{\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \left(\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)}\right)}} \cdot \sqrt[3]{\sqrt[3]{\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \left(\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)}\right)}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \left(\frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)} \cdot \frac{\left(x - 1.0\right) \cdot 6.0}{x + \left(\sqrt{x} \cdot 4.0 + 1.0\right)}\right)}}double f(double x) {
double r42524521 = 6.0;
double r42524522 = x;
double r42524523 = 1.0;
double r42524524 = r42524522 - r42524523;
double r42524525 = r42524521 * r42524524;
double r42524526 = r42524522 + r42524523;
double r42524527 = 4.0;
double r42524528 = sqrt(r42524522);
double r42524529 = r42524527 * r42524528;
double r42524530 = r42524526 + r42524529;
double r42524531 = r42524525 / r42524530;
return r42524531;
}
double f(double x) {
double r42524532 = x;
double r42524533 = 1.0;
double r42524534 = r42524532 - r42524533;
double r42524535 = 6.0;
double r42524536 = r42524534 * r42524535;
double r42524537 = sqrt(r42524532);
double r42524538 = 4.0;
double r42524539 = r42524537 * r42524538;
double r42524540 = r42524539 + r42524533;
double r42524541 = r42524532 + r42524540;
double r42524542 = r42524536 / r42524541;
double r42524543 = r42524542 * r42524542;
double r42524544 = r42524542 * r42524543;
double r42524545 = cbrt(r42524544);
double r42524546 = cbrt(r42524545);
double r42524547 = r42524546 * r42524546;
double r42524548 = r42524547 * r42524546;
return r42524548;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied add-cbrt-cube20.7
Applied add-cbrt-cube20.6
Applied add-cbrt-cube21.2
Applied cbrt-unprod21.2
Applied cbrt-undiv21.2
Simplified1.1
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2019163
(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)))))