Average Error: 0.3 → 0.3
Time: 10.7s
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 r70681 = x;
        double r70682 = y;
        double r70683 = r70681 + r70682;
        double r70684 = log(r70683);
        double r70685 = z;
        double r70686 = log(r70685);
        double r70687 = r70684 + r70686;
        double r70688 = t;
        double r70689 = r70687 - r70688;
        double r70690 = a;
        double r70691 = 0.5;
        double r70692 = r70690 - r70691;
        double r70693 = log(r70688);
        double r70694 = r70692 * r70693;
        double r70695 = r70689 + r70694;
        return r70695;
}

double f(double x, double y, double z, double t, double a) {
        double r70696 = x;
        double r70697 = y;
        double r70698 = r70696 + r70697;
        double r70699 = log(r70698);
        double r70700 = 3.0;
        double r70701 = pow(r70699, r70700);
        double r70702 = z;
        double r70703 = log(r70702);
        double r70704 = pow(r70703, r70700);
        double r70705 = r70701 + r70704;
        double r70706 = r70703 - r70699;
        double r70707 = r70703 * r70706;
        double r70708 = r70699 * r70699;
        double r70709 = r70707 + r70708;
        double r70710 = r70705 / r70709;
        double r70711 = t;
        double r70712 = r70710 - r70711;
        double r70713 = a;
        double r70714 = 0.5;
        double r70715 = r70713 - r70714;
        double r70716 = log(r70711);
        double r70717 = r70715 * r70716;
        double r70718 = r70712 + r70717;
        return r70718;
}

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 2020059 
(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))))