\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(\left(0.05555555555555555247160270937456516548991 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)double f(double x, double y, double z, double t) {
double r675133 = 1.0;
double r675134 = 3.0;
double r675135 = r675133 / r675134;
double r675136 = x;
double r675137 = y;
double r675138 = 27.0;
double r675139 = r675137 * r675138;
double r675140 = r675136 / r675139;
double r675141 = r675134 * r675140;
double r675142 = z;
double r675143 = 2.0;
double r675144 = r675142 * r675143;
double r675145 = r675141 / r675144;
double r675146 = t;
double r675147 = sqrt(r675146);
double r675148 = r675145 * r675147;
double r675149 = acos(r675148);
double r675150 = r675135 * r675149;
return r675150;
}
double f(double x, double y, double z, double t) {
double r675151 = 1.0;
double r675152 = sqrt(r675151);
double r675153 = 3.0;
double r675154 = cbrt(r675153);
double r675155 = r675154 * r675154;
double r675156 = r675152 / r675155;
double r675157 = r675152 / r675154;
double r675158 = 0.05555555555555555;
double r675159 = x;
double r675160 = z;
double r675161 = y;
double r675162 = r675160 * r675161;
double r675163 = r675159 / r675162;
double r675164 = r675158 * r675163;
double r675165 = t;
double r675166 = sqrt(r675165);
double r675167 = r675164 * r675166;
double r675168 = acos(r675167);
double r675169 = r675157 * r675168;
double r675170 = r675156 * r675169;
return r675170;
}




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.2 |
Initial program 1.3
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied times-frac0.3
Applied associate-*l*0.3
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019353 +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)))))