\frac{1}{3} \cdot \cos^{-1} \left(\frac{3 \cdot \frac{x}{y \cdot 27}}{z \cdot 2} \cdot \sqrt{t}\right)\frac{1 \cdot \cos^{-1} \left(\log \left(e^{\frac{\frac{x}{y \cdot 27} \cdot 3}{2 \cdot z} \cdot \sqrt{t}}\right)\right)}{\sqrt[3]{3}} \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}double f(double x, double y, double z, double t) {
double r36698406 = 1.0;
double r36698407 = 3.0;
double r36698408 = r36698406 / r36698407;
double r36698409 = x;
double r36698410 = y;
double r36698411 = 27.0;
double r36698412 = r36698410 * r36698411;
double r36698413 = r36698409 / r36698412;
double r36698414 = r36698407 * r36698413;
double r36698415 = z;
double r36698416 = 2.0;
double r36698417 = r36698415 * r36698416;
double r36698418 = r36698414 / r36698417;
double r36698419 = t;
double r36698420 = sqrt(r36698419);
double r36698421 = r36698418 * r36698420;
double r36698422 = acos(r36698421);
double r36698423 = r36698408 * r36698422;
return r36698423;
}
double f(double x, double y, double z, double t) {
double r36698424 = 1.0;
double r36698425 = x;
double r36698426 = y;
double r36698427 = 27.0;
double r36698428 = r36698426 * r36698427;
double r36698429 = r36698425 / r36698428;
double r36698430 = 3.0;
double r36698431 = r36698429 * r36698430;
double r36698432 = 2.0;
double r36698433 = z;
double r36698434 = r36698432 * r36698433;
double r36698435 = r36698431 / r36698434;
double r36698436 = t;
double r36698437 = sqrt(r36698436);
double r36698438 = r36698435 * r36698437;
double r36698439 = exp(r36698438);
double r36698440 = log(r36698439);
double r36698441 = acos(r36698440);
double r36698442 = r36698424 * r36698441;
double r36698443 = cbrt(r36698430);
double r36698444 = r36698442 / r36698443;
double r36698445 = 1.0;
double r36698446 = r36698443 * r36698443;
double r36698447 = r36698445 / r36698446;
double r36698448 = r36698444 * r36698447;
return r36698448;
}




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.3
Applied associate-*l*0.3
rmApplied associate-*l/0.3
rmApplied add-log-exp0.3
Final simplification0.3
herbie shell --seed 2019172
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, D"
:herbie-target
(/ (acos (* (/ (/ x 27.0) (* y z)) (/ (sqrt t) (/ 2.0 3.0)))) 3.0)
(* (/ 1.0 3.0) (acos (* (/ (* 3.0 (/ x (* y 27.0))) (* z 2.0)) (sqrt t)))))