x \cdot \log \left(\frac{x}{y}\right) - z\left(\left(\log \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right) \cdot 2\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 r331550 = x;
double r331551 = y;
double r331552 = r331550 / r331551;
double r331553 = log(r331552);
double r331554 = r331550 * r331553;
double r331555 = z;
double r331556 = r331554 - r331555;
return r331556;
}
double f(double x, double y, double z) {
double r331557 = x;
double r331558 = cbrt(r331557);
double r331559 = y;
double r331560 = cbrt(r331559);
double r331561 = r331558 / r331560;
double r331562 = log(r331561);
double r331563 = 2.0;
double r331564 = r331562 * r331563;
double r331565 = r331564 * r331557;
double r331566 = r331557 * r331562;
double r331567 = r331565 + r331566;
double r331568 = z;
double r331569 = r331567 - r331568;
return r331569;
}




Bits error versus x




Bits error versus y




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