Average Error: 0.0 → 0.0
Time: 12.1s
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 r3226720 = x;
        double r3226721 = 2.30753;
        double r3226722 = 0.27061;
        double r3226723 = r3226720 * r3226722;
        double r3226724 = r3226721 + r3226723;
        double r3226725 = 1.0;
        double r3226726 = 0.99229;
        double r3226727 = 0.04481;
        double r3226728 = r3226720 * r3226727;
        double r3226729 = r3226726 + r3226728;
        double r3226730 = r3226729 * r3226720;
        double r3226731 = r3226725 + r3226730;
        double r3226732 = r3226724 / r3226731;
        double r3226733 = r3226720 - r3226732;
        return r3226733;
}

double f(double x) {
        double r3226734 = x;
        double r3226735 = 0.27061;
        double r3226736 = 2.30753;
        double r3226737 = fma(r3226735, r3226734, r3226736);
        double r3226738 = 0.04481;
        double r3226739 = 0.99229;
        double r3226740 = fma(r3226738, r3226734, r3226739);
        double r3226741 = 1.0;
        double r3226742 = fma(r3226740, r3226734, r3226741);
        double r3226743 = r3226737 / r3226742;
        double r3226744 = r3226734 - r3226743;
        return r3226744;
}

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