x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + \left(\left(1 - z\right) + \log z\right) \cdot y
double f(double x, double y, double z) {
double r347796 = x;
double r347797 = 0.5;
double r347798 = r347796 * r347797;
double r347799 = y;
double r347800 = 1.0;
double r347801 = z;
double r347802 = r347800 - r347801;
double r347803 = log(r347801);
double r347804 = r347802 + r347803;
double r347805 = r347799 * r347804;
double r347806 = r347798 + r347805;
return r347806;
}
double f(double x, double y, double z) {
double r347807 = x;
double r347808 = 0.5;
double r347809 = r347807 * r347808;
double r347810 = 1.0;
double r347811 = z;
double r347812 = r347810 - r347811;
double r347813 = log(r347811);
double r347814 = r347812 + r347813;
double r347815 = y;
double r347816 = r347814 * r347815;
double r347817 = r347809 + r347816;
return r347817;
}




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 *-commutative0.1
Final simplification0.1
herbie shell --seed 2020047
(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)))))