Average Error: 0.3 → 0.5
Time: 7.0s
Precision: 64
\[\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 \left(\sqrt{z} \cdot \sqrt{2}\right)\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}}
\left(\left(x \cdot 0.5 - y\right) \cdot \left(\sqrt{z} \cdot \sqrt{2}\right)\right) \cdot e^{\frac{t \cdot t}{2}}
double f(double x, double y, double z, double t) {
        double r846442 = x;
        double r846443 = 0.5;
        double r846444 = r846442 * r846443;
        double r846445 = y;
        double r846446 = r846444 - r846445;
        double r846447 = z;
        double r846448 = 2.0;
        double r846449 = r846447 * r846448;
        double r846450 = sqrt(r846449);
        double r846451 = r846446 * r846450;
        double r846452 = t;
        double r846453 = r846452 * r846452;
        double r846454 = r846453 / r846448;
        double r846455 = exp(r846454);
        double r846456 = r846451 * r846455;
        return r846456;
}

double f(double x, double y, double z, double t) {
        double r846457 = x;
        double r846458 = 0.5;
        double r846459 = r846457 * r846458;
        double r846460 = y;
        double r846461 = r846459 - r846460;
        double r846462 = z;
        double r846463 = sqrt(r846462);
        double r846464 = 2.0;
        double r846465 = sqrt(r846464);
        double r846466 = r846463 * r846465;
        double r846467 = r846461 * r846466;
        double r846468 = t;
        double r846469 = r846468 * r846468;
        double r846470 = r846469 / r846464;
        double r846471 = exp(r846470);
        double r846472 = r846467 * r846471;
        return r846472;
}

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.5
\[\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 sqrt-prod0.5

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

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

Reproduce

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