\frac{1.0}{3.0} \cdot \cos^{-1} \left(\frac{3.0 \cdot \frac{x}{y \cdot 27.0}}{z \cdot 2.0} \cdot \sqrt{t}\right)\left(\frac{1.0}{\sqrt[3]{3.0}} \cdot \cos^{-1} \left(\frac{\frac{x}{27.0 \cdot y} \cdot 3.0}{2.0 \cdot z} \cdot \sqrt{t}\right)\right) \cdot \frac{1}{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}}double f(double x, double y, double z, double t) {
double r36610221 = 1.0;
double r36610222 = 3.0;
double r36610223 = r36610221 / r36610222;
double r36610224 = x;
double r36610225 = y;
double r36610226 = 27.0;
double r36610227 = r36610225 * r36610226;
double r36610228 = r36610224 / r36610227;
double r36610229 = r36610222 * r36610228;
double r36610230 = z;
double r36610231 = 2.0;
double r36610232 = r36610230 * r36610231;
double r36610233 = r36610229 / r36610232;
double r36610234 = t;
double r36610235 = sqrt(r36610234);
double r36610236 = r36610233 * r36610235;
double r36610237 = acos(r36610236);
double r36610238 = r36610223 * r36610237;
return r36610238;
}
double f(double x, double y, double z, double t) {
double r36610239 = 1.0;
double r36610240 = 3.0;
double r36610241 = cbrt(r36610240);
double r36610242 = r36610239 / r36610241;
double r36610243 = x;
double r36610244 = 27.0;
double r36610245 = y;
double r36610246 = r36610244 * r36610245;
double r36610247 = r36610243 / r36610246;
double r36610248 = r36610247 * r36610240;
double r36610249 = 2.0;
double r36610250 = z;
double r36610251 = r36610249 * r36610250;
double r36610252 = r36610248 / r36610251;
double r36610253 = t;
double r36610254 = sqrt(r36610253);
double r36610255 = r36610252 * r36610254;
double r36610256 = acos(r36610255);
double r36610257 = r36610242 * r36610256;
double r36610258 = 1.0;
double r36610259 = r36610241 * r36610241;
double r36610260 = r36610258 / r36610259;
double r36610261 = r36610257 * r36610260;
return r36610261;
}




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
Final simplification0.3
herbie shell --seed 2019165
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))