Average Error: 0.3 → 0.3
Time: 1.3m
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(y + x\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(y + x\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 r8647622 = x;
        double r8647623 = y;
        double r8647624 = r8647622 + r8647623;
        double r8647625 = log(r8647624);
        double r8647626 = z;
        double r8647627 = log(r8647626);
        double r8647628 = r8647625 + r8647627;
        double r8647629 = t;
        double r8647630 = r8647628 - r8647629;
        double r8647631 = a;
        double r8647632 = 0.5;
        double r8647633 = r8647631 - r8647632;
        double r8647634 = log(r8647629);
        double r8647635 = r8647633 * r8647634;
        double r8647636 = r8647630 + r8647635;
        return r8647636;
}

double f(double x, double y, double z, double t, double a) {
        double r8647637 = y;
        double r8647638 = x;
        double r8647639 = r8647637 + r8647638;
        double r8647640 = log(r8647639);
        double r8647641 = z;
        double r8647642 = cbrt(r8647641);
        double r8647643 = r8647642 * r8647642;
        double r8647644 = log(r8647643);
        double r8647645 = r8647640 + r8647644;
        double r8647646 = log(r8647642);
        double r8647647 = r8647645 + r8647646;
        double r8647648 = t;
        double r8647649 = r8647647 - r8647648;
        double r8647650 = a;
        double r8647651 = 0.5;
        double r8647652 = r8647650 - r8647651;
        double r8647653 = log(r8647648);
        double r8647654 = r8647652 * r8647653;
        double r8647655 = r8647649 + r8647654;
        return r8647655;
}

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 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(y + x\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 2019125 
(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))))