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 r322678 = x;
double r322679 = 0.5;
double r322680 = r322678 * r322679;
double r322681 = y;
double r322682 = 1.0;
double r322683 = z;
double r322684 = r322682 - r322683;
double r322685 = log(r322683);
double r322686 = r322684 + r322685;
double r322687 = r322681 * r322686;
double r322688 = r322680 + r322687;
return r322688;
}
double f(double x, double y, double z) {
double r322689 = x;
double r322690 = 0.5;
double r322691 = r322689 * r322690;
double r322692 = y;
double r322693 = 1.0;
double r322694 = z;
double r322695 = r322693 - r322694;
double r322696 = log(r322694);
double r322697 = r322695 + r322696;
double r322698 = r322692 * r322697;
double r322699 = r322691 + r322698;
return r322699;
}




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