Average Error: 0.3 → 0.3
Time: 46.4s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(\log \left({t}^{\frac{1}{3}} \cdot \sqrt[3]{t}\right) \cdot \left(a - 0.5\right) + \left(a - 0.5\right) \cdot \log \left(\sqrt[3]{t}\right)\right) + \left(\left(\log \left(y + x\right) + \log z\right) - t\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\log \left({t}^{\frac{1}{3}} \cdot \sqrt[3]{t}\right) \cdot \left(a - 0.5\right) + \left(a - 0.5\right) \cdot \log \left(\sqrt[3]{t}\right)\right) + \left(\left(\log \left(y + x\right) + \log z\right) - t\right)
double f(double x, double y, double z, double t, double a) {
        double r1618027 = x;
        double r1618028 = y;
        double r1618029 = r1618027 + r1618028;
        double r1618030 = log(r1618029);
        double r1618031 = z;
        double r1618032 = log(r1618031);
        double r1618033 = r1618030 + r1618032;
        double r1618034 = t;
        double r1618035 = r1618033 - r1618034;
        double r1618036 = a;
        double r1618037 = 0.5;
        double r1618038 = r1618036 - r1618037;
        double r1618039 = log(r1618034);
        double r1618040 = r1618038 * r1618039;
        double r1618041 = r1618035 + r1618040;
        return r1618041;
}

double f(double x, double y, double z, double t, double a) {
        double r1618042 = t;
        double r1618043 = 0.3333333333333333;
        double r1618044 = pow(r1618042, r1618043);
        double r1618045 = cbrt(r1618042);
        double r1618046 = r1618044 * r1618045;
        double r1618047 = log(r1618046);
        double r1618048 = a;
        double r1618049 = 0.5;
        double r1618050 = r1618048 - r1618049;
        double r1618051 = r1618047 * r1618050;
        double r1618052 = log(r1618045);
        double r1618053 = r1618050 * r1618052;
        double r1618054 = r1618051 + r1618053;
        double r1618055 = y;
        double r1618056 = x;
        double r1618057 = r1618055 + r1618056;
        double r1618058 = log(r1618057);
        double r1618059 = z;
        double r1618060 = log(r1618059);
        double r1618061 = r1618058 + r1618060;
        double r1618062 = r1618061 - r1618042;
        double r1618063 = r1618054 + r1618062;
        return r1618063;
}

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 z\right) - t\right) + \left(a - 0.5\right) \cdot \log \color{blue}{\left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)}\]
  4. Applied log-prod0.3

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

    \[\leadsto \left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \color{blue}{\left(\log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(a - 0.5\right) + \log \left(\sqrt[3]{t}\right) \cdot \left(a - 0.5\right)\right)}\]
  6. Using strategy rm
  7. Applied pow1/30.3

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

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

Reproduce

herbie shell --seed 2019151 +o rules:numerics
(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))))