x \cdot 0.5 + y \cdot \left(\left(1 - z\right) + \log z\right)
\left(\left(\log z + 1\right) - z\right) \cdot y + 0.5 \cdot x
double f(double x, double y, double z) {
double r14419033 = x;
double r14419034 = 0.5;
double r14419035 = r14419033 * r14419034;
double r14419036 = y;
double r14419037 = 1.0;
double r14419038 = z;
double r14419039 = r14419037 - r14419038;
double r14419040 = log(r14419038);
double r14419041 = r14419039 + r14419040;
double r14419042 = r14419036 * r14419041;
double r14419043 = r14419035 + r14419042;
return r14419043;
}
double f(double x, double y, double z) {
double r14419044 = z;
double r14419045 = log(r14419044);
double r14419046 = 1.0;
double r14419047 = r14419045 + r14419046;
double r14419048 = r14419047 - r14419044;
double r14419049 = y;
double r14419050 = r14419048 * r14419049;
double r14419051 = 0.5;
double r14419052 = x;
double r14419053 = r14419051 * r14419052;
double r14419054 = r14419050 + r14419053;
return r14419054;
}




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
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019200
(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)))))