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 r260851 = x;
double r260852 = 0.5;
double r260853 = r260851 * r260852;
double r260854 = y;
double r260855 = 1.0;
double r260856 = z;
double r260857 = r260855 - r260856;
double r260858 = log(r260856);
double r260859 = r260857 + r260858;
double r260860 = r260854 * r260859;
double r260861 = r260853 + r260860;
return r260861;
}
double f(double x, double y, double z) {
double r260862 = x;
double r260863 = 0.5;
double r260864 = r260862 * r260863;
double r260865 = y;
double r260866 = 2.0;
double r260867 = z;
double r260868 = sqrt(r260867);
double r260869 = log(r260868);
double r260870 = r260866 * r260869;
double r260871 = 1.0;
double r260872 = r260871 - r260867;
double r260873 = r260870 + r260872;
double r260874 = r260865 * r260873;
double r260875 = r260864 + r260874;
return r260875;
}




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