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 r58021628 = x;
double r58021629 = 0.5;
double r58021630 = r58021628 * r58021629;
double r58021631 = y;
double r58021632 = 1.0;
double r58021633 = z;
double r58021634 = r58021632 - r58021633;
double r58021635 = log(r58021633);
double r58021636 = r58021634 + r58021635;
double r58021637 = r58021631 * r58021636;
double r58021638 = r58021630 + r58021637;
return r58021638;
}
double f(double x, double y, double z) {
double r58021639 = x;
double r58021640 = 0.5;
double r58021641 = r58021639 * r58021640;
double r58021642 = y;
double r58021643 = 1.0;
double r58021644 = z;
double r58021645 = r58021643 - r58021644;
double r58021646 = log(r58021644);
double r58021647 = r58021645 + r58021646;
double r58021648 = r58021642 * r58021647;
double r58021649 = r58021641 + r58021648;
return r58021649;
}




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 2019173
(FPCore (x y z)
:name "System.Random.MWC.Distributions:gamma from mwc-random-0.13.3.2"
:herbie-target
(- (+ y (* 0.5 x)) (* y (- z (log z))))
(+ (* x 0.5) (* y (+ (- 1.0 z) (log z)))))