\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(2 \cdot \log \left(\sqrt[3]{t}\right)\right) \cdot \left(a - 0.5\right)\right) + \left(a - 0.5\right) \cdot \log \left({\left(\frac{1}{t}\right)}^{\frac{-1}{3}}\right)double f(double x, double y, double z, double t, double a) {
double r277835 = x;
double r277836 = y;
double r277837 = r277835 + r277836;
double r277838 = log(r277837);
double r277839 = z;
double r277840 = log(r277839);
double r277841 = r277838 + r277840;
double r277842 = t;
double r277843 = r277841 - r277842;
double r277844 = a;
double r277845 = 0.5;
double r277846 = r277844 - r277845;
double r277847 = log(r277842);
double r277848 = r277846 * r277847;
double r277849 = r277843 + r277848;
return r277849;
}
double f(double x, double y, double z, double t, double a) {
double r277850 = x;
double r277851 = y;
double r277852 = r277850 + r277851;
double r277853 = log(r277852);
double r277854 = z;
double r277855 = log(r277854);
double r277856 = r277853 + r277855;
double r277857 = t;
double r277858 = r277856 - r277857;
double r277859 = 2.0;
double r277860 = cbrt(r277857);
double r277861 = log(r277860);
double r277862 = r277859 * r277861;
double r277863 = a;
double r277864 = 0.5;
double r277865 = r277863 - r277864;
double r277866 = r277862 * r277865;
double r277867 = r277858 + r277866;
double r277868 = 1.0;
double r277869 = r277868 / r277857;
double r277870 = -0.3333333333333333;
double r277871 = pow(r277869, r277870);
double r277872 = log(r277871);
double r277873 = r277865 * r277872;
double r277874 = r277867 + r277873;
return r277874;
}




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
Applied associate-+r+0.3
Simplified0.3
Taylor expanded around inf 0.3
Final simplification0.3
herbie shell --seed 2019326
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))