x \cdot \log \left(\frac{x}{y}\right) - z\left(-z\right) + \left(3 \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) \cdot xdouble f(double x, double y, double z) {
double r346083 = x;
double r346084 = y;
double r346085 = r346083 / r346084;
double r346086 = log(r346085);
double r346087 = r346083 * r346086;
double r346088 = z;
double r346089 = r346087 - r346088;
return r346089;
}
double f(double x, double y, double z) {
double r346090 = z;
double r346091 = -r346090;
double r346092 = 3.0;
double r346093 = x;
double r346094 = cbrt(r346093);
double r346095 = y;
double r346096 = cbrt(r346095);
double r346097 = r346094 / r346096;
double r346098 = log(r346097);
double r346099 = r346092 * r346098;
double r346100 = r346099 * r346093;
double r346101 = r346091 + r346100;
return r346101;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.7 |
|---|---|
| Target | 8.2 |
| Herbie | 0.2 |
Initial program 15.7
rmApplied add-cube-cbrt15.7
Applied add-cube-cbrt15.7
Applied times-frac15.7
Applied log-prod3.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2019294
(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))