\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 r120984 = 1.0;
double r120985 = 3.0;
double r120986 = r120984 / r120985;
double r120987 = x;
double r120988 = y;
double r120989 = 27.0;
double r120990 = r120988 * r120989;
double r120991 = r120987 / r120990;
double r120992 = r120985 * r120991;
double r120993 = z;
double r120994 = 2.0;
double r120995 = r120993 * r120994;
double r120996 = r120992 / r120995;
double r120997 = t;
double r120998 = sqrt(r120997);
double r120999 = r120996 * r120998;
double r121000 = acos(r120999);
double r121001 = r120986 * r121000;
return r121001;
}
double f(double x, double y, double z, double t) {
double r121002 = 1.0;
double r121003 = cbrt(r121002);
double r121004 = r121003 * r121003;
double r121005 = 3.0;
double r121006 = cbrt(r121005);
double r121007 = r121006 * r121006;
double r121008 = r121004 / r121007;
double r121009 = r121003 / r121006;
double r121010 = x;
double r121011 = y;
double r121012 = 27.0;
double r121013 = r121011 * r121012;
double r121014 = r121010 / r121013;
double r121015 = r121005 * r121014;
double r121016 = z;
double r121017 = 2.0;
double r121018 = r121016 * r121017;
double r121019 = r121015 / r121018;
double r121020 = t;
double r121021 = sqrt(r121020);
double r121022 = r121019 * r121021;
double r121023 = acos(r121022);
double r121024 = r121009 * r121023;
double r121025 = r121008 * r121024;
return r121025;
}




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