\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 r595227 = 1.0;
double r595228 = 3.0;
double r595229 = r595227 / r595228;
double r595230 = x;
double r595231 = y;
double r595232 = 27.0;
double r595233 = r595231 * r595232;
double r595234 = r595230 / r595233;
double r595235 = r595228 * r595234;
double r595236 = z;
double r595237 = 2.0;
double r595238 = r595236 * r595237;
double r595239 = r595235 / r595238;
double r595240 = t;
double r595241 = sqrt(r595240);
double r595242 = r595239 * r595241;
double r595243 = acos(r595242);
double r595244 = r595229 * r595243;
return r595244;
}
double f(double x, double y, double z, double t) {
double r595245 = 1.0;
double r595246 = sqrt(r595245);
double r595247 = 3.0;
double r595248 = cbrt(r595247);
double r595249 = r595248 * r595248;
double r595250 = r595246 / r595249;
double r595251 = r595246 / r595248;
double r595252 = x;
double r595253 = y;
double r595254 = 27.0;
double r595255 = r595253 * r595254;
double r595256 = r595252 / r595255;
double r595257 = r595247 * r595256;
double r595258 = z;
double r595259 = 2.0;
double r595260 = r595258 * r595259;
double r595261 = r595257 / r595260;
double r595262 = t;
double r595263 = sqrt(r595262);
double r595264 = r595261 * r595263;
double r595265 = acos(r595264);
double r595266 = r595251 * r595265;
double r595267 = r595250 * r595266;
return r595267;
}




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.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019305
(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)))))