\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(\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 r989244 = 1.0;
double r989245 = 3.0;
double r989246 = r989244 / r989245;
double r989247 = x;
double r989248 = y;
double r989249 = 27.0;
double r989250 = r989248 * r989249;
double r989251 = r989247 / r989250;
double r989252 = r989245 * r989251;
double r989253 = z;
double r989254 = 2.0;
double r989255 = r989253 * r989254;
double r989256 = r989252 / r989255;
double r989257 = t;
double r989258 = sqrt(r989257);
double r989259 = r989256 * r989258;
double r989260 = acos(r989259);
double r989261 = r989246 * r989260;
return r989261;
}
double f(double x, double y, double z, double t) {
double r989262 = 1.0;
double r989263 = cbrt(r989262);
double r989264 = r989263 * r989263;
double r989265 = 3.0;
double r989266 = cbrt(r989265);
double r989267 = r989266 * r989266;
double r989268 = r989264 / r989267;
double r989269 = r989263 / r989266;
double r989270 = x;
double r989271 = y;
double r989272 = 27.0;
double r989273 = r989271 * r989272;
double r989274 = r989270 / r989273;
double r989275 = r989265 * r989274;
double r989276 = z;
double r989277 = 2.0;
double r989278 = r989276 * r989277;
double r989279 = r989275 / r989278;
double r989280 = t;
double r989281 = sqrt(r989280);
double r989282 = r989279 * r989281;
double r989283 = acos(r989282);
double r989284 = r989269 * r989283;
double r989285 = r989268 * r989284;
return r989285;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied add-cube-cbrt1.2
Applied times-frac0.2
Applied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2020060 +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)))))