Average Error: 29.0 → 29.0
Time: 1.5m
Precision: 64
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
\[\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(a + y, y, b\right), y, c\right), y, i\right)}\]
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(a + y, y, b\right), y, c\right), y, i\right)}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r3420935 = x;
        double r3420936 = y;
        double r3420937 = r3420935 * r3420936;
        double r3420938 = z;
        double r3420939 = r3420937 + r3420938;
        double r3420940 = r3420939 * r3420936;
        double r3420941 = 27464.7644705;
        double r3420942 = r3420940 + r3420941;
        double r3420943 = r3420942 * r3420936;
        double r3420944 = 230661.510616;
        double r3420945 = r3420943 + r3420944;
        double r3420946 = r3420945 * r3420936;
        double r3420947 = t;
        double r3420948 = r3420946 + r3420947;
        double r3420949 = a;
        double r3420950 = r3420936 + r3420949;
        double r3420951 = r3420950 * r3420936;
        double r3420952 = b;
        double r3420953 = r3420951 + r3420952;
        double r3420954 = r3420953 * r3420936;
        double r3420955 = c;
        double r3420956 = r3420954 + r3420955;
        double r3420957 = r3420956 * r3420936;
        double r3420958 = i;
        double r3420959 = r3420957 + r3420958;
        double r3420960 = r3420948 / r3420959;
        return r3420960;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r3420961 = y;
        double r3420962 = x;
        double r3420963 = z;
        double r3420964 = fma(r3420961, r3420962, r3420963);
        double r3420965 = 27464.7644705;
        double r3420966 = fma(r3420961, r3420964, r3420965);
        double r3420967 = 230661.510616;
        double r3420968 = fma(r3420961, r3420966, r3420967);
        double r3420969 = t;
        double r3420970 = fma(r3420968, r3420961, r3420969);
        double r3420971 = 1.0;
        double r3420972 = a;
        double r3420973 = r3420972 + r3420961;
        double r3420974 = b;
        double r3420975 = fma(r3420973, r3420961, r3420974);
        double r3420976 = c;
        double r3420977 = fma(r3420975, r3420961, r3420976);
        double r3420978 = i;
        double r3420979 = fma(r3420977, r3420961, r3420978);
        double r3420980 = r3420971 / r3420979;
        double r3420981 = r3420970 * r3420980;
        return r3420981;
}

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.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\]
  2. Simplified28.9

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(a + y, y, b\right), y, c\right), y, i\right)}}\]
  3. Using strategy rm
  4. Applied div-inv29.0

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

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

Reproduce

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