Average Error: 0.2 → 0.3
Time: 11.2s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(\left(\left(\log \left(x + y\right) + \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \log \left(\sqrt[3]{z}\right)\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(\left(\left(\log \left(x + y\right) + \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \log \left(\sqrt[3]{z}\right)\right) - t\right) + \left(a - 0.5\right) \cdot \log t
double f(double x, double y, double z, double t, double a) {
        double r85697 = x;
        double r85698 = y;
        double r85699 = r85697 + r85698;
        double r85700 = log(r85699);
        double r85701 = z;
        double r85702 = log(r85701);
        double r85703 = r85700 + r85702;
        double r85704 = t;
        double r85705 = r85703 - r85704;
        double r85706 = a;
        double r85707 = 0.5;
        double r85708 = r85706 - r85707;
        double r85709 = log(r85704);
        double r85710 = r85708 * r85709;
        double r85711 = r85705 + r85710;
        return r85711;
}

double f(double x, double y, double z, double t, double a) {
        double r85712 = x;
        double r85713 = y;
        double r85714 = r85712 + r85713;
        double r85715 = log(r85714);
        double r85716 = z;
        double r85717 = cbrt(r85716);
        double r85718 = r85717 * r85717;
        double r85719 = log(r85718);
        double r85720 = r85715 + r85719;
        double r85721 = log(r85717);
        double r85722 = r85720 + r85721;
        double r85723 = t;
        double r85724 = r85722 - r85723;
        double r85725 = a;
        double r85726 = 0.5;
        double r85727 = r85725 - r85726;
        double r85728 = log(r85723);
        double r85729 = r85727 * r85728;
        double r85730 = r85724 + r85729;
        return r85730;
}

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

    \[\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 add-cube-cbrt0.2

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

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

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

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

Reproduce

herbie shell --seed 2020056 
(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))))