Average Error: 0.0 → 0.0
Time: 16.7s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}\]
\[x - \frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.04481, x, 0.99229\right), x, 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}\]
x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}
x - \frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.04481, x, 0.99229\right), x, 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}
double f(double x) {
        double r3755559 = x;
        double r3755560 = 2.30753;
        double r3755561 = 0.27061;
        double r3755562 = r3755559 * r3755561;
        double r3755563 = r3755560 + r3755562;
        double r3755564 = 1.0;
        double r3755565 = 0.99229;
        double r3755566 = 0.04481;
        double r3755567 = r3755559 * r3755566;
        double r3755568 = r3755565 + r3755567;
        double r3755569 = r3755568 * r3755559;
        double r3755570 = r3755564 + r3755569;
        double r3755571 = r3755563 / r3755570;
        double r3755572 = r3755559 - r3755571;
        return r3755572;
}

double f(double x) {
        double r3755573 = x;
        double r3755574 = 1.0;
        double r3755575 = 0.04481;
        double r3755576 = 0.99229;
        double r3755577 = fma(r3755575, r3755573, r3755576);
        double r3755578 = 1.0;
        double r3755579 = fma(r3755577, r3755573, r3755578);
        double r3755580 = 0.27061;
        double r3755581 = 2.30753;
        double r3755582 = fma(r3755580, r3755573, r3755581);
        double r3755583 = r3755579 / r3755582;
        double r3755584 = r3755574 / r3755583;
        double r3755585 = r3755573 - r3755584;
        return r3755585;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{x - \frac{\mathsf{fma}\left(0.27061, x, 2.30753\right)}{\mathsf{fma}\left(\mathsf{fma}\left(0.04481, x, 0.99229\right), x, 1.0\right)}}\]
  3. Using strategy rm
  4. Applied clear-num0.0

    \[\leadsto x - \color{blue}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.04481, x, 0.99229\right), x, 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}}\]
  5. Final simplification0.0

    \[\leadsto x - \frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.04481, x, 0.99229\right), x, 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}\]

Reproduce

herbie shell --seed 2019162 +o rules:numerics
(FPCore (x)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, D"
  (- x (/ (+ 2.30753 (* x 0.27061)) (+ 1.0 (* (+ 0.99229 (* x 0.04481)) x)))))