\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\sqrt{\frac{1}{\sqrt[3]{3}}} \cdot \left(\sqrt{\frac{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 r469260 = 1.0;
double r469261 = 3.0;
double r469262 = r469260 / r469261;
double r469263 = x;
double r469264 = y;
double r469265 = 27.0;
double r469266 = r469264 * r469265;
double r469267 = r469263 / r469266;
double r469268 = r469261 * r469267;
double r469269 = z;
double r469270 = 2.0;
double r469271 = r469269 * r469270;
double r469272 = r469268 / r469271;
double r469273 = t;
double r469274 = sqrt(r469273);
double r469275 = r469272 * r469274;
double r469276 = acos(r469275);
double r469277 = r469262 * r469276;
return r469277;
}
double f(double x, double y, double z, double t) {
double r469278 = 1.0;
double r469279 = 3.0;
double r469280 = cbrt(r469279);
double r469281 = r469280 * r469280;
double r469282 = r469278 / r469281;
double r469283 = 1.0;
double r469284 = r469283 / r469280;
double r469285 = sqrt(r469284);
double r469286 = x;
double r469287 = y;
double r469288 = 27.0;
double r469289 = r469287 * r469288;
double r469290 = r469286 / r469289;
double r469291 = r469279 * r469290;
double r469292 = z;
double r469293 = 2.0;
double r469294 = r469292 * r469293;
double r469295 = r469291 / r469294;
double r469296 = t;
double r469297 = sqrt(r469296);
double r469298 = r469295 * r469297;
double r469299 = acos(r469298);
double r469300 = r469285 * r469299;
double r469301 = r469285 * r469300;
double r469302 = r469282 * r469301;
return r469302;
}




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 *-un-lft-identity1.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
(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)))))