\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}\right) + \left(\log \left(\sqrt[3]{x + y}\right) + \log z\right)\right) - t\right) + \left(\left(a - 0.5\right) \cdot \log \left(\sqrt{t}\right) + \left(a - 0.5\right) \cdot \log \left(\sqrt{t}\right)\right)double f(double x, double y, double z, double t, double a) {
double r407371 = x;
double r407372 = y;
double r407373 = r407371 + r407372;
double r407374 = log(r407373);
double r407375 = z;
double r407376 = log(r407375);
double r407377 = r407374 + r407376;
double r407378 = t;
double r407379 = r407377 - r407378;
double r407380 = a;
double r407381 = 0.5;
double r407382 = r407380 - r407381;
double r407383 = log(r407378);
double r407384 = r407382 * r407383;
double r407385 = r407379 + r407384;
return r407385;
}
double f(double x, double y, double z, double t, double a) {
double r407386 = x;
double r407387 = y;
double r407388 = r407386 + r407387;
double r407389 = cbrt(r407388);
double r407390 = r407389 * r407389;
double r407391 = log(r407390);
double r407392 = log(r407389);
double r407393 = z;
double r407394 = log(r407393);
double r407395 = r407392 + r407394;
double r407396 = r407391 + r407395;
double r407397 = t;
double r407398 = r407396 - r407397;
double r407399 = a;
double r407400 = 0.5;
double r407401 = r407399 - r407400;
double r407402 = sqrt(r407397);
double r407403 = log(r407402);
double r407404 = r407401 * r407403;
double r407405 = r407404 + r407404;
double r407406 = r407398 + r407405;
return r407406;
}




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-sqr-sqrt0.3
Applied log-prod0.3
Applied distribute-lft-in0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+l+0.3
Final simplification0.3
herbie shell --seed 2020035
(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))))