Average Error: 0.3 → 0.3
Time: 7.7s
Precision: 64
\[\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\]
\[\left(x \cdot 0.5 - y\right) \cdot \left(\left(\sqrt{z \cdot 2} \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right) \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right)\]
\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}
\left(x \cdot 0.5 - y\right) \cdot \left(\left(\sqrt{z \cdot 2} \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right) \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right)
double f(double x, double y, double z, double t) {
        double r774262 = x;
        double r774263 = 0.5;
        double r774264 = r774262 * r774263;
        double r774265 = y;
        double r774266 = r774264 - r774265;
        double r774267 = z;
        double r774268 = 2.0;
        double r774269 = r774267 * r774268;
        double r774270 = sqrt(r774269);
        double r774271 = r774266 * r774270;
        double r774272 = t;
        double r774273 = r774272 * r774272;
        double r774274 = r774273 / r774268;
        double r774275 = exp(r774274);
        double r774276 = r774271 * r774275;
        return r774276;
}

double f(double x, double y, double z, double t) {
        double r774277 = x;
        double r774278 = 0.5;
        double r774279 = r774277 * r774278;
        double r774280 = y;
        double r774281 = r774279 - r774280;
        double r774282 = z;
        double r774283 = 2.0;
        double r774284 = r774282 * r774283;
        double r774285 = sqrt(r774284);
        double r774286 = t;
        double r774287 = r774286 * r774286;
        double r774288 = r774287 / r774283;
        double r774289 = exp(r774288);
        double r774290 = sqrt(r774289);
        double r774291 = r774285 * r774290;
        double r774292 = r774291 * r774290;
        double r774293 = r774281 * r774292;
        return r774293;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.3
Target0.3
Herbie0.3
\[\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot {\left(e^{1}\right)}^{\left(\frac{t \cdot t}{2}\right)}\]

Derivation

  1. Initial program 0.3

    \[\left(\left(x \cdot 0.5 - y\right) \cdot \sqrt{z \cdot 2}\right) \cdot e^{\frac{t \cdot t}{2}}\]
  2. Using strategy rm
  3. Applied associate-*l*0.3

    \[\leadsto \color{blue}{\left(x \cdot 0.5 - y\right) \cdot \left(\sqrt{z \cdot 2} \cdot e^{\frac{t \cdot t}{2}}\right)}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.3

    \[\leadsto \left(x \cdot 0.5 - y\right) \cdot \left(\sqrt{z \cdot 2} \cdot \color{blue}{\left(\sqrt{e^{\frac{t \cdot t}{2}}} \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right)}\right)\]
  6. Applied associate-*r*0.3

    \[\leadsto \left(x \cdot 0.5 - y\right) \cdot \color{blue}{\left(\left(\sqrt{z \cdot 2} \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right) \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right)}\]
  7. Final simplification0.3

    \[\leadsto \left(x \cdot 0.5 - y\right) \cdot \left(\left(\sqrt{z \cdot 2} \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right) \cdot \sqrt{e^{\frac{t \cdot t}{2}}}\right)\]

Reproduce

herbie shell --seed 2020081 
(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))))