Average Error: 0.3 → 0.3
Time: 39.9s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(\left(\log \left(y + x\right) + \left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right)\right) + \log \left(\sqrt[3]{\sqrt{z}}\right)\right) + \log \left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(y + x\right) + \left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right)\right) + \log \left(\sqrt[3]{\sqrt{z}}\right)\right) + \log \left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right)
double f(double x, double y, double z, double t, double a) {
        double r2993771 = x;
        double r2993772 = y;
        double r2993773 = r2993771 + r2993772;
        double r2993774 = log(r2993773);
        double r2993775 = z;
        double r2993776 = log(r2993775);
        double r2993777 = r2993774 + r2993776;
        double r2993778 = t;
        double r2993779 = r2993777 - r2993778;
        double r2993780 = a;
        double r2993781 = 0.5;
        double r2993782 = r2993780 - r2993781;
        double r2993783 = log(r2993778);
        double r2993784 = r2993782 * r2993783;
        double r2993785 = r2993779 + r2993784;
        return r2993785;
}

double f(double x, double y, double z, double t, double a) {
        double r2993786 = y;
        double r2993787 = x;
        double r2993788 = r2993786 + r2993787;
        double r2993789 = log(r2993788);
        double r2993790 = z;
        double r2993791 = sqrt(r2993790);
        double r2993792 = log(r2993791);
        double r2993793 = 0.5;
        double r2993794 = a;
        double r2993795 = r2993793 - r2993794;
        double r2993796 = t;
        double r2993797 = log(r2993796);
        double r2993798 = fma(r2993795, r2993797, r2993796);
        double r2993799 = r2993792 - r2993798;
        double r2993800 = r2993789 + r2993799;
        double r2993801 = cbrt(r2993791);
        double r2993802 = log(r2993801);
        double r2993803 = r2993800 + r2993802;
        double r2993804 = r2993801 * r2993801;
        double r2993805 = log(r2993804);
        double r2993806 = r2993803 + r2993805;
        return r2993806;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Derivation

  1. Initial program 0.3

    \[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
  2. Simplified0.3

    \[\leadsto \color{blue}{\left(\log z - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.3

    \[\leadsto \left(\log \color{blue}{\left(\sqrt{z} \cdot \sqrt{z}\right)} - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\]
  5. Applied log-prod0.3

    \[\leadsto \left(\color{blue}{\left(\log \left(\sqrt{z}\right) + \log \left(\sqrt{z}\right)\right)} - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\]
  6. Applied associate--l+0.3

    \[\leadsto \color{blue}{\left(\log \left(\sqrt{z}\right) + \left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right)\right)} + \log \left(y + x\right)\]
  7. Applied associate-+l+0.3

    \[\leadsto \color{blue}{\log \left(\sqrt{z}\right) + \left(\left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\right)}\]
  8. Using strategy rm
  9. Applied add-cube-cbrt0.3

    \[\leadsto \log \color{blue}{\left(\left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right) \cdot \sqrt[3]{\sqrt{z}}\right)} + \left(\left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\right)\]
  10. Applied log-prod0.3

    \[\leadsto \color{blue}{\left(\log \left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right) + \log \left(\sqrt[3]{\sqrt{z}}\right)\right)} + \left(\left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\right)\]
  11. Applied associate-+l+0.3

    \[\leadsto \color{blue}{\log \left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right) + \left(\log \left(\sqrt[3]{\sqrt{z}}\right) + \left(\left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right) + \log \left(y + x\right)\right)\right)}\]
  12. Final simplification0.3

    \[\leadsto \left(\left(\log \left(y + x\right) + \left(\log \left(\sqrt{z}\right) - \mathsf{fma}\left(0.5 - a, \log t, t\right)\right)\right) + \log \left(\sqrt[3]{\sqrt{z}}\right)\right) + \log \left(\sqrt[3]{\sqrt{z}} \cdot \sqrt[3]{\sqrt{z}}\right)\]

Reproduce

herbie shell --seed 2019158 +o rules:numerics
(FPCore (x y z t a)
  :name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
  (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))