\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(\left(2 \cdot \log \left(\sqrt[3]{\sqrt[3]{t} \cdot \sqrt[3]{t}}\right)\right) \cdot \left(a - 0.5\right) + \left(a - 0.5\right) \cdot \left(\log \left(\sqrt[3]{\sqrt[3]{t}}\right) \cdot 2 + \log \left(\sqrt[3]{t}\right)\right)\right)double f(double x, double y, double z, double t, double a) {
double r379938 = x;
double r379939 = y;
double r379940 = r379938 + r379939;
double r379941 = log(r379940);
double r379942 = z;
double r379943 = log(r379942);
double r379944 = r379941 + r379943;
double r379945 = t;
double r379946 = r379944 - r379945;
double r379947 = a;
double r379948 = 0.5;
double r379949 = r379947 - r379948;
double r379950 = log(r379945);
double r379951 = r379949 * r379950;
double r379952 = r379946 + r379951;
return r379952;
}
double f(double x, double y, double z, double t, double a) {
double r379953 = x;
double r379954 = y;
double r379955 = r379953 + r379954;
double r379956 = log(r379955);
double r379957 = z;
double r379958 = log(r379957);
double r379959 = r379956 + r379958;
double r379960 = t;
double r379961 = r379959 - r379960;
double r379962 = 2.0;
double r379963 = cbrt(r379960);
double r379964 = r379963 * r379963;
double r379965 = cbrt(r379964);
double r379966 = log(r379965);
double r379967 = r379962 * r379966;
double r379968 = a;
double r379969 = 0.5;
double r379970 = r379968 - r379969;
double r379971 = r379967 * r379970;
double r379972 = cbrt(r379963);
double r379973 = log(r379972);
double r379974 = r379973 * r379962;
double r379975 = log(r379963);
double r379976 = r379974 + r379975;
double r379977 = r379970 * r379976;
double r379978 = r379971 + r379977;
double r379979 = r379961 + r379978;
return r379979;
}




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 add-cube-cbrt0.3
Applied cbrt-prod0.3
Applied log-prod0.3
Applied distribute-lft-in0.3
Applied distribute-rgt-in0.3
Applied associate-+l+0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020001
(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))))