\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 r427201 = 1.0;
double r427202 = 3.0;
double r427203 = r427201 / r427202;
double r427204 = x;
double r427205 = y;
double r427206 = 27.0;
double r427207 = r427205 * r427206;
double r427208 = r427204 / r427207;
double r427209 = r427202 * r427208;
double r427210 = z;
double r427211 = 2.0;
double r427212 = r427210 * r427211;
double r427213 = r427209 / r427212;
double r427214 = t;
double r427215 = sqrt(r427214);
double r427216 = r427213 * r427215;
double r427217 = acos(r427216);
double r427218 = r427203 * r427217;
return r427218;
}
double f(double x, double y, double z, double t) {
double r427219 = 1.0;
double r427220 = sqrt(r427219);
double r427221 = 3.0;
double r427222 = cbrt(r427221);
double r427223 = r427222 * r427222;
double r427224 = r427220 / r427223;
double r427225 = r427220 / r427222;
double r427226 = x;
double r427227 = y;
double r427228 = 27.0;
double r427229 = r427227 * r427228;
double r427230 = r427226 / r427229;
double r427231 = r427221 * r427230;
double r427232 = z;
double r427233 = 2.0;
double r427234 = r427232 * r427233;
double r427235 = r427231 / r427234;
double r427236 = t;
double r427237 = sqrt(r427236);
double r427238 = r427235 * r427237;
double r427239 = acos(r427238);
double r427240 = r427225 * r427239;
double r427241 = r427224 * r427240;
return r427241;
}




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