Average Error: 0.3 → 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 r877687 = x;
        double r877688 = y;
        double r877689 = r877687 + r877688;
        double r877690 = log(r877689);
        double r877691 = z;
        double r877692 = log(r877691);
        double r877693 = r877690 + r877692;
        double r877694 = t;
        double r877695 = r877693 - r877694;
        double r877696 = a;
        double r877697 = 0.5;
        double r877698 = r877696 - r877697;
        double r877699 = log(r877694);
        double r877700 = r877698 * r877699;
        double r877701 = r877695 + r877700;
        return r877701;
}

double f(double x, double y, double z, double t, double a) {
        double r877702 = x;
        double r877703 = y;
        double r877704 = r877702 + r877703;
        double r877705 = log(r877704);
        double r877706 = z;
        double r877707 = cbrt(r877706);
        double r877708 = r877707 * r877707;
        double r877709 = log(r877708);
        double r877710 = r877705 + r877709;
        double r877711 = log(r877707);
        double r877712 = r877710 + r877711;
        double r877713 = t;
        double r877714 = r877712 - r877713;
        double r877715 = a;
        double r877716 = 0.5;
        double r877717 = r877715 - r877716;
        double r877718 = log(r877713);
        double r877719 = r877717 * r877718;
        double r877720 = r877714 + r877719;
        return r877720;
}

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

Target

Original0.3
Target0.3
Herbie0.3
\[\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)\]

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 add-cube-cbrt0.3

    \[\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 2020065 
(FPCore (x y z t a)
  :name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
  :precision binary64

  :herbie-target
  (+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))

  (+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))