Average Error: 0.0 → 0.0
Time: 976.0ms
Precision: 64
\[x - \frac{y}{1 + \frac{x \cdot y}{2}}\]
\[x - \frac{y}{1 + \frac{x \cdot y}{2}}\]
x - \frac{y}{1 + \frac{x \cdot y}{2}}
x - \frac{y}{1 + \frac{x \cdot y}{2}}
double f(double x, double y) {
        double r228811 = x;
        double r228812 = y;
        double r228813 = 1.0;
        double r228814 = r228811 * r228812;
        double r228815 = 2.0;
        double r228816 = r228814 / r228815;
        double r228817 = r228813 + r228816;
        double r228818 = r228812 / r228817;
        double r228819 = r228811 - r228818;
        return r228819;
}

double f(double x, double y) {
        double r228820 = x;
        double r228821 = y;
        double r228822 = 1.0;
        double r228823 = r228820 * r228821;
        double r228824 = 2.0;
        double r228825 = r228823 / r228824;
        double r228826 = r228822 + r228825;
        double r228827 = r228821 / r228826;
        double r228828 = r228820 - r228827;
        return r228828;
}

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. Final simplification0.0

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

Reproduce

herbie shell --seed 2020036 +o rules:numerics
(FPCore (x y)
  :name "Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, B"
  :precision binary64
  (- x (/ y (+ 1 (/ (* x y) 2)))))