x \cdot \log \left(\frac{x}{y}\right) - z3 \cdot \left(\log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right) \cdot x\right) + \left(x \cdot \log 1 - z\right)double f(double x, double y, double z) {
double r281672 = x;
double r281673 = y;
double r281674 = r281672 / r281673;
double r281675 = log(r281674);
double r281676 = r281672 * r281675;
double r281677 = z;
double r281678 = r281676 - r281677;
return r281678;
}
double f(double x, double y, double z) {
double r281679 = 3.0;
double r281680 = x;
double r281681 = cbrt(r281680);
double r281682 = y;
double r281683 = cbrt(r281682);
double r281684 = r281681 / r281683;
double r281685 = log(r281684);
double r281686 = r281685 * r281680;
double r281687 = r281679 * r281686;
double r281688 = 1.0;
double r281689 = log(r281688);
double r281690 = r281680 * r281689;
double r281691 = z;
double r281692 = r281690 - r281691;
double r281693 = r281687 + r281692;
return r281693;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 7.7 |
| Herbie | 0.2 |
Initial program 15.2
rmApplied add-cube-cbrt15.2
Applied add-cube-cbrt15.2
Applied times-frac15.2
Applied log-prod3.5
Applied distribute-rgt-in3.5
Applied associate--l+3.5
rmApplied *-un-lft-identity3.5
Applied log-prod3.5
Simplified0.2
Final simplification0.2
herbie shell --seed 2019304
(FPCore (x y z)
:name "Numeric.SpecFunctions.Extra:bd0 from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< y 7.59507779908377277e-308) (- (* x (log (/ x y))) z) (- (* x (- (log x) (log y))) z))
(- (* x (log (/ x y))) z))