\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(a - 0.5\right) \cdot \log \left({t}^{\frac{1}{3}}\right) + \left(a - 0.5\right) \cdot \left(\log \left(\sqrt[3]{t}\right) + \log \left(\sqrt[3]{t}\right)\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 r15555678 = x;
double r15555679 = y;
double r15555680 = r15555678 + r15555679;
double r15555681 = log(r15555680);
double r15555682 = z;
double r15555683 = log(r15555682);
double r15555684 = r15555681 + r15555683;
double r15555685 = t;
double r15555686 = r15555684 - r15555685;
double r15555687 = a;
double r15555688 = 0.5;
double r15555689 = r15555687 - r15555688;
double r15555690 = log(r15555685);
double r15555691 = r15555689 * r15555690;
double r15555692 = r15555686 + r15555691;
return r15555692;
}
double f(double x, double y, double z, double t, double a) {
double r15555693 = a;
double r15555694 = 0.5;
double r15555695 = r15555693 - r15555694;
double r15555696 = t;
double r15555697 = 0.3333333333333333;
double r15555698 = pow(r15555696, r15555697);
double r15555699 = log(r15555698);
double r15555700 = r15555695 * r15555699;
double r15555701 = cbrt(r15555696);
double r15555702 = log(r15555701);
double r15555703 = r15555702 + r15555702;
double r15555704 = r15555695 * r15555703;
double r15555705 = r15555700 + r15555704;
double r15555706 = y;
double r15555707 = x;
double r15555708 = r15555706 + r15555707;
double r15555709 = log(r15555708);
double r15555710 = z;
double r15555711 = log(r15555710);
double r15555712 = r15555709 + r15555711;
double r15555713 = r15555712 - r15555696;
double r15555714 = r15555705 + r15555713;
return r15555714;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied distribute-lft-in0.3
Simplified0.3
rmApplied pow1/30.3
Final simplification0.3
herbie shell --seed 2019163
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))