\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(e^{t}\right)}^{\left(\frac{\frac{t}{2}}{2}\right)} \cdot {\left(e^{t}\right)}^{\left(\frac{\frac{t}{2}}{2}\right)}\right)double f(double x, double y, double z, double t) {
double r906149 = x;
double r906150 = 0.5;
double r906151 = r906149 * r906150;
double r906152 = y;
double r906153 = r906151 - r906152;
double r906154 = z;
double r906155 = 2.0;
double r906156 = r906154 * r906155;
double r906157 = sqrt(r906156);
double r906158 = r906153 * r906157;
double r906159 = t;
double r906160 = r906159 * r906159;
double r906161 = r906160 / r906155;
double r906162 = exp(r906161);
double r906163 = r906158 * r906162;
return r906163;
}
double f(double x, double y, double z, double t) {
double r906164 = x;
double r906165 = 0.5;
double r906166 = r906164 * r906165;
double r906167 = y;
double r906168 = r906166 - r906167;
double r906169 = z;
double r906170 = 2.0;
double r906171 = r906169 * r906170;
double r906172 = sqrt(r906171);
double r906173 = r906168 * r906172;
double r906174 = t;
double r906175 = exp(r906174);
double r906176 = r906174 / r906170;
double r906177 = 2.0;
double r906178 = r906176 / r906177;
double r906179 = pow(r906175, r906178);
double r906180 = r906179 * r906179;
double r906181 = r906173 * r906180;
return r906181;
}




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-cbrt-cube0.3
Simplified0.3
rmApplied sqr-pow0.3
Applied unpow-prod-down0.3
Applied cbrt-prod0.3
Simplified0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019362 +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))))