Average Error: 0.0 → 0.1
Time: 7.6s
Precision: 64
\[x - \frac{y}{1 + \frac{x \cdot y}{2}}\]
\[x - \frac{1}{1 + \frac{x \cdot y}{2}} \cdot y\]
x - \frac{y}{1 + \frac{x \cdot y}{2}}
x - \frac{1}{1 + \frac{x \cdot y}{2}} \cdot y
double f(double x, double y) {
        double r13153002 = x;
        double r13153003 = y;
        double r13153004 = 1.0;
        double r13153005 = r13153002 * r13153003;
        double r13153006 = 2.0;
        double r13153007 = r13153005 / r13153006;
        double r13153008 = r13153004 + r13153007;
        double r13153009 = r13153003 / r13153008;
        double r13153010 = r13153002 - r13153009;
        return r13153010;
}

double f(double x, double y) {
        double r13153011 = x;
        double r13153012 = 1.0;
        double r13153013 = 1.0;
        double r13153014 = y;
        double r13153015 = r13153011 * r13153014;
        double r13153016 = 2.0;
        double r13153017 = r13153015 / r13153016;
        double r13153018 = r13153013 + r13153017;
        double r13153019 = r13153012 / r13153018;
        double r13153020 = r13153019 * r13153014;
        double r13153021 = r13153011 - r13153020;
        return r13153021;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[x - \frac{y}{1 + \frac{x \cdot y}{2}}\]
  2. Using strategy rm
  3. Applied div-inv0.1

    \[\leadsto x - \color{blue}{y \cdot \frac{1}{1 + \frac{x \cdot y}{2}}}\]
  4. Final simplification0.1

    \[\leadsto x - \frac{1}{1 + \frac{x \cdot y}{2}} \cdot y\]

Reproduce

herbie shell --seed 2019170 
(FPCore (x y)
  :name "Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, B"
  (- x (/ y (+ 1.0 (/ (* x y) 2.0)))))