\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) + \log \left(\sqrt[3]{t} \cdot \left(\sqrt[3]{1} \cdot {t}^{\frac{1}{3}}\right)\right) \cdot \left(a - 0.5\right)\right) + \log \left(\sqrt[3]{t}\right) \cdot \left(a - 0.5\right)double f(double x, double y, double z, double t, double a) {
double r378566 = x;
double r378567 = y;
double r378568 = r378566 + r378567;
double r378569 = log(r378568);
double r378570 = z;
double r378571 = log(r378570);
double r378572 = r378569 + r378571;
double r378573 = t;
double r378574 = r378572 - r378573;
double r378575 = a;
double r378576 = 0.5;
double r378577 = r378575 - r378576;
double r378578 = log(r378573);
double r378579 = r378577 * r378578;
double r378580 = r378574 + r378579;
return r378580;
}
double f(double x, double y, double z, double t, double a) {
double r378581 = x;
double r378582 = y;
double r378583 = r378581 + r378582;
double r378584 = log(r378583);
double r378585 = z;
double r378586 = log(r378585);
double r378587 = r378584 + r378586;
double r378588 = t;
double r378589 = r378587 - r378588;
double r378590 = cbrt(r378588);
double r378591 = 1.0;
double r378592 = cbrt(r378591);
double r378593 = 0.3333333333333333;
double r378594 = pow(r378588, r378593);
double r378595 = r378592 * r378594;
double r378596 = r378590 * r378595;
double r378597 = log(r378596);
double r378598 = a;
double r378599 = 0.5;
double r378600 = r378598 - r378599;
double r378601 = r378597 * r378600;
double r378602 = r378589 + r378601;
double r378603 = log(r378590);
double r378604 = r378603 * r378600;
double r378605 = r378602 + r378604;
return r378605;
}




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-rgt-in0.3
Applied associate-+r+0.3
rmApplied *-un-lft-identity0.3
Applied cbrt-prod0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019322
(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))))