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 r244837 = x;
double r244838 = 0.5;
double r244839 = r244837 * r244838;
double r244840 = y;
double r244841 = 1.0;
double r244842 = z;
double r244843 = r244841 - r244842;
double r244844 = log(r244842);
double r244845 = r244843 + r244844;
double r244846 = r244840 * r244845;
double r244847 = r244839 + r244846;
return r244847;
}
double f(double x, double y, double z) {
double r244848 = x;
double r244849 = 0.5;
double r244850 = r244848 * r244849;
double r244851 = y;
double r244852 = 1.0;
double r244853 = z;
double r244854 = r244852 - r244853;
double r244855 = log(r244853);
double r244856 = r244854 + r244855;
double r244857 = r244851 * r244856;
double r244858 = r244850 + r244857;
return r244858;
}




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