x \cdot \log \left(\frac{x}{y}\right) - z\left(3 \cdot \log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right) \cdot x + \left(-z\right)double f(double x, double y, double z) {
double r292390 = x;
double r292391 = y;
double r292392 = r292390 / r292391;
double r292393 = log(r292392);
double r292394 = r292390 * r292393;
double r292395 = z;
double r292396 = r292394 - r292395;
return r292396;
}
double f(double x, double y, double z) {
double r292397 = 3.0;
double r292398 = x;
double r292399 = cbrt(r292398);
double r292400 = y;
double r292401 = cbrt(r292400);
double r292402 = r292399 / r292401;
double r292403 = log(r292402);
double r292404 = r292397 * r292403;
double r292405 = r292404 * r292398;
double r292406 = z;
double r292407 = -r292406;
double r292408 = r292405 + r292407;
return r292408;
}




Bits error versus x




Bits error versus y




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