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 r236697 = x;
double r236698 = 0.5;
double r236699 = r236697 * r236698;
double r236700 = y;
double r236701 = 1.0;
double r236702 = z;
double r236703 = r236701 - r236702;
double r236704 = log(r236702);
double r236705 = r236703 + r236704;
double r236706 = r236700 * r236705;
double r236707 = r236699 + r236706;
return r236707;
}
double f(double x, double y, double z) {
double r236708 = x;
double r236709 = 0.5;
double r236710 = r236708 * r236709;
double r236711 = y;
double r236712 = 1.0;
double r236713 = z;
double r236714 = r236712 - r236713;
double r236715 = log(r236713);
double r236716 = r236714 + r236715;
double r236717 = r236711 * r236716;
double r236718 = r236710 + r236717;
return r236718;
}




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 2019294
(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)))))