\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 \left(\sqrt{\frac{\sqrt[3]{1}}{\sqrt[3]{3}}} \cdot \left(\sqrt{\frac{\sqrt[3]{1}}{\sqrt[3]{3}}} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)\right)double f(double x, double y, double z, double t) {
double r476309 = 1.0;
double r476310 = 3.0;
double r476311 = r476309 / r476310;
double r476312 = x;
double r476313 = y;
double r476314 = 27.0;
double r476315 = r476313 * r476314;
double r476316 = r476312 / r476315;
double r476317 = r476310 * r476316;
double r476318 = z;
double r476319 = 2.0;
double r476320 = r476318 * r476319;
double r476321 = r476317 / r476320;
double r476322 = t;
double r476323 = sqrt(r476322);
double r476324 = r476321 * r476323;
double r476325 = acos(r476324);
double r476326 = r476311 * r476325;
return r476326;
}
double f(double x, double y, double z, double t) {
double r476327 = 1.0;
double r476328 = cbrt(r476327);
double r476329 = r476328 * r476328;
double r476330 = 3.0;
double r476331 = cbrt(r476330);
double r476332 = r476331 * r476331;
double r476333 = r476329 / r476332;
double r476334 = r476328 / r476331;
double r476335 = sqrt(r476334);
double r476336 = x;
double r476337 = y;
double r476338 = 27.0;
double r476339 = r476337 * r476338;
double r476340 = r476336 / r476339;
double r476341 = r476330 * r476340;
double r476342 = z;
double r476343 = 2.0;
double r476344 = r476342 * r476343;
double r476345 = r476341 / r476344;
double r476346 = t;
double r476347 = sqrt(r476346);
double r476348 = r476345 * r476347;
double r476349 = acos(r476348);
double r476350 = r476335 * r476349;
double r476351 = r476335 * r476350;
double r476352 = r476333 * r476351;
return r476352;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.5 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-cube-cbrt1.4
Applied times-frac0.5
Applied associate-*l*0.4
rmApplied add-sqr-sqrt1.4
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323 +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)))))