Average Error: 0.0 → 0.0
Time: 2.8s
Precision: 64
\[\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\]
\[\mathsf{fma}\left(2.30753 + x \cdot 0.27061000000000002, \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}, -x\right)\]
\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x
\mathsf{fma}\left(2.30753 + x \cdot 0.27061000000000002, \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}, -x\right)
double f(double x) {
        double r55396 = 2.30753;
        double r55397 = x;
        double r55398 = 0.27061;
        double r55399 = r55397 * r55398;
        double r55400 = r55396 + r55399;
        double r55401 = 1.0;
        double r55402 = 0.99229;
        double r55403 = 0.04481;
        double r55404 = r55397 * r55403;
        double r55405 = r55402 + r55404;
        double r55406 = r55397 * r55405;
        double r55407 = r55401 + r55406;
        double r55408 = r55400 / r55407;
        double r55409 = r55408 - r55397;
        return r55409;
}

double f(double x) {
        double r55410 = 2.30753;
        double r55411 = x;
        double r55412 = 0.27061;
        double r55413 = r55411 * r55412;
        double r55414 = r55410 + r55413;
        double r55415 = 1.0;
        double r55416 = 1.0;
        double r55417 = 0.99229;
        double r55418 = 0.04481;
        double r55419 = r55411 * r55418;
        double r55420 = r55417 + r55419;
        double r55421 = r55411 * r55420;
        double r55422 = r55416 + r55421;
        double r55423 = r55415 / r55422;
        double r55424 = -r55411;
        double r55425 = fma(r55414, r55423, r55424);
        return r55425;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[\frac{2.30753 + x \cdot 0.27061000000000002}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)} - x\]
  2. Using strategy rm
  3. Applied div-inv0.0

    \[\leadsto \color{blue}{\left(2.30753 + x \cdot 0.27061000000000002\right) \cdot \frac{1}{1 + x \cdot \left(0.992290000000000005 + x \cdot 0.044810000000000003\right)}} - x\]
  4. Applied fma-neg0.0

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

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

Reproduce

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