Average Error: 0.0 → 0.0
Time: 14.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 r4360408 = x;
        double r4360409 = 2.30753;
        double r4360410 = 0.27061;
        double r4360411 = r4360408 * r4360410;
        double r4360412 = r4360409 + r4360411;
        double r4360413 = 1.0;
        double r4360414 = 0.99229;
        double r4360415 = 0.04481;
        double r4360416 = r4360408 * r4360415;
        double r4360417 = r4360414 + r4360416;
        double r4360418 = r4360417 * r4360408;
        double r4360419 = r4360413 + r4360418;
        double r4360420 = r4360412 / r4360419;
        double r4360421 = r4360408 - r4360420;
        return r4360421;
}

double f(double x) {
        double r4360422 = x;
        double r4360423 = 0.27061;
        double r4360424 = 2.30753;
        double r4360425 = fma(r4360423, r4360422, r4360424);
        double r4360426 = 0.04481;
        double r4360427 = 0.99229;
        double r4360428 = fma(r4360426, r4360422, r4360427);
        double r4360429 = 1.0;
        double r4360430 = fma(r4360428, r4360422, r4360429);
        double r4360431 = r4360425 / r4360430;
        double r4360432 = r4360422 - r4360431;
        return r4360432;
}

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 2019158 +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)))))