\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(\left(0.055555555555555552 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r735117 = 1.0;
double r735118 = 3.0;
double r735119 = r735117 / r735118;
double r735120 = x;
double r735121 = y;
double r735122 = 27.0;
double r735123 = r735121 * r735122;
double r735124 = r735120 / r735123;
double r735125 = r735118 * r735124;
double r735126 = z;
double r735127 = 2.0;
double r735128 = r735126 * r735127;
double r735129 = r735125 / r735128;
double r735130 = t;
double r735131 = sqrt(r735130);
double r735132 = r735129 * r735131;
double r735133 = acos(r735132);
double r735134 = r735119 * r735133;
return r735134;
}
double f(double x, double y, double z, double t) {
double r735135 = 1.0;
double r735136 = cbrt(r735135);
double r735137 = r735136 * r735136;
double r735138 = 3.0;
double r735139 = cbrt(r735138);
double r735140 = r735139 * r735139;
double r735141 = r735137 / r735140;
double r735142 = r735136 / r735139;
double r735143 = 0.05555555555555555;
double r735144 = x;
double r735145 = z;
double r735146 = y;
double r735147 = r735145 * r735146;
double r735148 = r735144 / r735147;
double r735149 = r735143 * r735148;
double r735150 = t;
double r735151 = sqrt(r735150);
double r735152 = r735149 * r735151;
double r735153 = acos(r735152);
double r735154 = r735142 * r735153;
double r735155 = r735141 * r735154;
return r735155;
}




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 add-cube-cbrt1.3
Applied times-frac0.4
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2020046 +o rules:numerics
(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)))))