Average Error: 0.0 → 0.0
Time: 3.2s
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 r47888 = 2.30753;
        double r47889 = x;
        double r47890 = 0.27061;
        double r47891 = r47889 * r47890;
        double r47892 = r47888 + r47891;
        double r47893 = 1.0;
        double r47894 = 0.99229;
        double r47895 = 0.04481;
        double r47896 = r47889 * r47895;
        double r47897 = r47894 + r47896;
        double r47898 = r47889 * r47897;
        double r47899 = r47893 + r47898;
        double r47900 = r47892 / r47899;
        double r47901 = r47900 - r47889;
        return r47901;
}

double f(double x) {
        double r47902 = 2.30753;
        double r47903 = x;
        double r47904 = 0.27061;
        double r47905 = r47903 * r47904;
        double r47906 = r47902 + r47905;
        double r47907 = 1.0;
        double r47908 = 1.0;
        double r47909 = 0.99229;
        double r47910 = 0.04481;
        double r47911 = r47903 * r47910;
        double r47912 = r47909 + r47911;
        double r47913 = r47903 * r47912;
        double r47914 = r47908 + r47913;
        double r47915 = r47907 / r47914;
        double r47916 = -r47903;
        double r47917 = fma(r47906, r47915, r47916);
        return r47917;
}

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))