\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(\cos^{-1} \left(\frac{\frac{x}{27 \cdot y} \cdot 3}{2 \cdot z} \cdot \sqrt{t}\right) \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{3}}\right)double f(double x, double y, double z, double t) {
double r364290 = 1.0;
double r364291 = 3.0;
double r364292 = r364290 / r364291;
double r364293 = x;
double r364294 = y;
double r364295 = 27.0;
double r364296 = r364294 * r364295;
double r364297 = r364293 / r364296;
double r364298 = r364291 * r364297;
double r364299 = z;
double r364300 = 2.0;
double r364301 = r364299 * r364300;
double r364302 = r364298 / r364301;
double r364303 = t;
double r364304 = sqrt(r364303);
double r364305 = r364302 * r364304;
double r364306 = acos(r364305);
double r364307 = r364292 * r364306;
return r364307;
}
double f(double x, double y, double z, double t) {
double r364308 = 1.0;
double r364309 = cbrt(r364308);
double r364310 = r364309 * r364309;
double r364311 = 3.0;
double r364312 = cbrt(r364311);
double r364313 = r364312 * r364312;
double r364314 = r364310 / r364313;
double r364315 = x;
double r364316 = 27.0;
double r364317 = y;
double r364318 = r364316 * r364317;
double r364319 = r364315 / r364318;
double r364320 = r364319 * r364311;
double r364321 = 2.0;
double r364322 = z;
double r364323 = r364321 * r364322;
double r364324 = r364320 / r364323;
double r364325 = t;
double r364326 = sqrt(r364325);
double r364327 = r364324 * r364326;
double r364328 = acos(r364327);
double r364329 = r364309 / r364312;
double r364330 = r364328 * r364329;
double r364331 = r364314 * r364330;
return r364331;
}




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.3
Applied associate-*l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019174
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))