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 r349942 = x;
double r349943 = 0.5;
double r349944 = r349942 * r349943;
double r349945 = y;
double r349946 = 1.0;
double r349947 = z;
double r349948 = r349946 - r349947;
double r349949 = log(r349947);
double r349950 = r349948 + r349949;
double r349951 = r349945 * r349950;
double r349952 = r349944 + r349951;
return r349952;
}
double f(double x, double y, double z) {
double r349953 = x;
double r349954 = 0.5;
double r349955 = r349953 * r349954;
double r349956 = y;
double r349957 = 1.0;
double r349958 = z;
double r349959 = r349957 - r349958;
double r349960 = log(r349958);
double r349961 = r349959 + r349960;
double r349962 = r349956 * r349961;
double r349963 = r349955 + r349962;
return r349963;
}




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