Average Error: 0.3 → 0.3
Time: 26.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(x \cdot 0.5 - y\right) \cdot \left(e^{\frac{{t}^{2}}{2}} \cdot \sqrt{z \cdot 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(e^{\frac{{t}^{2}}{2}} \cdot \sqrt{z \cdot 2}\right)
double f(double x, double y, double z, double t) {
        double r519189 = x;
        double r519190 = 0.5;
        double r519191 = r519189 * r519190;
        double r519192 = y;
        double r519193 = r519191 - r519192;
        double r519194 = z;
        double r519195 = 2.0;
        double r519196 = r519194 * r519195;
        double r519197 = sqrt(r519196);
        double r519198 = r519193 * r519197;
        double r519199 = t;
        double r519200 = r519199 * r519199;
        double r519201 = r519200 / r519195;
        double r519202 = exp(r519201);
        double r519203 = r519198 * r519202;
        return r519203;
}

double f(double x, double y, double z, double t) {
        double r519204 = x;
        double r519205 = 0.5;
        double r519206 = r519204 * r519205;
        double r519207 = y;
        double r519208 = r519206 - r519207;
        double r519209 = t;
        double r519210 = 2.0;
        double r519211 = pow(r519209, r519210);
        double r519212 = 2.0;
        double r519213 = r519211 / r519212;
        double r519214 = exp(r519213);
        double r519215 = z;
        double r519216 = r519215 * r519212;
        double r519217 = sqrt(r519216);
        double r519218 = r519214 * r519217;
        double r519219 = r519208 * r519218;
        return r519219;
}

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. Simplified0.3

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

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

Reproduce

herbie shell --seed 2019325 +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))))