\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\sqrt[3]{{\left(\frac{x - 1}{\left(x + 1\right) + \sqrt{x} \cdot 4}\right)}^{3}} \cdot 6double f(double x) {
double r733463 = 6.0;
double r733464 = x;
double r733465 = 1.0;
double r733466 = r733464 - r733465;
double r733467 = r733463 * r733466;
double r733468 = r733464 + r733465;
double r733469 = 4.0;
double r733470 = sqrt(r733464);
double r733471 = r733469 * r733470;
double r733472 = r733468 + r733471;
double r733473 = r733467 / r733472;
return r733473;
}
double f(double x) {
double r733474 = x;
double r733475 = 1.0;
double r733476 = r733474 - r733475;
double r733477 = r733474 + r733475;
double r733478 = sqrt(r733474);
double r733479 = 4.0;
double r733480 = r733478 * r733479;
double r733481 = r733477 + r733480;
double r733482 = r733476 / r733481;
double r733483 = 3.0;
double r733484 = pow(r733482, r733483);
double r733485 = cbrt(r733484);
double r733486 = 6.0;
double r733487 = r733485 * r733486;
return r733487;
}




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