Average Error: 0.0 → 0.0
Time: 8.4s
Precision: 64
\[x - \frac{y}{1.0 + \frac{x \cdot y}{2.0}}\]
\[x - \frac{y}{\frac{x \cdot y}{2.0} + 1.0}\]
x - \frac{y}{1.0 + \frac{x \cdot y}{2.0}}
x - \frac{y}{\frac{x \cdot y}{2.0} + 1.0}
double f(double x, double y) {
        double r14421664 = x;
        double r14421665 = y;
        double r14421666 = 1.0;
        double r14421667 = r14421664 * r14421665;
        double r14421668 = 2.0;
        double r14421669 = r14421667 / r14421668;
        double r14421670 = r14421666 + r14421669;
        double r14421671 = r14421665 / r14421670;
        double r14421672 = r14421664 - r14421671;
        return r14421672;
}

double f(double x, double y) {
        double r14421673 = x;
        double r14421674 = y;
        double r14421675 = r14421673 * r14421674;
        double r14421676 = 2.0;
        double r14421677 = r14421675 / r14421676;
        double r14421678 = 1.0;
        double r14421679 = r14421677 + r14421678;
        double r14421680 = r14421674 / r14421679;
        double r14421681 = r14421673 - r14421680;
        return r14421681;
}

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.0 + \frac{x \cdot y}{2.0}}\]
  2. Final simplification0.0

    \[\leadsto x - \frac{y}{\frac{x \cdot y}{2.0} + 1.0}\]

Reproduce

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