Average Error: 0.3 → 0.3
Time: 25.2s
Precision: 64
\[\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}}}\]
\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;
}

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 add-sqr-sqrt0.3

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

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

    \[\leadsto \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}}}\]

Reproduce

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))))