\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\left(0.05555555555555555247160270937456516548991 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r596371 = 1.0;
double r596372 = 3.0;
double r596373 = r596371 / r596372;
double r596374 = x;
double r596375 = y;
double r596376 = 27.0;
double r596377 = r596375 * r596376;
double r596378 = r596374 / r596377;
double r596379 = r596372 * r596378;
double r596380 = z;
double r596381 = 2.0;
double r596382 = r596380 * r596381;
double r596383 = r596379 / r596382;
double r596384 = t;
double r596385 = sqrt(r596384);
double r596386 = r596383 * r596385;
double r596387 = acos(r596386);
double r596388 = r596373 * r596387;
return r596388;
}
double f(double x, double y, double z, double t) {
double r596389 = 1.0;
double r596390 = 3.0;
double r596391 = cbrt(r596390);
double r596392 = r596391 * r596391;
double r596393 = r596389 / r596392;
double r596394 = 1.0;
double r596395 = r596394 / r596391;
double r596396 = 0.05555555555555555;
double r596397 = x;
double r596398 = z;
double r596399 = y;
double r596400 = r596398 * r596399;
double r596401 = r596397 / r596400;
double r596402 = r596396 * r596401;
double r596403 = t;
double r596404 = sqrt(r596403);
double r596405 = r596402 * r596404;
double r596406 = acos(r596405);
double r596407 = r596395 * r596406;
double r596408 = r596393 * r596407;
return r596408;
}




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 *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019306
(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)))))