\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r560775 = 1.0;
double r560776 = 3.0;
double r560777 = r560775 / r560776;
double r560778 = x;
double r560779 = y;
double r560780 = 27.0;
double r560781 = r560779 * r560780;
double r560782 = r560778 / r560781;
double r560783 = r560776 * r560782;
double r560784 = z;
double r560785 = 2.0;
double r560786 = r560784 * r560785;
double r560787 = r560783 / r560786;
double r560788 = t;
double r560789 = sqrt(r560788);
double r560790 = r560787 * r560789;
double r560791 = acos(r560790);
double r560792 = r560777 * r560791;
return r560792;
}
double f(double x, double y, double z, double t) {
double r560793 = 1.0;
double r560794 = sqrt(r560793);
double r560795 = 3.0;
double r560796 = cbrt(r560795);
double r560797 = r560796 * r560796;
double r560798 = r560794 / r560797;
double r560799 = r560794 / r560796;
double r560800 = x;
double r560801 = r560795 * r560800;
double r560802 = z;
double r560803 = 2.0;
double r560804 = r560802 * r560803;
double r560805 = y;
double r560806 = 27.0;
double r560807 = r560805 * r560806;
double r560808 = r560804 * r560807;
double r560809 = r560801 / r560808;
double r560810 = t;
double r560811 = sqrt(r560810);
double r560812 = r560809 * r560811;
double r560813 = acos(r560812);
double r560814 = r560799 * r560813;
double r560815 = r560798 * r560814;
return r560815;
}




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.3 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*r/0.3
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2019322
(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)))))