\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{\frac{x}{27 \cdot y} \cdot 3}{2 \cdot z} \cdot \sqrt{t}\right)\right) \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r33481548 = 1.0;
double r33481549 = 3.0;
double r33481550 = r33481548 / r33481549;
double r33481551 = x;
double r33481552 = y;
double r33481553 = 27.0;
double r33481554 = r33481552 * r33481553;
double r33481555 = r33481551 / r33481554;
double r33481556 = r33481549 * r33481555;
double r33481557 = z;
double r33481558 = 2.0;
double r33481559 = r33481557 * r33481558;
double r33481560 = r33481556 / r33481559;
double r33481561 = t;
double r33481562 = sqrt(r33481561);
double r33481563 = r33481560 * r33481562;
double r33481564 = acos(r33481563);
double r33481565 = r33481550 * r33481564;
return r33481565;
}
double f(double x, double y, double z, double t) {
double r33481566 = 1.0;
double r33481567 = 3.0;
double r33481568 = cbrt(r33481567);
double r33481569 = r33481566 / r33481568;
double r33481570 = x;
double r33481571 = 27.0;
double r33481572 = y;
double r33481573 = r33481571 * r33481572;
double r33481574 = r33481570 / r33481573;
double r33481575 = r33481574 * r33481567;
double r33481576 = 2.0;
double r33481577 = z;
double r33481578 = r33481576 * r33481577;
double r33481579 = r33481575 / r33481578;
double r33481580 = t;
double r33481581 = sqrt(r33481580);
double r33481582 = r33481579 * r33481581;
double r33481583 = acos(r33481582);
double r33481584 = r33481569 * r33481583;
double r33481585 = 1.0;
double r33481586 = r33481568 * r33481568;
double r33481587 = r33481585 / r33481586;
double r33481588 = r33481584 * r33481587;
return r33481588;
}




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 *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019174 +o rules:numerics
(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)))))