\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(y + x\right) + \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \log \left(\sqrt[3]{z}\right)\right) - t\right) + \left(a - 0.5\right) \cdot \log tdouble f(double x, double y, double z, double t, double a) {
double r19530520 = x;
double r19530521 = y;
double r19530522 = r19530520 + r19530521;
double r19530523 = log(r19530522);
double r19530524 = z;
double r19530525 = log(r19530524);
double r19530526 = r19530523 + r19530525;
double r19530527 = t;
double r19530528 = r19530526 - r19530527;
double r19530529 = a;
double r19530530 = 0.5;
double r19530531 = r19530529 - r19530530;
double r19530532 = log(r19530527);
double r19530533 = r19530531 * r19530532;
double r19530534 = r19530528 + r19530533;
return r19530534;
}
double f(double x, double y, double z, double t, double a) {
double r19530535 = y;
double r19530536 = x;
double r19530537 = r19530535 + r19530536;
double r19530538 = log(r19530537);
double r19530539 = z;
double r19530540 = cbrt(r19530539);
double r19530541 = r19530540 * r19530540;
double r19530542 = log(r19530541);
double r19530543 = r19530538 + r19530542;
double r19530544 = log(r19530540);
double r19530545 = r19530543 + r19530544;
double r19530546 = t;
double r19530547 = r19530545 - r19530546;
double r19530548 = a;
double r19530549 = 0.5;
double r19530550 = r19530548 - r19530549;
double r19530551 = log(r19530546);
double r19530552 = r19530550 * r19530551;
double r19530553 = r19530547 + r19530552;
return r19530553;
}




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 associate-+r+0.3
Final simplification0.3
herbie shell --seed 2019171
(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))))