Average Error: 0.0 → 0.0
Time: 994.0ms
Precision: 64
\[x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
\[\frac{-\mathsf{fma}\left(0.2706100000000000171951342053944244980812, x, 2.307529999999999859028321225196123123169\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} + x\]
x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}
\frac{-\mathsf{fma}\left(0.2706100000000000171951342053944244980812, x, 2.307529999999999859028321225196123123169\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} + x
double f(double x) {
        double r68764 = x;
        double r68765 = 2.30753;
        double r68766 = 0.27061;
        double r68767 = r68764 * r68766;
        double r68768 = r68765 + r68767;
        double r68769 = 1.0;
        double r68770 = 0.99229;
        double r68771 = 0.04481;
        double r68772 = r68764 * r68771;
        double r68773 = r68770 + r68772;
        double r68774 = r68773 * r68764;
        double r68775 = r68769 + r68774;
        double r68776 = r68768 / r68775;
        double r68777 = r68764 - r68776;
        return r68777;
}

double f(double x) {
        double r68778 = 0.27061;
        double r68779 = x;
        double r68780 = 2.30753;
        double r68781 = fma(r68778, r68779, r68780);
        double r68782 = -r68781;
        double r68783 = 0.04481;
        double r68784 = 0.99229;
        double r68785 = fma(r68783, r68779, r68784);
        double r68786 = 1.0;
        double r68787 = fma(r68779, r68785, r68786);
        double r68788 = r68782 / r68787;
        double r68789 = r68788 + r68779;
        return r68789;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{-\mathsf{fma}\left(0.2706100000000000171951342053944244980812, x, 2.307529999999999859028321225196123123169\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} + x}\]
  3. Final simplification0.0

    \[\leadsto \frac{-\mathsf{fma}\left(0.2706100000000000171951342053944244980812, x, 2.307529999999999859028321225196123123169\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} + x\]

Reproduce

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