\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\left(\sqrt{e^{\frac{t \cdot t}{2}}} \cdot \left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right)\right) \cdot \sqrt{e^{\frac{t \cdot t}{2}}}double f(double x, double y, double z, double t) {
double r39352488 = x;
double r39352489 = 0.5;
double r39352490 = r39352488 * r39352489;
double r39352491 = y;
double r39352492 = r39352490 - r39352491;
double r39352493 = z;
double r39352494 = 2.0;
double r39352495 = r39352493 * r39352494;
double r39352496 = sqrt(r39352495);
double r39352497 = r39352492 * r39352496;
double r39352498 = t;
double r39352499 = r39352498 * r39352498;
double r39352500 = r39352499 / r39352494;
double r39352501 = exp(r39352500);
double r39352502 = r39352497 * r39352501;
return r39352502;
}
double f(double x, double y, double z, double t) {
double r39352503 = t;
double r39352504 = r39352503 * r39352503;
double r39352505 = 2.0;
double r39352506 = r39352504 / r39352505;
double r39352507 = exp(r39352506);
double r39352508 = sqrt(r39352507);
double r39352509 = x;
double r39352510 = 0.5;
double r39352511 = r39352509 * r39352510;
double r39352512 = y;
double r39352513 = r39352511 - r39352512;
double r39352514 = z;
double r39352515 = r39352514 * r39352505;
double r39352516 = sqrt(r39352515);
double r39352517 = r39352513 * r39352516;
double r39352518 = r39352508 * r39352517;
double r39352519 = r39352518 * r39352508;
return r39352519;
}




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 add-sqr-sqrt0.3
Applied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2019172
(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))))