x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
\left(\left(1 - z\right) \cdot y + x \cdot 0.5\right) + \log z \cdot y
double f(double x, double y, double z) {
double r269004 = x;
double r269005 = 0.5;
double r269006 = r269004 * r269005;
double r269007 = y;
double r269008 = 1.0;
double r269009 = z;
double r269010 = r269008 - r269009;
double r269011 = log(r269009);
double r269012 = r269010 + r269011;
double r269013 = r269007 * r269012;
double r269014 = r269006 + r269013;
return r269014;
}
double f(double x, double y, double z) {
double r269015 = 1.0;
double r269016 = z;
double r269017 = r269015 - r269016;
double r269018 = y;
double r269019 = r269017 * r269018;
double r269020 = x;
double r269021 = 0.5;
double r269022 = r269020 * r269021;
double r269023 = r269019 + r269022;
double r269024 = log(r269016);
double r269025 = r269024 * r269018;
double r269026 = r269023 + r269025;
return r269026;
}




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 add-cube-cbrt0.1
Applied log-prod0.1
Applied associate-+r+0.1
Simplified0.1
rmApplied distribute-lft-in0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 1978988140
(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)))))