\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 \frac{\frac{\cos^{-1} \left(0.055555555555555552 \cdot \left(\sqrt{t} \cdot \frac{x}{z \cdot y}\right)\right) \cdot \sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{3} \cdot \sqrt[3]{3}}}}{\sqrt[3]{\sqrt[3]{3}}}double f(double x, double y, double z, double t) {
double r767165 = 1.0;
double r767166 = 3.0;
double r767167 = r767165 / r767166;
double r767168 = x;
double r767169 = y;
double r767170 = 27.0;
double r767171 = r767169 * r767170;
double r767172 = r767168 / r767171;
double r767173 = r767166 * r767172;
double r767174 = z;
double r767175 = 2.0;
double r767176 = r767174 * r767175;
double r767177 = r767173 / r767176;
double r767178 = t;
double r767179 = sqrt(r767178);
double r767180 = r767177 * r767179;
double r767181 = acos(r767180);
double r767182 = r767167 * r767181;
return r767182;
}
double f(double x, double y, double z, double t) {
double r767183 = 1.0;
double r767184 = cbrt(r767183);
double r767185 = r767184 * r767184;
double r767186 = 3.0;
double r767187 = cbrt(r767186);
double r767188 = r767187 * r767187;
double r767189 = r767185 / r767188;
double r767190 = 0.05555555555555555;
double r767191 = t;
double r767192 = sqrt(r767191);
double r767193 = x;
double r767194 = z;
double r767195 = y;
double r767196 = r767194 * r767195;
double r767197 = r767193 / r767196;
double r767198 = r767192 * r767197;
double r767199 = r767190 * r767198;
double r767200 = acos(r767199);
double r767201 = r767200 * r767184;
double r767202 = cbrt(r767188);
double r767203 = r767201 / r767202;
double r767204 = cbrt(r767187);
double r767205 = r767203 / r767204;
double r767206 = r767189 * r767205;
return r767206;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.4 |
|---|---|
| Target | 1.2 |
| Herbie | 0.2 |
Initial program 1.4
rmApplied add-cube-cbrt1.4
Applied add-cube-cbrt1.4
Applied times-frac0.4
Applied associate-*l*0.4
Taylor expanded around 0 0.2
rmApplied add-cube-cbrt0.2
Applied cbrt-prod0.2
Applied associate-/r*0.2
Final simplification0.2
herbie shell --seed 2020057 +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)))))