Average Error: 29.3 → 29.3
Time: 20.7s
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{\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)}\]
\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{\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)}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r50834 = x;
        double r50835 = y;
        double r50836 = r50834 * r50835;
        double r50837 = z;
        double r50838 = r50836 + r50837;
        double r50839 = r50838 * r50835;
        double r50840 = 27464.7644705;
        double r50841 = r50839 + r50840;
        double r50842 = r50841 * r50835;
        double r50843 = 230661.510616;
        double r50844 = r50842 + r50843;
        double r50845 = r50844 * r50835;
        double r50846 = t;
        double r50847 = r50845 + r50846;
        double r50848 = a;
        double r50849 = r50835 + r50848;
        double r50850 = r50849 * r50835;
        double r50851 = b;
        double r50852 = r50850 + r50851;
        double r50853 = r50852 * r50835;
        double r50854 = c;
        double r50855 = r50853 + r50854;
        double r50856 = r50855 * r50835;
        double r50857 = i;
        double r50858 = r50856 + r50857;
        double r50859 = r50847 / r50858;
        return r50859;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r50860 = x;
        double r50861 = y;
        double r50862 = z;
        double r50863 = fma(r50860, r50861, r50862);
        double r50864 = 27464.7644705;
        double r50865 = fma(r50863, r50861, r50864);
        double r50866 = 230661.510616;
        double r50867 = fma(r50865, r50861, r50866);
        double r50868 = t;
        double r50869 = fma(r50867, r50861, r50868);
        double r50870 = a;
        double r50871 = r50861 + r50870;
        double r50872 = b;
        double r50873 = fma(r50871, r50861, r50872);
        double r50874 = c;
        double r50875 = fma(r50873, r50861, r50874);
        double r50876 = i;
        double r50877 = fma(r50875, r50861, r50876);
        double r50878 = r50869 / r50877;
        return r50878;
}

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

    \[\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.3

    \[\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. Final simplification29.3

    \[\leadsto \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)}\]

Reproduce

herbie shell --seed 2019351 +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)))