\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 \sqrt[3]{\frac{{1}^{3}}{\frac{3}{{\left(\cos^{-1} \left(\left(0.055555555555555552 \cdot \frac{x}{z \cdot y}\right) \cdot \sqrt{t}\right)\right)}^{3}}}}double f(double x, double y, double z, double t) {
double r894153 = 1.0;
double r894154 = 3.0;
double r894155 = r894153 / r894154;
double r894156 = x;
double r894157 = y;
double r894158 = 27.0;
double r894159 = r894157 * r894158;
double r894160 = r894156 / r894159;
double r894161 = r894154 * r894160;
double r894162 = z;
double r894163 = 2.0;
double r894164 = r894162 * r894163;
double r894165 = r894161 / r894164;
double r894166 = t;
double r894167 = sqrt(r894166);
double r894168 = r894165 * r894167;
double r894169 = acos(r894168);
double r894170 = r894155 * r894169;
return r894170;
}
double f(double x, double y, double z, double t) {
double r894171 = 1.0;
double r894172 = 3.0;
double r894173 = cbrt(r894172);
double r894174 = r894173 * r894173;
double r894175 = r894171 / r894174;
double r894176 = 1.0;
double r894177 = 3.0;
double r894178 = pow(r894176, r894177);
double r894179 = 0.05555555555555555;
double r894180 = x;
double r894181 = z;
double r894182 = y;
double r894183 = r894181 * r894182;
double r894184 = r894180 / r894183;
double r894185 = r894179 * r894184;
double r894186 = t;
double r894187 = sqrt(r894186);
double r894188 = r894185 * r894187;
double r894189 = acos(r894188);
double r894190 = pow(r894189, r894177);
double r894191 = r894172 / r894190;
double r894192 = r894178 / r894191;
double r894193 = cbrt(r894192);
double r894194 = r894175 * r894193;
return r894194;
}




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 *-un-lft-identity1.3
Applied times-frac0.4
Applied associate-*l*0.3
Taylor expanded around 0 0.3
rmApplied add-cbrt-cube1.3
Applied add-cbrt-cube1.3
Applied cbrt-undiv0.3
Applied cbrt-unprod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047
(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)))))