Average Error: 29.0 → 29.0
Time: 8.4s
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r90940 = x;
        double r90941 = y;
        double r90942 = r90940 * r90941;
        double r90943 = z;
        double r90944 = r90942 + r90943;
        double r90945 = r90944 * r90941;
        double r90946 = 27464.7644705;
        double r90947 = r90945 + r90946;
        double r90948 = r90947 * r90941;
        double r90949 = 230661.510616;
        double r90950 = r90948 + r90949;
        double r90951 = r90950 * r90941;
        double r90952 = t;
        double r90953 = r90951 + r90952;
        double r90954 = a;
        double r90955 = r90941 + r90954;
        double r90956 = r90955 * r90941;
        double r90957 = b;
        double r90958 = r90956 + r90957;
        double r90959 = r90958 * r90941;
        double r90960 = c;
        double r90961 = r90959 + r90960;
        double r90962 = r90961 * r90941;
        double r90963 = i;
        double r90964 = r90962 + r90963;
        double r90965 = r90953 / r90964;
        return r90965;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r90966 = x;
        double r90967 = y;
        double r90968 = r90966 * r90967;
        double r90969 = z;
        double r90970 = r90968 + r90969;
        double r90971 = r90970 * r90967;
        double r90972 = 27464.7644705;
        double r90973 = r90971 + r90972;
        double r90974 = r90973 * r90967;
        double r90975 = 230661.510616;
        double r90976 = r90974 + r90975;
        double r90977 = r90976 * r90967;
        double r90978 = t;
        double r90979 = r90977 + r90978;
        double r90980 = 1.0;
        double r90981 = a;
        double r90982 = r90967 + r90981;
        double r90983 = b;
        double r90984 = fma(r90982, r90967, r90983);
        double r90985 = c;
        double r90986 = fma(r90984, r90967, r90985);
        double r90987 = i;
        double r90988 = fma(r90986, r90967, r90987);
        double r90989 = r90988 * r90980;
        double r90990 = r90980 / r90989;
        double r90991 = r90979 * r90990;
        return r90991;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus i

Derivation

  1. Initial program 29.0

    \[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Using strategy rm
  3. Applied div-inv29.0

    \[\leadsto \color{blue}{\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}}\]
  4. Simplified29.0

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \color{blue}{\frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}}\]
  5. Final simplification29.0

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right) \cdot 1}\]

Reproduce

herbie shell --seed 2020089 +o rules:numerics
(FPCore (x y z t a b c i)
  :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
  :precision binary64
  (/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))