x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
\left(\log z + \left(1 - z\right)\right) \cdot y + x \cdot 0.5
double f(double x, double y, double z) {
double r14093410 = x;
double r14093411 = 0.5;
double r14093412 = r14093410 * r14093411;
double r14093413 = y;
double r14093414 = 1.0;
double r14093415 = z;
double r14093416 = r14093414 - r14093415;
double r14093417 = log(r14093415);
double r14093418 = r14093416 + r14093417;
double r14093419 = r14093413 * r14093418;
double r14093420 = r14093412 + r14093419;
return r14093420;
}
double f(double x, double y, double z) {
double r14093421 = z;
double r14093422 = log(r14093421);
double r14093423 = 1.0;
double r14093424 = r14093423 - r14093421;
double r14093425 = r14093422 + r14093424;
double r14093426 = y;
double r14093427 = r14093425 * r14093426;
double r14093428 = x;
double r14093429 = 0.5;
double r14093430 = r14093428 * r14093429;
double r14093431 = r14093427 + r14093430;
return r14093431;
}




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