Average Error: 0.3 → 0.3
Time: 24.8s
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 r37583645 = x;
        double r37583646 = 0.5;
        double r37583647 = r37583645 * r37583646;
        double r37583648 = y;
        double r37583649 = r37583647 - r37583648;
        double r37583650 = z;
        double r37583651 = 2.0;
        double r37583652 = r37583650 * r37583651;
        double r37583653 = sqrt(r37583652);
        double r37583654 = r37583649 * r37583653;
        double r37583655 = t;
        double r37583656 = r37583655 * r37583655;
        double r37583657 = r37583656 / r37583651;
        double r37583658 = exp(r37583657);
        double r37583659 = r37583654 * r37583658;
        return r37583659;
}

double f(double x, double y, double z, double t) {
        double r37583660 = t;
        double r37583661 = r37583660 * r37583660;
        double r37583662 = 2.0;
        double r37583663 = r37583661 / r37583662;
        double r37583664 = exp(r37583663);
        double r37583665 = sqrt(r37583664);
        double r37583666 = x;
        double r37583667 = 0.5;
        double r37583668 = r37583666 * r37583667;
        double r37583669 = y;
        double r37583670 = r37583668 - r37583669;
        double r37583671 = z;
        double r37583672 = r37583671 * r37583662;
        double r37583673 = sqrt(r37583672);
        double r37583674 = r37583670 * r37583673;
        double r37583675 = r37583665 * r37583674;
        double r37583676 = r37583675 * r37583665;
        return r37583676;
}

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