Average Error: 0.0 → 0.0
Time: 11.3s
Precision: 64
\[\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x\]
\[\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} - x\]
\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x
\left(2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812\right) \cdot \frac{1}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.04481000000000000260680366181986755691469, x, 0.992290000000000005364597654988756403327\right), 1\right)} - x
double f(double x) {
        double r52856 = 2.30753;
        double r52857 = x;
        double r52858 = 0.27061;
        double r52859 = r52857 * r52858;
        double r52860 = r52856 + r52859;
        double r52861 = 1.0;
        double r52862 = 0.99229;
        double r52863 = 0.04481;
        double r52864 = r52857 * r52863;
        double r52865 = r52862 + r52864;
        double r52866 = r52857 * r52865;
        double r52867 = r52861 + r52866;
        double r52868 = r52860 / r52867;
        double r52869 = r52868 - r52857;
        return r52869;
}

double f(double x) {
        double r52870 = 2.30753;
        double r52871 = x;
        double r52872 = 0.27061;
        double r52873 = r52871 * r52872;
        double r52874 = r52870 + r52873;
        double r52875 = 1.0;
        double r52876 = 0.04481;
        double r52877 = 0.99229;
        double r52878 = fma(r52876, r52871, r52877);
        double r52879 = 1.0;
        double r52880 = fma(r52871, r52878, r52879);
        double r52881 = r52875 / r52880;
        double r52882 = r52874 * r52881;
        double r52883 = r52882 - r52871;
        return r52883;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[\frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + x \cdot \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right)} - x\]
  2. Using strategy rm
  3. Applied div-inv0.0

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

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

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

Reproduce

herbie shell --seed 2019305 +o rules:numerics
(FPCore (x)
  :name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, C"
  :precision binary64
  (- (/ (+ 2.30753 (* x 0.27061000000000002)) (+ 1 (* x (+ 0.992290000000000005 (* x 0.044810000000000003))))) x))