\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 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 r823175 = 1.0;
double r823176 = 3.0;
double r823177 = r823175 / r823176;
double r823178 = x;
double r823179 = y;
double r823180 = 27.0;
double r823181 = r823179 * r823180;
double r823182 = r823178 / r823181;
double r823183 = r823176 * r823182;
double r823184 = z;
double r823185 = 2.0;
double r823186 = r823184 * r823185;
double r823187 = r823183 / r823186;
double r823188 = t;
double r823189 = sqrt(r823188);
double r823190 = r823187 * r823189;
double r823191 = acos(r823190);
double r823192 = r823177 * r823191;
return r823192;
}
double f(double x, double y, double z, double t) {
double r823193 = 1.0;
double r823194 = sqrt(r823193);
double r823195 = 3.0;
double r823196 = cbrt(r823195);
double r823197 = r823196 * r823196;
double r823198 = r823194 / r823197;
double r823199 = r823194 / r823196;
double r823200 = x;
double r823201 = r823195 * r823200;
double r823202 = z;
double r823203 = 2.0;
double r823204 = r823202 * r823203;
double r823205 = y;
double r823206 = 27.0;
double r823207 = r823205 * r823206;
double r823208 = r823204 * r823207;
double r823209 = r823201 / r823208;
double r823210 = t;
double r823211 = sqrt(r823210);
double r823212 = r823209 * r823211;
double r823213 = acos(r823212);
double r823214 = r823199 * r823213;
double r823215 = r823198 * r823214;
return r823215;
}




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 add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied associate-*r/0.3
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2019354
(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)))))