x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
double f(double x, double y, double z) {
double r231722 = x;
double r231723 = 0.5;
double r231724 = r231722 * r231723;
double r231725 = y;
double r231726 = 1.0;
double r231727 = z;
double r231728 = r231726 - r231727;
double r231729 = log(r231727);
double r231730 = r231728 + r231729;
double r231731 = r231725 * r231730;
double r231732 = r231724 + r231731;
return r231732;
}
double f(double x, double y, double z) {
double r231733 = x;
double r231734 = 0.5;
double r231735 = r231733 * r231734;
double r231736 = y;
double r231737 = 1.0;
double r231738 = z;
double r231739 = r231737 - r231738;
double r231740 = log(r231738);
double r231741 = r231739 + r231740;
double r231742 = r231736 * r231741;
double r231743 = r231735 + r231742;
return r231743;
}




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
Final simplification0.1
herbie shell --seed 2019212
(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)))))