Average Error: 0.3 → 0.3
Time: 37.6s
Precision: 64
\[\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t\]
\[\left(a - 0.5\right) \cdot \log \left(\sqrt[3]{t}\right) + \left(\mathsf{fma}\left(a - 0.5, \log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), \left(\log z + \log \left(\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}\right)\right) + \log \left(\sqrt[3]{x + y}\right)\right) - t\right)\]
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(a - 0.5\right) \cdot \log \left(\sqrt[3]{t}\right) + \left(\mathsf{fma}\left(a - 0.5, \log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), \left(\log z + \log \left(\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}\right)\right) + \log \left(\sqrt[3]{x + y}\right)\right) - t\right)
double f(double x, double y, double z, double t, double a) {
        double r2125582 = x;
        double r2125583 = y;
        double r2125584 = r2125582 + r2125583;
        double r2125585 = log(r2125584);
        double r2125586 = z;
        double r2125587 = log(r2125586);
        double r2125588 = r2125585 + r2125587;
        double r2125589 = t;
        double r2125590 = r2125588 - r2125589;
        double r2125591 = a;
        double r2125592 = 0.5;
        double r2125593 = r2125591 - r2125592;
        double r2125594 = log(r2125589);
        double r2125595 = r2125593 * r2125594;
        double r2125596 = r2125590 + r2125595;
        return r2125596;
}

double f(double x, double y, double z, double t, double a) {
        double r2125597 = a;
        double r2125598 = 0.5;
        double r2125599 = r2125597 - r2125598;
        double r2125600 = t;
        double r2125601 = cbrt(r2125600);
        double r2125602 = log(r2125601);
        double r2125603 = r2125599 * r2125602;
        double r2125604 = r2125601 * r2125601;
        double r2125605 = log(r2125604);
        double r2125606 = z;
        double r2125607 = log(r2125606);
        double r2125608 = x;
        double r2125609 = y;
        double r2125610 = r2125608 + r2125609;
        double r2125611 = cbrt(r2125610);
        double r2125612 = r2125611 * r2125611;
        double r2125613 = log(r2125612);
        double r2125614 = r2125607 + r2125613;
        double r2125615 = log(r2125611);
        double r2125616 = r2125614 + r2125615;
        double r2125617 = fma(r2125599, r2125605, r2125616);
        double r2125618 = r2125617 - r2125600;
        double r2125619 = r2125603 + r2125618;
        return r2125619;
}

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-lft-in0.3

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

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

    \[\leadsto \color{blue}{\left(\mathsf{fma}\left(a - 0.5, \log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right), \log z + \log \left(y + x\right)\right) - t\right)} + \left(a - 0.5\right) \cdot \log \left(\sqrt[3]{t}\right)\]
  8. Using strategy rm
  9. Applied add-cube-cbrt0.3

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

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

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

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

Reproduce

herbie shell --seed 2019168 +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))))