\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\log \left(x + y\right) - \left(\left(t - \log z\right) - \left(\left(a - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{t}\right)\right) + \left(a - 0.5\right) \cdot \left(\frac{1}{3} \cdot \log t\right)\right)\right)double f(double x, double y, double z, double t, double a) {
double r276856 = x;
double r276857 = y;
double r276858 = r276856 + r276857;
double r276859 = log(r276858);
double r276860 = z;
double r276861 = log(r276860);
double r276862 = r276859 + r276861;
double r276863 = t;
double r276864 = r276862 - r276863;
double r276865 = a;
double r276866 = 0.5;
double r276867 = r276865 - r276866;
double r276868 = log(r276863);
double r276869 = r276867 * r276868;
double r276870 = r276864 + r276869;
return r276870;
}
double f(double x, double y, double z, double t, double a) {
double r276871 = x;
double r276872 = y;
double r276873 = r276871 + r276872;
double r276874 = log(r276873);
double r276875 = t;
double r276876 = z;
double r276877 = log(r276876);
double r276878 = r276875 - r276877;
double r276879 = a;
double r276880 = 0.5;
double r276881 = r276879 - r276880;
double r276882 = 2.0;
double r276883 = cbrt(r276875);
double r276884 = log(r276883);
double r276885 = r276882 * r276884;
double r276886 = r276881 * r276885;
double r276887 = 0.3333333333333333;
double r276888 = log(r276875);
double r276889 = r276887 * r276888;
double r276890 = r276881 * r276889;
double r276891 = r276886 + r276890;
double r276892 = r276878 - r276891;
double r276893 = r276874 - r276892;
return r276893;
}




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
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied distribute-lft-in0.3
Simplified0.3
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019194
(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))))