Average Error: 0.0 → 0.0
Time: 35.4s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}\]
\[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)}\]
x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}
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)}
double f(double x) {
        double r4653445 = x;
        double r4653446 = 2.30753;
        double r4653447 = 0.27061;
        double r4653448 = r4653445 * r4653447;
        double r4653449 = r4653446 + r4653448;
        double r4653450 = 1.0;
        double r4653451 = 0.99229;
        double r4653452 = 0.04481;
        double r4653453 = r4653445 * r4653452;
        double r4653454 = r4653451 + r4653453;
        double r4653455 = r4653454 * r4653445;
        double r4653456 = r4653450 + r4653455;
        double r4653457 = r4653449 / r4653456;
        double r4653458 = r4653445 - r4653457;
        return r4653458;
}

double f(double x) {
        double r4653459 = x;
        double r4653460 = 0.27061;
        double r4653461 = 2.30753;
        double r4653462 = fma(r4653460, r4653459, r4653461);
        double r4653463 = 0.04481;
        double r4653464 = 0.99229;
        double r4653465 = fma(r4653463, r4653459, r4653464);
        double r4653466 = 1.0;
        double r4653467 = fma(r4653465, r4653459, r4653466);
        double r4653468 = r4653462 / r4653467;
        double r4653469 = r4653459 - r4653468;
        return r4653469;
}

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

    \[\leadsto 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)}\]

Reproduce

herbie shell --seed 2019165 +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)))))