x \cdot \log \left(\frac{x}{y}\right) - zx \cdot \left(2 \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right) + \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) - zdouble f(double x, double y, double z) {
double r705207 = x;
double r705208 = y;
double r705209 = r705207 / r705208;
double r705210 = log(r705209);
double r705211 = r705207 * r705210;
double r705212 = z;
double r705213 = r705211 - r705212;
return r705213;
}
double f(double x, double y, double z) {
double r705214 = x;
double r705215 = 2.0;
double r705216 = cbrt(r705214);
double r705217 = y;
double r705218 = cbrt(r705217);
double r705219 = r705216 / r705218;
double r705220 = log(r705219);
double r705221 = r705215 * r705220;
double r705222 = r705221 + r705220;
double r705223 = r705214 * r705222;
double r705224 = z;
double r705225 = r705223 - r705224;
return r705225;
}




Bits error versus x




Bits error versus y




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