\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 \left(\left(\sqrt[3]{{\left(e^{t}\right)}^{\left(\frac{t}{2}\right)}} \cdot \sqrt[3]{{\left(e^{t}\right)}^{\left(\frac{t}{2}\right)}}\right) \cdot \sqrt[3]{{\left(e^{t}\right)}^{\left(\frac{t}{2}\right)}}\right)double f(double x, double y, double z, double t) {
double r760316 = x;
double r760317 = 0.5;
double r760318 = r760316 * r760317;
double r760319 = y;
double r760320 = r760318 - r760319;
double r760321 = z;
double r760322 = 2.0;
double r760323 = r760321 * r760322;
double r760324 = sqrt(r760323);
double r760325 = r760320 * r760324;
double r760326 = t;
double r760327 = r760326 * r760326;
double r760328 = r760327 / r760322;
double r760329 = exp(r760328);
double r760330 = r760325 * r760329;
return r760330;
}
double f(double x, double y, double z, double t) {
double r760331 = x;
double r760332 = 0.5;
double r760333 = r760331 * r760332;
double r760334 = y;
double r760335 = r760333 - r760334;
double r760336 = z;
double r760337 = 2.0;
double r760338 = r760336 * r760337;
double r760339 = sqrt(r760338);
double r760340 = r760335 * r760339;
double r760341 = t;
double r760342 = exp(r760341);
double r760343 = r760341 / r760337;
double r760344 = pow(r760342, r760343);
double r760345 = cbrt(r760344);
double r760346 = r760345 * r760345;
double r760347 = r760346 * r760345;
double r760348 = r760340 * r760347;
return r760348;
}




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
Final simplification0.3
herbie shell --seed 2020062 +o rules:numerics
(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))))