Average Error: 0.0 → 0.0
Time: 10.2s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}\]
\[x - \frac{1}{\frac{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481, x, 0.99229\right), 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}\]
x - \frac{2.30753 + x \cdot 0.27061}{1.0 + \left(0.99229 + x \cdot 0.04481\right) \cdot x}
x - \frac{1}{\frac{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481, x, 0.99229\right), 1.0\right)}{\mathsf{fma}\left(0.27061, x, 2.30753\right)}}
double f(double x) {
        double r1250990 = x;
        double r1250991 = 2.30753;
        double r1250992 = 0.27061;
        double r1250993 = r1250990 * r1250992;
        double r1250994 = r1250991 + r1250993;
        double r1250995 = 1.0;
        double r1250996 = 0.99229;
        double r1250997 = 0.04481;
        double r1250998 = r1250990 * r1250997;
        double r1250999 = r1250996 + r1250998;
        double r1251000 = r1250999 * r1250990;
        double r1251001 = r1250995 + r1251000;
        double r1251002 = r1250994 / r1251001;
        double r1251003 = r1250990 - r1251002;
        return r1251003;
}

double f(double x) {
        double r1251004 = x;
        double r1251005 = 1.0;
        double r1251006 = 0.04481;
        double r1251007 = 0.99229;
        double r1251008 = fma(r1251006, r1251004, r1251007);
        double r1251009 = 1.0;
        double r1251010 = fma(r1251004, r1251008, r1251009);
        double r1251011 = 0.27061;
        double r1251012 = 2.30753;
        double r1251013 = fma(r1251011, r1251004, r1251012);
        double r1251014 = r1251010 / r1251013;
        double r1251015 = r1251005 / r1251014;
        double r1251016 = r1251004 - r1251015;
        return r1251016;
}

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(x, \mathsf{fma}\left(0.04481, x, 0.99229\right), 1.0\right)}}\]
  3. Using strategy rm
  4. Applied clear-num0.0

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

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

Reproduce

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