\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 \frac{\cos^{-1} \left(0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r573369 = 1.0;
double r573370 = 3.0;
double r573371 = r573369 / r573370;
double r573372 = x;
double r573373 = y;
double r573374 = 27.0;
double r573375 = r573373 * r573374;
double r573376 = r573372 / r573375;
double r573377 = r573370 * r573376;
double r573378 = z;
double r573379 = 2.0;
double r573380 = r573378 * r573379;
double r573381 = r573377 / r573380;
double r573382 = t;
double r573383 = sqrt(r573382);
double r573384 = r573381 * r573383;
double r573385 = acos(r573384);
double r573386 = r573371 * r573385;
return r573386;
}
double f(double x, double y, double z, double t) {
double r573387 = 1.0;
double r573388 = sqrt(r573387);
double r573389 = 3.0;
double r573390 = cbrt(r573389);
double r573391 = r573390 * r573390;
double r573392 = r573388 / r573391;
double r573393 = 0.05555555555555555;
double r573394 = t;
double r573395 = sqrt(r573394);
double r573396 = x;
double r573397 = z;
double r573398 = y;
double r573399 = r573397 * r573398;
double r573400 = r573396 / r573399;
double r573401 = r573395 * r573400;
double r573402 = r573393 * r573401;
double r573403 = acos(r573402);
double r573404 = r573403 * r573388;
double r573405 = r573404 / r573390;
double r573406 = r573392 * r573405;
return r573406;
}




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-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019303
(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)))))