\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 \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r775141 = 1.0;
double r775142 = 3.0;
double r775143 = r775141 / r775142;
double r775144 = x;
double r775145 = y;
double r775146 = 27.0;
double r775147 = r775145 * r775146;
double r775148 = r775144 / r775147;
double r775149 = r775142 * r775148;
double r775150 = z;
double r775151 = 2.0;
double r775152 = r775150 * r775151;
double r775153 = r775149 / r775152;
double r775154 = t;
double r775155 = sqrt(r775154);
double r775156 = r775153 * r775155;
double r775157 = acos(r775156);
double r775158 = r775143 * r775157;
return r775158;
}
double f(double x, double y, double z, double t) {
double r775159 = 1.0;
double r775160 = sqrt(r775159);
double r775161 = 3.0;
double r775162 = cbrt(r775161);
double r775163 = r775162 * r775162;
double r775164 = r775160 / r775163;
double r775165 = r775160 / r775162;
double r775166 = x;
double r775167 = y;
double r775168 = 27.0;
double r775169 = r775167 * r775168;
double r775170 = r775166 / r775169;
double r775171 = r775161 * r775170;
double r775172 = z;
double r775173 = 2.0;
double r775174 = r775172 * r775173;
double r775175 = r775171 / r775174;
double r775176 = t;
double r775177 = sqrt(r775176);
double r775178 = r775175 * r775177;
double r775179 = acos(r775178);
double r775180 = r775165 * r775179;
double r775181 = r775164 * r775180;
return r775181;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.3 |
| Herbie | 0.3 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020036 +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)))))