\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 r838247 = 1.0;
double r838248 = 3.0;
double r838249 = r838247 / r838248;
double r838250 = x;
double r838251 = y;
double r838252 = 27.0;
double r838253 = r838251 * r838252;
double r838254 = r838250 / r838253;
double r838255 = r838248 * r838254;
double r838256 = z;
double r838257 = 2.0;
double r838258 = r838256 * r838257;
double r838259 = r838255 / r838258;
double r838260 = t;
double r838261 = sqrt(r838260);
double r838262 = r838259 * r838261;
double r838263 = acos(r838262);
double r838264 = r838249 * r838263;
return r838264;
}
double f(double x, double y, double z, double t) {
double r838265 = 1.0;
double r838266 = cbrt(r838265);
double r838267 = r838266 * r838266;
double r838268 = 3.0;
double r838269 = cbrt(r838268);
double r838270 = r838269 * r838269;
double r838271 = r838267 / r838270;
double r838272 = r838266 / r838269;
double r838273 = x;
double r838274 = y;
double r838275 = 27.0;
double r838276 = r838274 * r838275;
double r838277 = r838273 / r838276;
double r838278 = r838268 * r838277;
double r838279 = z;
double r838280 = 2.0;
double r838281 = r838279 * r838280;
double r838282 = r838278 / r838281;
double r838283 = t;
double r838284 = sqrt(r838283);
double r838285 = r838282 * r838284;
double r838286 = acos(r838285);
double r838287 = r838272 * r838286;
double r838288 = r838271 * r838287;
return r838288;
}




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.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2020021
(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)))))