\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\left({\left({\left(e^{t}\right)}^{t}\right)}^{\left(\frac{\frac{1}{2}}{2}\right)} \cdot \left(\left(x \cdot 0.5\right) \cdot \sqrt{z \cdot 2} + \left(-y\right) \cdot \sqrt{z \cdot 2}\right)\right) \cdot {\left({\left(e^{t}\right)}^{t}\right)}^{\left(\frac{\frac{1}{2}}{2}\right)}double f(double x, double y, double z, double t) {
double r539872 = x;
double r539873 = 0.5;
double r539874 = r539872 * r539873;
double r539875 = y;
double r539876 = r539874 - r539875;
double r539877 = z;
double r539878 = 2.0;
double r539879 = r539877 * r539878;
double r539880 = sqrt(r539879);
double r539881 = r539876 * r539880;
double r539882 = t;
double r539883 = r539882 * r539882;
double r539884 = r539883 / r539878;
double r539885 = exp(r539884);
double r539886 = r539881 * r539885;
return r539886;
}
double f(double x, double y, double z, double t) {
double r539887 = t;
double r539888 = exp(r539887);
double r539889 = pow(r539888, r539887);
double r539890 = 0.5;
double r539891 = 2.0;
double r539892 = r539890 / r539891;
double r539893 = pow(r539889, r539892);
double r539894 = x;
double r539895 = 0.5;
double r539896 = r539894 * r539895;
double r539897 = z;
double r539898 = r539897 * r539891;
double r539899 = sqrt(r539898);
double r539900 = r539896 * r539899;
double r539901 = y;
double r539902 = -r539901;
double r539903 = r539902 * r539899;
double r539904 = r539900 + r539903;
double r539905 = r539893 * r539904;
double r539906 = 1.0;
double r539907 = r539906 / r539891;
double r539908 = 2.0;
double r539909 = r539907 / r539908;
double r539910 = pow(r539889, r539909);
double r539911 = r539905 * r539910;
return r539911;
}




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 div-inv0.3
Applied exp-prod0.3
rmApplied add-log-exp0.3
Applied exp-to-pow0.3
rmApplied sqr-pow0.3
Applied associate-*r*0.3
Simplified0.3
rmApplied sub-neg0.3
Applied distribute-lft-in0.3
Simplified0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019235
(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))))