x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + \left(\left(1 - z\right) \cdot y + y \cdot \log z\right)
double f(double x, double y, double z) {
double r315476 = x;
double r315477 = 0.5;
double r315478 = r315476 * r315477;
double r315479 = y;
double r315480 = 1.0;
double r315481 = z;
double r315482 = r315480 - r315481;
double r315483 = log(r315481);
double r315484 = r315482 + r315483;
double r315485 = r315479 * r315484;
double r315486 = r315478 + r315485;
return r315486;
}
double f(double x, double y, double z) {
double r315487 = x;
double r315488 = 0.5;
double r315489 = r315487 * r315488;
double r315490 = 1.0;
double r315491 = z;
double r315492 = r315490 - r315491;
double r315493 = y;
double r315494 = r315492 * r315493;
double r315495 = log(r315491);
double r315496 = r315493 * r315495;
double r315497 = r315494 + r315496;
double r315498 = r315489 + r315497;
return r315498;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied distribute-lft-in0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020045
(FPCore (x y z)
:name "System.Random.MWC.Distributions:gamma from mwc-random-0.13.3.2"
:precision binary64
:herbie-target
(- (+ y (* 0.5 x)) (* y (- z (log z))))
(+ (* x 0.5) (* y (+ (- 1 z) (log z)))))