Average Error: 29.2 → 29.4
Time: 7.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(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{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(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{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 r55844 = x;
        double r55845 = y;
        double r55846 = r55844 * r55845;
        double r55847 = z;
        double r55848 = r55846 + r55847;
        double r55849 = r55848 * r55845;
        double r55850 = 27464.7644705;
        double r55851 = r55849 + r55850;
        double r55852 = r55851 * r55845;
        double r55853 = 230661.510616;
        double r55854 = r55852 + r55853;
        double r55855 = r55854 * r55845;
        double r55856 = t;
        double r55857 = r55855 + r55856;
        double r55858 = a;
        double r55859 = r55845 + r55858;
        double r55860 = r55859 * r55845;
        double r55861 = b;
        double r55862 = r55860 + r55861;
        double r55863 = r55862 * r55845;
        double r55864 = c;
        double r55865 = r55863 + r55864;
        double r55866 = r55865 * r55845;
        double r55867 = i;
        double r55868 = r55866 + r55867;
        double r55869 = r55857 / r55868;
        return r55869;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r55870 = x;
        double r55871 = y;
        double r55872 = z;
        double r55873 = fma(r55870, r55871, r55872);
        double r55874 = cbrt(r55871);
        double r55875 = r55873 * r55874;
        double r55876 = r55875 * r55874;
        double r55877 = r55876 * r55874;
        double r55878 = 27464.7644705;
        double r55879 = r55877 + r55878;
        double r55880 = r55879 * r55871;
        double r55881 = 230661.510616;
        double r55882 = r55880 + r55881;
        double r55883 = r55882 * r55871;
        double r55884 = t;
        double r55885 = r55883 + r55884;
        double r55886 = 1.0;
        double r55887 = a;
        double r55888 = r55871 + r55887;
        double r55889 = b;
        double r55890 = fma(r55888, r55871, r55889);
        double r55891 = c;
        double r55892 = fma(r55890, r55871, r55891);
        double r55893 = i;
        double r55894 = fma(r55892, r55871, r55893);
        double r55895 = r55894 * r55886;
        double r55896 = r55886 / r55895;
        double r55897 = r55885 * r55896;
        return r55897;
}

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

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

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

    \[\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. Using strategy rm
  6. Applied add-cube-cbrt29.4

    \[\leadsto \left(\left(\left(\left(x \cdot y + z\right) \cdot \color{blue}{\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} + 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}\]
  7. Applied associate-*r*29.4

    \[\leadsto \left(\left(\left(\color{blue}{\left(\left(x \cdot y + z\right) \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \sqrt[3]{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}\]
  8. Simplified29.4

    \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right)} \cdot \sqrt[3]{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}\]
  9. Final simplification29.4

    \[\leadsto \left(\left(\left(\left(\left(\mathsf{fma}\left(x, y, z\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{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 2020060 +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)))