\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 r754200 = 1.0;
double r754201 = 3.0;
double r754202 = r754200 / r754201;
double r754203 = x;
double r754204 = y;
double r754205 = 27.0;
double r754206 = r754204 * r754205;
double r754207 = r754203 / r754206;
double r754208 = r754201 * r754207;
double r754209 = z;
double r754210 = 2.0;
double r754211 = r754209 * r754210;
double r754212 = r754208 / r754211;
double r754213 = t;
double r754214 = sqrt(r754213);
double r754215 = r754212 * r754214;
double r754216 = acos(r754215);
double r754217 = r754202 * r754216;
return r754217;
}
double f(double x, double y, double z, double t) {
double r754218 = 1.0;
double r754219 = sqrt(r754218);
double r754220 = 3.0;
double r754221 = cbrt(r754220);
double r754222 = r754221 * r754221;
double r754223 = r754219 / r754222;
double r754224 = r754219 / r754221;
double r754225 = x;
double r754226 = r754220 * r754225;
double r754227 = z;
double r754228 = 2.0;
double r754229 = r754227 * r754228;
double r754230 = y;
double r754231 = 27.0;
double r754232 = r754230 * r754231;
double r754233 = r754229 * r754232;
double r754234 = r754226 / r754233;
double r754235 = t;
double r754236 = sqrt(r754235);
double r754237 = r754234 * r754236;
double r754238 = acos(r754237);
double r754239 = r754224 * r754238;
double r754240 = r754223 * r754239;
return r754240;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.3 |
|---|---|
| Target | 1.3 |
| Herbie | 0.4 |
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.4
Final simplification0.4
herbie shell --seed 2020002
(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)))))