Average Error: 0.3 → 0.3
Time: 19.2s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(\frac{{\left(\log \left(x + y\right)\right)}^{3} + {\left(\log z\right)}^{3}}{\log z \cdot \left(\log z - \log \left(x + y\right)\right) + \log \left(x + y\right) \cdot \log \left(x + y\right)} - t\right) + \left(a - 0.5\right) \cdot \log t\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\frac{{\left(\log \left(x + y\right)\right)}^{3} + {\left(\log z\right)}^{3}}{\log z \cdot \left(\log z - \log \left(x + y\right)\right) + \log \left(x + y\right) \cdot \log \left(x + y\right)} - t\right) + \left(a - 0.5\right) \cdot \log t
double f(double x, double y, double z, double t, double a) {
        double r59839 = x;
        double r59840 = y;
        double r59841 = r59839 + r59840;
        double r59842 = log(r59841);
        double r59843 = z;
        double r59844 = log(r59843);
        double r59845 = r59842 + r59844;
        double r59846 = t;
        double r59847 = r59845 - r59846;
        double r59848 = a;
        double r59849 = 0.5;
        double r59850 = r59848 - r59849;
        double r59851 = log(r59846);
        double r59852 = r59850 * r59851;
        double r59853 = r59847 + r59852;
        return r59853;
}

double f(double x, double y, double z, double t, double a) {
        double r59854 = x;
        double r59855 = y;
        double r59856 = r59854 + r59855;
        double r59857 = log(r59856);
        double r59858 = 3.0;
        double r59859 = pow(r59857, r59858);
        double r59860 = z;
        double r59861 = log(r59860);
        double r59862 = pow(r59861, r59858);
        double r59863 = r59859 + r59862;
        double r59864 = r59861 - r59857;
        double r59865 = r59861 * r59864;
        double r59866 = r59857 * r59857;
        double r59867 = r59865 + r59866;
        double r59868 = r59863 / r59867;
        double r59869 = t;
        double r59870 = r59868 - r59869;
        double r59871 = a;
        double r59872 = 0.5;
        double r59873 = r59871 - r59872;
        double r59874 = log(r59869);
        double r59875 = r59873 * r59874;
        double r59876 = r59870 + r59875;
        return r59876;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Using strategy rm
  3. Applied flip3-+0.3

    \[\leadsto \left(\color{blue}{\frac{{\left(\log \left(x + y\right)\right)}^{3} + {\left(\log z\right)}^{3}}{\log \left(x + y\right) \cdot \log \left(x + y\right) + \left(\log z \cdot \log z - \log \left(x + y\right) \cdot \log z\right)}} - t\right) + \left(a - 0.5\right) \cdot \log t\]
  4. Simplified0.3

    \[\leadsto \left(\frac{{\left(\log \left(x + y\right)\right)}^{3} + {\left(\log z\right)}^{3}}{\color{blue}{\log z \cdot \left(\log z - \log \left(x + y\right)\right) + \log \left(x + y\right) \cdot \log \left(x + y\right)}} - t\right) + \left(a - 0.5\right) \cdot \log t\]
  5. Final simplification0.3

    \[\leadsto \left(\frac{{\left(\log \left(x + y\right)\right)}^{3} + {\left(\log z\right)}^{3}}{\log z \cdot \left(\log z - \log \left(x + y\right)\right) + \log \left(x + y\right) \cdot \log \left(x + y\right)} - t\right) + \left(a - 0.5\right) \cdot \log t\]

Reproduce

herbie shell --seed 2019351 
(FPCore (x y z t a)
  :name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
  :precision binary64
  (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))