x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + y \cdot \left(2 \cdot \log \left(\sqrt{z}\right) + \left(1 - z\right)\right)double f(double x, double y, double z) {
double r1500 = x;
double r1501 = 0.5;
double r1502 = r1500 * r1501;
double r1503 = y;
double r1504 = 1.0;
double r1505 = z;
double r1506 = r1504 - r1505;
double r1507 = log(r1505);
double r1508 = r1506 + r1507;
double r1509 = r1503 * r1508;
double r1510 = r1502 + r1509;
return r1510;
}
double f(double x, double y, double z) {
double r1511 = x;
double r1512 = 0.5;
double r1513 = r1511 * r1512;
double r1514 = y;
double r1515 = 2.0;
double r1516 = z;
double r1517 = sqrt(r1516);
double r1518 = log(r1517);
double r1519 = r1515 * r1518;
double r1520 = 1.0;
double r1521 = r1520 - r1516;
double r1522 = r1519 + r1521;
double r1523 = r1514 * r1522;
double r1524 = r1513 + r1523;
return r1524;
}




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