\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 \left(\frac{1}{\sqrt[3]{3}} \cdot \cos^{-1} \left(\frac{0.1111111111111111 \cdot \frac{\left|{t}^{\frac{1}{3}}\right| \cdot x}{y}}{z \cdot 2} \cdot \sqrt{\sqrt[3]{t}}\right)\right)double f(double x, double y, double z, double t) {
double r663133 = 1.0;
double r663134 = 3.0;
double r663135 = r663133 / r663134;
double r663136 = x;
double r663137 = y;
double r663138 = 27.0;
double r663139 = r663137 * r663138;
double r663140 = r663136 / r663139;
double r663141 = r663134 * r663140;
double r663142 = z;
double r663143 = 2.0;
double r663144 = r663142 * r663143;
double r663145 = r663141 / r663144;
double r663146 = t;
double r663147 = sqrt(r663146);
double r663148 = r663145 * r663147;
double r663149 = acos(r663148);
double r663150 = r663135 * r663149;
return r663150;
}
double f(double x, double y, double z, double t) {
double r663151 = 1.0;
double r663152 = 3.0;
double r663153 = cbrt(r663152);
double r663154 = r663153 * r663153;
double r663155 = r663151 / r663154;
double r663156 = 1.0;
double r663157 = r663156 / r663153;
double r663158 = 0.1111111111111111;
double r663159 = t;
double r663160 = 0.3333333333333333;
double r663161 = pow(r663159, r663160);
double r663162 = fabs(r663161);
double r663163 = x;
double r663164 = r663162 * r663163;
double r663165 = y;
double r663166 = r663164 / r663165;
double r663167 = r663158 * r663166;
double r663168 = z;
double r663169 = 2.0;
double r663170 = r663168 * r663169;
double r663171 = r663167 / r663170;
double r663172 = cbrt(r663159);
double r663173 = sqrt(r663172);
double r663174 = r663171 * r663173;
double r663175 = acos(r663174);
double r663176 = r663157 * r663175;
double r663177 = r663155 * r663176;
return r663177;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.2 |
|---|---|
| Target | 1.2 |
| Herbie | 0.4 |
Initial program 1.2
rmApplied add-cube-cbrt1.2
Applied *-un-lft-identity1.2
Applied times-frac0.3
Applied associate-*l*0.3
rmApplied add-cube-cbrt0.3
Applied sqrt-prod0.3
Applied associate-*r*0.3
Simplified0.3
Taylor expanded around 0 0.4
Final simplification0.4
herbie shell --seed 2020100
(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)))))