Average Error: 0.0 → 0.0
Time: 13.0s
Precision: 64
\[x - \frac{y}{1 + \frac{x \cdot y}{2}}\]
\[x - y \cdot \frac{1}{1 + \frac{1}{\frac{\frac{2}{x}}{y}}}\]
x - \frac{y}{1 + \frac{x \cdot y}{2}}
x - y \cdot \frac{1}{1 + \frac{1}{\frac{\frac{2}{x}}{y}}}
double f(double x, double y) {
        double r177644 = x;
        double r177645 = y;
        double r177646 = 1.0;
        double r177647 = r177644 * r177645;
        double r177648 = 2.0;
        double r177649 = r177647 / r177648;
        double r177650 = r177646 + r177649;
        double r177651 = r177645 / r177650;
        double r177652 = r177644 - r177651;
        return r177652;
}

double f(double x, double y) {
        double r177653 = x;
        double r177654 = y;
        double r177655 = 1.0;
        double r177656 = 1.0;
        double r177657 = 2.0;
        double r177658 = r177657 / r177653;
        double r177659 = r177658 / r177654;
        double r177660 = r177655 / r177659;
        double r177661 = r177656 + r177660;
        double r177662 = r177655 / r177661;
        double r177663 = r177654 * r177662;
        double r177664 = r177653 - r177663;
        return r177664;
}

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. Using strategy rm
  5. Applied clear-num0.1

    \[\leadsto x - y \cdot \frac{1}{1 + \color{blue}{\frac{1}{\frac{2}{x \cdot y}}}}\]
  6. Simplified0.0

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

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

Reproduce

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