\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\left(\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot {\left(\sqrt[3]{e^{t}} \cdot \sqrt[3]{e^{t}}\right)}^{\left(\frac{t}{2}\right)}\right) \cdot {\left(\sqrt[3]{e^{t}}\right)}^{\left(\frac{t}{2}\right)}double f(double x, double y, double z, double t) {
double r856711 = x;
double r856712 = 0.5;
double r856713 = r856711 * r856712;
double r856714 = y;
double r856715 = r856713 - r856714;
double r856716 = z;
double r856717 = 2.0;
double r856718 = r856716 * r856717;
double r856719 = sqrt(r856718);
double r856720 = r856715 * r856719;
double r856721 = t;
double r856722 = r856721 * r856721;
double r856723 = r856722 / r856717;
double r856724 = exp(r856723);
double r856725 = r856720 * r856724;
return r856725;
}
double f(double x, double y, double z, double t) {
double r856726 = x;
double r856727 = 0.5;
double r856728 = r856726 * r856727;
double r856729 = y;
double r856730 = r856728 - r856729;
double r856731 = z;
double r856732 = 2.0;
double r856733 = r856731 * r856732;
double r856734 = sqrt(r856733);
double r856735 = r856730 * r856734;
double r856736 = t;
double r856737 = exp(r856736);
double r856738 = cbrt(r856737);
double r856739 = r856738 * r856738;
double r856740 = r856736 / r856732;
double r856741 = pow(r856739, r856740);
double r856742 = r856735 * r856741;
double r856743 = pow(r856738, r856740);
double r856744 = r856742 * r856743;
return r856744;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 0.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.3
Applied exp-prod0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied unpow-prod-down0.3
Applied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2020001
(FPCore (x y z t)
:name "Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, A"
:precision binary64
:herbie-target
(* (* (- (* x 0.5) y) (sqrt (* z 2))) (pow (exp 1) (/ (* t t) 2)))
(* (* (- (* x 0.5) y) (sqrt (* z 2))) (exp (/ (* t t) 2))))