x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + y \cdot \left(\left(\left(1 - z\right) + \log \left(\sqrt{z}\right)\right) + \log \left(\sqrt{z}\right)\right)double f(double x, double y, double z) {
double r304296 = x;
double r304297 = 0.5;
double r304298 = r304296 * r304297;
double r304299 = y;
double r304300 = 1.0;
double r304301 = z;
double r304302 = r304300 - r304301;
double r304303 = log(r304301);
double r304304 = r304302 + r304303;
double r304305 = r304299 * r304304;
double r304306 = r304298 + r304305;
return r304306;
}
double f(double x, double y, double z) {
double r304307 = x;
double r304308 = 0.5;
double r304309 = r304307 * r304308;
double r304310 = y;
double r304311 = 1.0;
double r304312 = z;
double r304313 = r304311 - r304312;
double r304314 = sqrt(r304312);
double r304315 = log(r304314);
double r304316 = r304313 + r304315;
double r304317 = r304316 + r304315;
double r304318 = r304310 * r304317;
double r304319 = r304309 + r304318;
return r304319;
}




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 add-sqr-sqrt0.1
Applied log-prod0.1
Applied associate-+r+0.1
Final simplification0.1
herbie shell --seed 2020018
(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)))))