x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
\left(x \cdot 0.5 + y \cdot \left(1 - z\right)\right) + y \cdot \log z
double f(double x, double y, double z) {
double r276191 = x;
double r276192 = 0.5;
double r276193 = r276191 * r276192;
double r276194 = y;
double r276195 = 1.0;
double r276196 = z;
double r276197 = r276195 - r276196;
double r276198 = log(r276196);
double r276199 = r276197 + r276198;
double r276200 = r276194 * r276199;
double r276201 = r276193 + r276200;
return r276201;
}
double f(double x, double y, double z) {
double r276202 = x;
double r276203 = 0.5;
double r276204 = r276202 * r276203;
double r276205 = y;
double r276206 = 1.0;
double r276207 = z;
double r276208 = r276206 - r276207;
double r276209 = r276205 * r276208;
double r276210 = r276204 + r276209;
double r276211 = log(r276207);
double r276212 = r276205 * r276211;
double r276213 = r276210 + r276212;
return r276213;
}




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 distribute-lft-in0.1
Applied associate-+r+0.1
Final simplification0.1
herbie shell --seed 2019198
(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)))))