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 r358999 = x;
double r359000 = y;
double r359001 = r358999 / r359000;
double r359002 = log(r359001);
double r359003 = r358999 * r359002;
double r359004 = z;
double r359005 = r359003 - r359004;
return r359005;
}
double f(double x, double y, double z) {
double r359006 = 2.0;
double r359007 = x;
double r359008 = cbrt(r359007);
double r359009 = y;
double r359010 = cbrt(r359009);
double r359011 = r359008 / r359010;
double r359012 = log(r359011);
double r359013 = r359006 * r359012;
double r359014 = r359013 + r359012;
double r359015 = r359014 * r359007;
double r359016 = z;
double r359017 = r359015 - r359016;
return r359017;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.0 |
|---|---|
| Target | 7.6 |
| 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.4
Simplified0.2
Final simplification0.2
herbie shell --seed 2019194
(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))