\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(\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 r487181 = 1.0;
double r487182 = 3.0;
double r487183 = r487181 / r487182;
double r487184 = x;
double r487185 = y;
double r487186 = 27.0;
double r487187 = r487185 * r487186;
double r487188 = r487184 / r487187;
double r487189 = r487182 * r487188;
double r487190 = z;
double r487191 = 2.0;
double r487192 = r487190 * r487191;
double r487193 = r487189 / r487192;
double r487194 = t;
double r487195 = sqrt(r487194);
double r487196 = r487193 * r487195;
double r487197 = acos(r487196);
double r487198 = r487183 * r487197;
return r487198;
}
double f(double x, double y, double z, double t) {
double r487199 = 1.0;
double r487200 = sqrt(r487199);
double r487201 = 3.0;
double r487202 = cbrt(r487201);
double r487203 = r487202 * r487202;
double r487204 = r487200 / r487203;
double r487205 = r487200 / r487202;
double r487206 = 0.05555555555555555;
double r487207 = x;
double r487208 = z;
double r487209 = y;
double r487210 = r487208 * r487209;
double r487211 = r487207 / r487210;
double r487212 = r487206 * r487211;
double r487213 = t;
double r487214 = sqrt(r487213);
double r487215 = r487212 * r487214;
double r487216 = acos(r487215);
double r487217 = r487205 * r487216;
double r487218 = r487204 * r487217;
return r487218;
}




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 add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019303 +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)))))