Average Error: 0.3 → 0.3
Time: 11.3s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\mathsf{fma}\left(\log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), a - 0.5, \left(\log \left(x + y\right) + \log z\right) - t\right) + \log \left({\left(\frac{1}{t}\right)}^{\frac{-1}{3}}\right) \cdot \left(a - 0.5\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\mathsf{fma}\left(\log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), a - 0.5, \left(\log \left(x + y\right) + \log z\right) - t\right) + \log \left({\left(\frac{1}{t}\right)}^{\frac{-1}{3}}\right) \cdot \left(a - 0.5\right)
double f(double x, double y, double z, double t, double a) {
        double r38552 = x;
        double r38553 = y;
        double r38554 = r38552 + r38553;
        double r38555 = log(r38554);
        double r38556 = z;
        double r38557 = log(r38556);
        double r38558 = r38555 + r38557;
        double r38559 = t;
        double r38560 = r38558 - r38559;
        double r38561 = a;
        double r38562 = 0.5;
        double r38563 = r38561 - r38562;
        double r38564 = log(r38559);
        double r38565 = r38563 * r38564;
        double r38566 = r38560 + r38565;
        return r38566;
}

double f(double x, double y, double z, double t, double a) {
        double r38567 = t;
        double r38568 = cbrt(r38567);
        double r38569 = r38568 * r38568;
        double r38570 = log(r38569);
        double r38571 = a;
        double r38572 = 0.5;
        double r38573 = r38571 - r38572;
        double r38574 = x;
        double r38575 = y;
        double r38576 = r38574 + r38575;
        double r38577 = log(r38576);
        double r38578 = z;
        double r38579 = log(r38578);
        double r38580 = r38577 + r38579;
        double r38581 = r38580 - r38567;
        double r38582 = fma(r38570, r38573, r38581);
        double r38583 = 1.0;
        double r38584 = r38583 / r38567;
        double r38585 = -0.3333333333333333;
        double r38586 = pow(r38584, r38585);
        double r38587 = log(r38586);
        double r38588 = r38587 * r38573;
        double r38589 = r38582 + r38588;
        return r38589;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

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. Applied associate-+r+0.3

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(\log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), a - 0.5, \left(\log \left(x + y\right) + \log z\right) - t\right)} + \log \left(\sqrt[3]{t}\right) \cdot \left(a - 0.5\right)\]
  8. Taylor expanded around inf 0.3

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

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

Reproduce

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