\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(\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)double f(double x, double y, double z, double t) {
double r859286 = 1.0;
double r859287 = 3.0;
double r859288 = r859286 / r859287;
double r859289 = x;
double r859290 = y;
double r859291 = 27.0;
double r859292 = r859290 * r859291;
double r859293 = r859289 / r859292;
double r859294 = r859287 * r859293;
double r859295 = z;
double r859296 = 2.0;
double r859297 = r859295 * r859296;
double r859298 = r859294 / r859297;
double r859299 = t;
double r859300 = sqrt(r859299);
double r859301 = r859298 * r859300;
double r859302 = acos(r859301);
double r859303 = r859288 * r859302;
return r859303;
}
double f(double x, double y, double z, double t) {
double r859304 = 1.0;
double r859305 = cbrt(r859304);
double r859306 = r859305 * r859305;
double r859307 = 3.0;
double r859308 = cbrt(r859307);
double r859309 = r859308 * r859308;
double r859310 = r859306 / r859309;
double r859311 = r859305 / r859308;
double r859312 = x;
double r859313 = y;
double r859314 = 27.0;
double r859315 = r859313 * r859314;
double r859316 = r859312 / r859315;
double r859317 = r859307 * r859316;
double r859318 = z;
double r859319 = 2.0;
double r859320 = r859318 * r859319;
double r859321 = r859317 / r859320;
double r859322 = t;
double r859323 = sqrt(r859322);
double r859324 = r859321 * r859323;
double r859325 = acos(r859324);
double r859326 = r859311 * r859325;
double r859327 = r859310 * r859326;
return r859327;
}




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-cube-cbrt1.2
Applied times-frac0.2
Applied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2020060
(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)))))