\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r874044 = 1.0;
double r874045 = 3.0;
double r874046 = r874044 / r874045;
double r874047 = x;
double r874048 = y;
double r874049 = 27.0;
double r874050 = r874048 * r874049;
double r874051 = r874047 / r874050;
double r874052 = r874045 * r874051;
double r874053 = z;
double r874054 = 2.0;
double r874055 = r874053 * r874054;
double r874056 = r874052 / r874055;
double r874057 = t;
double r874058 = sqrt(r874057);
double r874059 = r874056 * r874058;
double r874060 = acos(r874059);
double r874061 = r874046 * r874060;
return r874061;
}
double f(double x, double y, double z, double t) {
double r874062 = 1.0;
double r874063 = 3.0;
double r874064 = cbrt(r874063);
double r874065 = r874064 * r874064;
double r874066 = r874062 / r874065;
double r874067 = 1.0;
double r874068 = r874067 / r874064;
double r874069 = x;
double r874070 = r874063 * r874069;
double r874071 = z;
double r874072 = 2.0;
double r874073 = r874071 * r874072;
double r874074 = y;
double r874075 = 27.0;
double r874076 = r874074 * r874075;
double r874077 = r874073 * r874076;
double r874078 = r874070 / r874077;
double r874079 = t;
double r874080 = sqrt(r874079);
double r874081 = r874078 * r874080;
double r874082 = acos(r874081);
double r874083 = r874068 * r874082;
double r874084 = r874066 * r874083;
return r874084;
}




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.4
Applied associate-*l*0.3
rmApplied associate-*r/0.4
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2020046
(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)))))