\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}double f(double x, double y, double z, double t) {
double r649439 = x;
double r649440 = 0.5;
double r649441 = r649439 * r649440;
double r649442 = y;
double r649443 = r649441 - r649442;
double r649444 = z;
double r649445 = 2.0;
double r649446 = r649444 * r649445;
double r649447 = sqrt(r649446);
double r649448 = r649443 * r649447;
double r649449 = t;
double r649450 = r649449 * r649449;
double r649451 = r649450 / r649445;
double r649452 = exp(r649451);
double r649453 = r649448 * r649452;
return r649453;
}
double f(double x, double y, double z, double t) {
double r649454 = x;
double r649455 = 0.5;
double r649456 = r649454 * r649455;
double r649457 = y;
double r649458 = r649456 - r649457;
double r649459 = z;
double r649460 = 2.0;
double r649461 = r649459 * r649460;
double r649462 = sqrt(r649461);
double r649463 = r649458 * r649462;
double r649464 = t;
double r649465 = r649464 * r649464;
double r649466 = r649465 / r649460;
double r649467 = exp(r649466);
double r649468 = r649463 * r649467;
return r649468;
}




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
Final simplification0.3
herbie shell --seed 2019194
(FPCore (x y z t)
:name "Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, A"
:herbie-target
(* (* (- (* x 0.5) y) (sqrt (* z 2.0))) (pow (exp 1.0) (/ (* t t) 2.0)))
(* (* (- (* x 0.5) y) (sqrt (* z 2.0))) (exp (/ (* t t) 2.0))))