\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{{\left(\cos^{-1} \left(\frac{3 \cdot x}{\left(z \cdot 2\right) \cdot \left(y \cdot 27\right)} \cdot \sqrt{t}\right)\right)}^{3} \cdot {1}^{3}}{3}}double f(double x, double y, double z, double t) {
double r780196 = 1.0;
double r780197 = 3.0;
double r780198 = r780196 / r780197;
double r780199 = x;
double r780200 = y;
double r780201 = 27.0;
double r780202 = r780200 * r780201;
double r780203 = r780199 / r780202;
double r780204 = r780197 * r780203;
double r780205 = z;
double r780206 = 2.0;
double r780207 = r780205 * r780206;
double r780208 = r780204 / r780207;
double r780209 = t;
double r780210 = sqrt(r780209);
double r780211 = r780208 * r780210;
double r780212 = acos(r780211);
double r780213 = r780198 * r780212;
return r780213;
}
double f(double x, double y, double z, double t) {
double r780214 = 1.0;
double r780215 = 3.0;
double r780216 = cbrt(r780215);
double r780217 = r780216 * r780216;
double r780218 = r780214 / r780217;
double r780219 = x;
double r780220 = r780215 * r780219;
double r780221 = z;
double r780222 = 2.0;
double r780223 = r780221 * r780222;
double r780224 = y;
double r780225 = 27.0;
double r780226 = r780224 * r780225;
double r780227 = r780223 * r780226;
double r780228 = r780220 / r780227;
double r780229 = t;
double r780230 = sqrt(r780229);
double r780231 = r780228 * r780230;
double r780232 = acos(r780231);
double r780233 = 3.0;
double r780234 = pow(r780232, r780233);
double r780235 = 1.0;
double r780236 = pow(r780235, r780233);
double r780237 = r780234 * r780236;
double r780238 = r780237 / r780215;
double r780239 = cbrt(r780238);
double r780240 = r780218 * r780239;
return r780240;
}




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
rmApplied associate-*r/0.4
Applied associate-/l/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)))))