\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\left(\left(x - \left(\left(y + 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{y}\right)\right) + \log \left(\sqrt[3]{y}\right) \cdot \left(y + 0.5\right)\right)\right) + y\right) - zdouble f(double x, double y, double z) {
double r359462 = x;
double r359463 = y;
double r359464 = 0.5;
double r359465 = r359463 + r359464;
double r359466 = log(r359463);
double r359467 = r359465 * r359466;
double r359468 = r359462 - r359467;
double r359469 = r359468 + r359463;
double r359470 = z;
double r359471 = r359469 - r359470;
return r359471;
}
double f(double x, double y, double z) {
double r359472 = x;
double r359473 = y;
double r359474 = 0.5;
double r359475 = r359473 + r359474;
double r359476 = 2.0;
double r359477 = cbrt(r359473);
double r359478 = log(r359477);
double r359479 = r359476 * r359478;
double r359480 = r359475 * r359479;
double r359481 = r359478 * r359475;
double r359482 = r359480 + r359481;
double r359483 = r359472 - r359482;
double r359484 = r359483 + r359473;
double r359485 = z;
double r359486 = r359484 - r359485;
return r359486;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.2
Applied distribute-lft-in0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020018
(FPCore (x y z)
:name "Numeric.SpecFunctions:stirlingError from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(- (- (+ y x) z) (* (+ y 0.5) (log y)))
(- (+ (- x (* (+ y 0.5) (log y))) y) z))