\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{x \cdot \frac{3}{z}}{2 \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right) \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r34009146 = 1.0;
double r34009147 = 3.0;
double r34009148 = r34009146 / r34009147;
double r34009149 = x;
double r34009150 = y;
double r34009151 = 27.0;
double r34009152 = r34009150 * r34009151;
double r34009153 = r34009149 / r34009152;
double r34009154 = r34009147 * r34009153;
double r34009155 = z;
double r34009156 = 2.0;
double r34009157 = r34009155 * r34009156;
double r34009158 = r34009154 / r34009157;
double r34009159 = t;
double r34009160 = sqrt(r34009159);
double r34009161 = r34009158 * r34009160;
double r34009162 = acos(r34009161);
double r34009163 = r34009148 * r34009162;
return r34009163;
}
double f(double x, double y, double z, double t) {
double r34009164 = 1.0;
double r34009165 = 3.0;
double r34009166 = cbrt(r34009165);
double r34009167 = r34009164 / r34009166;
double r34009168 = x;
double r34009169 = z;
double r34009170 = r34009165 / r34009169;
double r34009171 = r34009168 * r34009170;
double r34009172 = 2.0;
double r34009173 = y;
double r34009174 = 27.0;
double r34009175 = r34009173 * r34009174;
double r34009176 = r34009172 * r34009175;
double r34009177 = r34009171 / r34009176;
double r34009178 = t;
double r34009179 = sqrt(r34009178);
double r34009180 = r34009177 * r34009179;
double r34009181 = acos(r34009180);
double r34009182 = r34009167 * r34009181;
double r34009183 = 1.0;
double r34009184 = r34009166 * r34009166;
double r34009185 = r34009183 / r34009184;
double r34009186 = r34009182 * r34009185;
return r34009186;
}




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.4 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied *-un-lft-identity1.3
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied *-un-lft-identity0.3
Applied sqrt-prod0.3
Applied associate-*r*0.3
Simplified0.4
Final simplification0.4
herbie shell --seed 2019171 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))