\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \sqrt[3]{{\left(\cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)}^{3} \cdot \frac{1}{3}}double f(double x, double y, double z, double t) {
double r894451 = 1.0;
double r894452 = 3.0;
double r894453 = r894451 / r894452;
double r894454 = x;
double r894455 = y;
double r894456 = 27.0;
double r894457 = r894455 * r894456;
double r894458 = r894454 / r894457;
double r894459 = r894452 * r894458;
double r894460 = z;
double r894461 = 2.0;
double r894462 = r894460 * r894461;
double r894463 = r894459 / r894462;
double r894464 = t;
double r894465 = sqrt(r894464);
double r894466 = r894463 * r894465;
double r894467 = acos(r894466);
double r894468 = r894453 * r894467;
return r894468;
}
double f(double x, double y, double z, double t) {
double r894469 = 1.0;
double r894470 = cbrt(r894469);
double r894471 = r894470 * r894470;
double r894472 = 3.0;
double r894473 = cbrt(r894472);
double r894474 = r894473 * r894473;
double r894475 = r894471 / r894474;
double r894476 = x;
double r894477 = r894472 * r894476;
double r894478 = z;
double r894479 = 2.0;
double r894480 = r894478 * r894479;
double r894481 = y;
double r894482 = 27.0;
double r894483 = r894481 * r894482;
double r894484 = r894480 * r894483;
double r894485 = r894477 / r894484;
double r894486 = t;
double r894487 = sqrt(r894486);
double r894488 = r894485 * r894487;
double r894489 = acos(r894488);
double r894490 = 3.0;
double r894491 = pow(r894489, r894490);
double r894492 = r894469 / r894472;
double r894493 = r894491 * r894492;
double r894494 = cbrt(r894493);
double r894495 = r894475 * r894494;
return r894495;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.2 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.4
Applied associate-*l*0.3
rmApplied associate-*r/0.4
Applied associate-/l/0.3
rmApplied add-cbrt-cube1.3
Applied cbrt-undiv0.3
Applied cbrt-unprod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:precision binary64
:herbie-target
(/ (acos (* (/ (/ x 27) (* y z)) (/ (sqrt t) (/ 2 3)))) 3)
(* (/ 1 3) (acos (* (/ (* 3 (/ x (* y 27))) (* z 2)) (sqrt t)))))