\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\left(0.05555555555555555247160270937456516548991 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r525345 = 1.0;
double r525346 = 3.0;
double r525347 = r525345 / r525346;
double r525348 = x;
double r525349 = y;
double r525350 = 27.0;
double r525351 = r525349 * r525350;
double r525352 = r525348 / r525351;
double r525353 = r525346 * r525352;
double r525354 = z;
double r525355 = 2.0;
double r525356 = r525354 * r525355;
double r525357 = r525353 / r525356;
double r525358 = t;
double r525359 = sqrt(r525358);
double r525360 = r525357 * r525359;
double r525361 = acos(r525360);
double r525362 = r525347 * r525361;
return r525362;
}
double f(double x, double y, double z, double t) {
double r525363 = 1.0;
double r525364 = sqrt(r525363);
double r525365 = 3.0;
double r525366 = cbrt(r525365);
double r525367 = r525366 * r525366;
double r525368 = r525364 / r525367;
double r525369 = r525364 / r525366;
double r525370 = 0.05555555555555555;
double r525371 = x;
double r525372 = z;
double r525373 = y;
double r525374 = r525372 * r525373;
double r525375 = r525371 / r525374;
double r525376 = r525370 * r525375;
double r525377 = t;
double r525378 = sqrt(r525377);
double r525379 = r525376 * r525378;
double r525380 = acos(r525379);
double r525381 = r525369 * r525380;
double r525382 = r525368 * r525381;
return r525382;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019322 +o rules:numerics
(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)))))