Average Error: 29.1 → 29.3
Time: 34.8s
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}\]
\[\frac{1}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), 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}
\frac{1}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), i\right)}}}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r89989 = x;
        double r89990 = y;
        double r89991 = r89989 * r89990;
        double r89992 = z;
        double r89993 = r89991 + r89992;
        double r89994 = r89993 * r89990;
        double r89995 = 27464.7644705;
        double r89996 = r89994 + r89995;
        double r89997 = r89996 * r89990;
        double r89998 = 230661.510616;
        double r89999 = r89997 + r89998;
        double r90000 = r89999 * r89990;
        double r90001 = t;
        double r90002 = r90000 + r90001;
        double r90003 = a;
        double r90004 = r89990 + r90003;
        double r90005 = r90004 * r89990;
        double r90006 = b;
        double r90007 = r90005 + r90006;
        double r90008 = r90007 * r89990;
        double r90009 = c;
        double r90010 = r90008 + r90009;
        double r90011 = r90010 * r89990;
        double r90012 = i;
        double r90013 = r90011 + r90012;
        double r90014 = r90002 / r90013;
        return r90014;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r90015 = 1.0;
        double r90016 = x;
        double r90017 = y;
        double r90018 = z;
        double r90019 = fma(r90016, r90017, r90018);
        double r90020 = 27464.7644705;
        double r90021 = fma(r90019, r90017, r90020);
        double r90022 = 230661.510616;
        double r90023 = fma(r90021, r90017, r90022);
        double r90024 = t;
        double r90025 = fma(r90023, r90017, r90024);
        double r90026 = a;
        double r90027 = r90017 + r90026;
        double r90028 = b;
        double r90029 = fma(r90027, r90017, r90028);
        double r90030 = c;
        double r90031 = fma(r90029, r90017, r90030);
        double r90032 = i;
        double r90033 = fma(r90017, r90031, r90032);
        double r90034 = r90025 / r90033;
        double r90035 = r90015 / r90034;
        double r90036 = r90015 / r90035;
        return r90036;
}

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.1

    \[\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. Simplified29.1

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

    \[\leadsto \color{blue}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}}}\]
  5. Using strategy rm
  6. Applied clear-num29.3

    \[\leadsto \frac{1}{\color{blue}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}}}}\]
  7. Simplified29.3

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

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

Reproduce

herbie shell --seed 2019235 +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.764470499998) y) 230661.510616000014) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))