\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 \left(\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt{1}\right)\right)double f(double x, double y, double z, double t) {
double r864274 = 1.0;
double r864275 = 3.0;
double r864276 = r864274 / r864275;
double r864277 = x;
double r864278 = y;
double r864279 = 27.0;
double r864280 = r864278 * r864279;
double r864281 = r864277 / r864280;
double r864282 = r864275 * r864281;
double r864283 = z;
double r864284 = 2.0;
double r864285 = r864283 * r864284;
double r864286 = r864282 / r864285;
double r864287 = t;
double r864288 = sqrt(r864287);
double r864289 = r864286 * r864288;
double r864290 = acos(r864289);
double r864291 = r864276 * r864290;
return r864291;
}
double f(double x, double y, double z, double t) {
double r864292 = 1.0;
double r864293 = sqrt(r864292);
double r864294 = 3.0;
double r864295 = cbrt(r864294);
double r864296 = r864293 / r864295;
double r864297 = 1.0;
double r864298 = sqrt(r864297);
double r864299 = r864295 * r864295;
double r864300 = r864298 / r864299;
double r864301 = 0.05555555555555555;
double r864302 = t;
double r864303 = sqrt(r864302);
double r864304 = x;
double r864305 = z;
double r864306 = y;
double r864307 = r864305 * r864306;
double r864308 = r864304 / r864307;
double r864309 = r864303 * r864308;
double r864310 = r864301 * r864309;
double r864311 = acos(r864310);
double r864312 = r864311 * r864298;
double r864313 = r864300 * r864312;
double r864314 = r864296 * r864313;
return r864314;
}




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.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
rmApplied *-un-lft-identity0.2
Applied sqrt-prod0.2
Applied times-frac1.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020020 +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)))))