x \cdot \log \left(\frac{x}{y}\right) - z\left(\left(2 \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) \cdot x + x \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) - zdouble f(double x, double y, double z) {
double r543336 = x;
double r543337 = y;
double r543338 = r543336 / r543337;
double r543339 = log(r543338);
double r543340 = r543336 * r543339;
double r543341 = z;
double r543342 = r543340 - r543341;
return r543342;
}
double f(double x, double y, double z) {
double r543343 = 2.0;
double r543344 = x;
double r543345 = cbrt(r543344);
double r543346 = y;
double r543347 = cbrt(r543346);
double r543348 = r543345 / r543347;
double r543349 = log(r543348);
double r543350 = r543343 * r543349;
double r543351 = r543350 * r543344;
double r543352 = r543344 * r543349;
double r543353 = r543351 + r543352;
double r543354 = z;
double r543355 = r543353 - r543354;
return r543355;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.3 |
|---|---|
| Target | 7.8 |
| Herbie | 0.2 |
Initial program 15.3
rmApplied add-cube-cbrt15.3
Applied add-cube-cbrt15.3
Applied times-frac15.3
Applied log-prod3.7
Applied distribute-lft-in3.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2019350
(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))