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 r15806807 = x;
double r15806808 = 0.5;
double r15806809 = r15806807 * r15806808;
double r15806810 = y;
double r15806811 = 1.0;
double r15806812 = z;
double r15806813 = r15806811 - r15806812;
double r15806814 = log(r15806812);
double r15806815 = r15806813 + r15806814;
double r15806816 = r15806810 * r15806815;
double r15806817 = r15806809 + r15806816;
return r15806817;
}
double f(double x, double y, double z) {
double r15806818 = z;
double r15806819 = log(r15806818);
double r15806820 = 1.0;
double r15806821 = r15806820 - r15806818;
double r15806822 = r15806819 + r15806821;
double r15806823 = y;
double r15806824 = r15806822 * r15806823;
double r15806825 = x;
double r15806826 = 0.5;
double r15806827 = r15806825 * r15806826;
double r15806828 = r15806824 + r15806827;
return r15806828;
}




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