Average Error: 0.0 → 0.0
Time: 19.8s
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(x, \mathsf{fma}\left(0.04481, x, 0.99229\right), 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(x, \mathsf{fma}\left(0.04481, x, 0.99229\right), 1.0\right)}
double f(double x) {
        double r4040565 = x;
        double r4040566 = 2.30753;
        double r4040567 = 0.27061;
        double r4040568 = r4040565 * r4040567;
        double r4040569 = r4040566 + r4040568;
        double r4040570 = 1.0;
        double r4040571 = 0.99229;
        double r4040572 = 0.04481;
        double r4040573 = r4040565 * r4040572;
        double r4040574 = r4040571 + r4040573;
        double r4040575 = r4040574 * r4040565;
        double r4040576 = r4040570 + r4040575;
        double r4040577 = r4040569 / r4040576;
        double r4040578 = r4040565 - r4040577;
        return r4040578;
}

double f(double x) {
        double r4040579 = x;
        double r4040580 = 0.27061;
        double r4040581 = 2.30753;
        double r4040582 = fma(r4040580, r4040579, r4040581);
        double r4040583 = 0.04481;
        double r4040584 = 0.99229;
        double r4040585 = fma(r4040583, r4040579, r4040584);
        double r4040586 = 1.0;
        double r4040587 = fma(r4040579, r4040585, r4040586);
        double r4040588 = r4040582 / r4040587;
        double r4040589 = r4040579 - r4040588;
        return r4040589;
}

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. Taylor expanded around 0 0.0

    \[\leadsto x - \frac{\mathsf{fma}\left(0.27061, x, 2.30753\right)}{\color{blue}{0.99229 \cdot x + \left(0.04481 \cdot {x}^{2} + 1.0\right)}}\]
  4. Simplified0.0

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

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

Reproduce

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