\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 \frac{\frac{\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt{1}}{\sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}}}}{\sqrt[3]{\sqrt[3]{3}}}double f(double x, double y, double z, double t) {
double r935242 = 1.0;
double r935243 = 3.0;
double r935244 = r935242 / r935243;
double r935245 = x;
double r935246 = y;
double r935247 = 27.0;
double r935248 = r935246 * r935247;
double r935249 = r935245 / r935248;
double r935250 = r935243 * r935249;
double r935251 = z;
double r935252 = 2.0;
double r935253 = r935251 * r935252;
double r935254 = r935250 / r935253;
double r935255 = t;
double r935256 = sqrt(r935255);
double r935257 = r935254 * r935256;
double r935258 = acos(r935257);
double r935259 = r935244 * r935258;
return r935259;
}
double f(double x, double y, double z, double t) {
double r935260 = 1.0;
double r935261 = sqrt(r935260);
double r935262 = 3.0;
double r935263 = cbrt(r935262);
double r935264 = r935263 * r935263;
double r935265 = r935261 / r935264;
double r935266 = 0.05555555555555555;
double r935267 = t;
double r935268 = sqrt(r935267);
double r935269 = x;
double r935270 = z;
double r935271 = y;
double r935272 = r935270 * r935271;
double r935273 = r935269 / r935272;
double r935274 = r935268 * r935273;
double r935275 = r935266 * r935274;
double r935276 = acos(r935275);
double r935277 = r935276 * r935261;
double r935278 = cbrt(r935264);
double r935279 = r935277 / r935278;
double r935280 = cbrt(r935263);
double r935281 = r935279 / r935280;
double r935282 = r935265 * r935281;
return r935282;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-sqr-sqrt1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
rmApplied add-cube-cbrt0.2
Applied cbrt-prod0.2
Applied associate-/r*0.2
Final simplification0.2
herbie shell --seed 2020057
(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)))))