x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
\left(x \cdot 0.5 + y \cdot \left(1 - z\right)\right) + y \cdot \log z
double f(double x, double y, double z) {
double r352442 = x;
double r352443 = 0.5;
double r352444 = r352442 * r352443;
double r352445 = y;
double r352446 = 1.0;
double r352447 = z;
double r352448 = r352446 - r352447;
double r352449 = log(r352447);
double r352450 = r352448 + r352449;
double r352451 = r352445 * r352450;
double r352452 = r352444 + r352451;
return r352452;
}
double f(double x, double y, double z) {
double r352453 = x;
double r352454 = 0.5;
double r352455 = r352453 * r352454;
double r352456 = y;
double r352457 = 1.0;
double r352458 = z;
double r352459 = r352457 - r352458;
double r352460 = r352456 * r352459;
double r352461 = r352455 + r352460;
double r352462 = log(r352458);
double r352463 = r352456 * r352462;
double r352464 = r352461 + r352463;
return r352464;
}




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
Applied associate-+r+0.1
Final simplification0.1
herbie shell --seed 2020035
(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)))))