x \cdot \log \left(\frac{x}{y}\right) - z\left(2 \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right) + \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) \cdot x - zdouble f(double x, double y, double z) {
double r363791 = x;
double r363792 = y;
double r363793 = r363791 / r363792;
double r363794 = log(r363793);
double r363795 = r363791 * r363794;
double r363796 = z;
double r363797 = r363795 - r363796;
return r363797;
}
double f(double x, double y, double z) {
double r363798 = 2.0;
double r363799 = x;
double r363800 = cbrt(r363799);
double r363801 = y;
double r363802 = cbrt(r363801);
double r363803 = r363800 / r363802;
double r363804 = log(r363803);
double r363805 = r363798 * r363804;
double r363806 = r363805 + r363804;
double r363807 = r363806 * r363799;
double r363808 = z;
double r363809 = r363807 - r363808;
return r363809;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.0 |
|---|---|
| Target | 7.9 |
| Herbie | 0.2 |
Initial program 15.0
Simplified15.0
rmApplied add-cube-cbrt15.0
Applied add-cube-cbrt15.0
Applied times-frac15.0
Applied log-prod3.3
Simplified0.2
Final simplification0.2
herbie shell --seed 2019196
(FPCore (x y z)
:name "Numeric.SpecFunctions.Extra:bd0 from math-functions-0.1.5.2"
:herbie-target
(if (< y 7.595077799083773e-308) (- (* x (log (/ x y))) z) (- (* x (- (log x) (log y))) z))
(- (* x (log (/ x y))) z))