\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 \frac{\cos^{-1} \left(\log \left(e^{0.05555555555555555247160270937456516548991 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)}\right)\right) \cdot \sqrt[3]{1}}{\sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r842287 = 1.0;
double r842288 = 3.0;
double r842289 = r842287 / r842288;
double r842290 = x;
double r842291 = y;
double r842292 = 27.0;
double r842293 = r842291 * r842292;
double r842294 = r842290 / r842293;
double r842295 = r842288 * r842294;
double r842296 = z;
double r842297 = 2.0;
double r842298 = r842296 * r842297;
double r842299 = r842295 / r842298;
double r842300 = t;
double r842301 = sqrt(r842300);
double r842302 = r842299 * r842301;
double r842303 = acos(r842302);
double r842304 = r842289 * r842303;
return r842304;
}
double f(double x, double y, double z, double t) {
double r842305 = 1.0;
double r842306 = cbrt(r842305);
double r842307 = r842306 * r842306;
double r842308 = 3.0;
double r842309 = cbrt(r842308);
double r842310 = r842309 * r842309;
double r842311 = r842307 / r842310;
double r842312 = 0.05555555555555555;
double r842313 = t;
double r842314 = sqrt(r842313);
double r842315 = x;
double r842316 = z;
double r842317 = y;
double r842318 = r842316 * r842317;
double r842319 = r842315 / r842318;
double r842320 = r842314 * r842319;
double r842321 = r842312 * r842320;
double r842322 = exp(r842321);
double r842323 = log(r842322);
double r842324 = acos(r842323);
double r842325 = r842324 * r842306;
double r842326 = r842325 / r842309;
double r842327 = r842311 * r842326;
return r842327;
}




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.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-cube-cbrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
rmApplied add-log-exp0.2
Final simplification0.2
herbie shell --seed 2019353
(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)))))