Average Error: 0.0 → 0.0
Time: 3.0s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
\[\left(-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x\]
x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}
\left(-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x
double f(double x) {
        double r307 = x;
        double r308 = 2.30753;
        double r309 = 0.27061;
        double r310 = r307 * r309;
        double r311 = r308 + r310;
        double r312 = 1.0;
        double r313 = 0.99229;
        double r314 = 0.04481;
        double r315 = r307 * r314;
        double r316 = r313 + r315;
        double r317 = r316 * r307;
        double r318 = r312 + r317;
        double r319 = r311 / r318;
        double r320 = r307 - r319;
        return r320;
}

double f(double x) {
        double r321 = 0.27061;
        double r322 = x;
        double r323 = 2.30753;
        double r324 = fma(r321, r322, r323);
        double r325 = -r324;
        double r326 = 1.0;
        double r327 = 0.04481;
        double r328 = 0.99229;
        double r329 = fma(r327, r322, r328);
        double r330 = 1.0;
        double r331 = fma(r322, r329, r330);
        double r332 = r326 / r331;
        double r333 = r325 * r332;
        double r334 = r333 + r322;
        return r334;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x}\]
  3. Using strategy rm
  4. Applied div-inv0.0

    \[\leadsto \color{blue}{\left(-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}} + x\]
  5. Final simplification0.0

    \[\leadsto \left(-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x\]

Reproduce

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