Average Error: 0.3 → 0.3
Time: 35.4s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\log \left(y + x\right) + \left(\left(\log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) + \left(\log \left(\sqrt[3]{z}\right) - t\right)\right) + \log t \cdot \left(a - 0.5\right)\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\log \left(y + x\right) + \left(\left(\log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) + \left(\log \left(\sqrt[3]{z}\right) - t\right)\right) + \log t \cdot \left(a - 0.5\right)\right)
double f(double x, double y, double z, double t, double a) {
        double r2466044 = x;
        double r2466045 = y;
        double r2466046 = r2466044 + r2466045;
        double r2466047 = log(r2466046);
        double r2466048 = z;
        double r2466049 = log(r2466048);
        double r2466050 = r2466047 + r2466049;
        double r2466051 = t;
        double r2466052 = r2466050 - r2466051;
        double r2466053 = a;
        double r2466054 = 0.5;
        double r2466055 = r2466053 - r2466054;
        double r2466056 = log(r2466051);
        double r2466057 = r2466055 * r2466056;
        double r2466058 = r2466052 + r2466057;
        return r2466058;
}

double f(double x, double y, double z, double t, double a) {
        double r2466059 = y;
        double r2466060 = x;
        double r2466061 = r2466059 + r2466060;
        double r2466062 = log(r2466061);
        double r2466063 = z;
        double r2466064 = cbrt(r2466063);
        double r2466065 = r2466064 * r2466064;
        double r2466066 = log(r2466065);
        double r2466067 = log(r2466064);
        double r2466068 = t;
        double r2466069 = r2466067 - r2466068;
        double r2466070 = r2466066 + r2466069;
        double r2466071 = log(r2466068);
        double r2466072 = a;
        double r2466073 = 0.5;
        double r2466074 = r2466072 - r2466073;
        double r2466075 = r2466071 * r2466074;
        double r2466076 = r2466070 + r2466075;
        double r2466077 = r2466062 + r2466076;
        return r2466077;
}

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 associate--l+0.3

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

    \[\leadsto \color{blue}{\log \left(x + y\right) + \left(\left(\log z - t\right) + \left(a - 0.5\right) \cdot \log t\right)}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.3

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

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

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

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

Reproduce

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