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 r239682 = x;
double r239683 = 0.5;
double r239684 = r239682 * r239683;
double r239685 = y;
double r239686 = 1.0;
double r239687 = z;
double r239688 = r239686 - r239687;
double r239689 = log(r239687);
double r239690 = r239688 + r239689;
double r239691 = r239685 * r239690;
double r239692 = r239684 + r239691;
return r239692;
}
double f(double x, double y, double z) {
double r239693 = x;
double r239694 = 0.5;
double r239695 = r239693 * r239694;
double r239696 = y;
double r239697 = 1.0;
double r239698 = z;
double r239699 = r239697 - r239698;
double r239700 = sqrt(r239698);
double r239701 = log(r239700);
double r239702 = r239699 + r239701;
double r239703 = r239702 + r239701;
double r239704 = r239696 * r239703;
double r239705 = r239695 + r239704;
return r239705;
}




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 +o rules:numerics
(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)))))