x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
x \cdot 0.5 + y \cdot \left(\left(\left(2 \cdot \log \left(\sqrt[3]{z}\right) + 1\right) - z\right) + \log \left(\sqrt[3]{z}\right)\right)double f(double x, double y, double z) {
double r203053 = x;
double r203054 = 0.5;
double r203055 = r203053 * r203054;
double r203056 = y;
double r203057 = 1.0;
double r203058 = z;
double r203059 = r203057 - r203058;
double r203060 = log(r203058);
double r203061 = r203059 + r203060;
double r203062 = r203056 * r203061;
double r203063 = r203055 + r203062;
return r203063;
}
double f(double x, double y, double z) {
double r203064 = x;
double r203065 = 0.5;
double r203066 = r203064 * r203065;
double r203067 = y;
double r203068 = 2.0;
double r203069 = z;
double r203070 = cbrt(r203069);
double r203071 = log(r203070);
double r203072 = r203068 * r203071;
double r203073 = 1.0;
double r203074 = r203072 + r203073;
double r203075 = r203074 - r203069;
double r203076 = r203075 + r203071;
double r203077 = r203067 * r203076;
double r203078 = r203066 + r203077;
return r203078;
}




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
Final simplification0.1
herbie shell --seed 2019323
(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)))))