\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 \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r800147 = 1.0;
double r800148 = 3.0;
double r800149 = r800147 / r800148;
double r800150 = x;
double r800151 = y;
double r800152 = 27.0;
double r800153 = r800151 * r800152;
double r800154 = r800150 / r800153;
double r800155 = r800148 * r800154;
double r800156 = z;
double r800157 = 2.0;
double r800158 = r800156 * r800157;
double r800159 = r800155 / r800158;
double r800160 = t;
double r800161 = sqrt(r800160);
double r800162 = r800159 * r800161;
double r800163 = acos(r800162);
double r800164 = r800149 * r800163;
return r800164;
}
double f(double x, double y, double z, double t) {
double r800165 = 1.0;
double r800166 = 3.0;
double r800167 = cbrt(r800166);
double r800168 = r800167 * r800167;
double r800169 = r800165 / r800168;
double r800170 = 1.0;
double r800171 = r800170 / r800167;
double r800172 = x;
double r800173 = y;
double r800174 = 27.0;
double r800175 = r800173 * r800174;
double r800176 = r800172 / r800175;
double r800177 = r800166 * r800176;
double r800178 = z;
double r800179 = 2.0;
double r800180 = r800178 * r800179;
double r800181 = r800177 / r800180;
double r800182 = t;
double r800183 = sqrt(r800182);
double r800184 = r800181 * r800183;
double r800185 = acos(r800184);
double r800186 = r800171 * r800185;
double r800187 = r800169 * r800186;
return r800187;
}




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 *-un-lft-identity1.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)))))