\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(-0.5\right) \cdot \log \left(\sqrt{t}\right) + \left(\left(\log \left(\sqrt{t}\right) \cdot \left(\left(a - 0.5\right) + a\right) + \left(\log z - t\right)\right) + \log \left(x + y\right)\right)double f(double x, double y, double z, double t, double a) {
double r16051003 = x;
double r16051004 = y;
double r16051005 = r16051003 + r16051004;
double r16051006 = log(r16051005);
double r16051007 = z;
double r16051008 = log(r16051007);
double r16051009 = r16051006 + r16051008;
double r16051010 = t;
double r16051011 = r16051009 - r16051010;
double r16051012 = a;
double r16051013 = 0.5;
double r16051014 = r16051012 - r16051013;
double r16051015 = log(r16051010);
double r16051016 = r16051014 * r16051015;
double r16051017 = r16051011 + r16051016;
return r16051017;
}
double f(double x, double y, double z, double t, double a) {
double r16051018 = 0.5;
double r16051019 = -r16051018;
double r16051020 = t;
double r16051021 = sqrt(r16051020);
double r16051022 = log(r16051021);
double r16051023 = r16051019 * r16051022;
double r16051024 = a;
double r16051025 = r16051024 - r16051018;
double r16051026 = r16051025 + r16051024;
double r16051027 = r16051022 * r16051026;
double r16051028 = z;
double r16051029 = log(r16051028);
double r16051030 = r16051029 - r16051020;
double r16051031 = r16051027 + r16051030;
double r16051032 = x;
double r16051033 = y;
double r16051034 = r16051032 + r16051033;
double r16051035 = log(r16051034);
double r16051036 = r16051031 + r16051035;
double r16051037 = r16051023 + r16051036;
return r16051037;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied add-sqr-sqrt0.3
Applied log-prod0.3
Applied distribute-rgt-in0.3
Applied associate-+r+0.3
rmApplied sub-neg0.3
Applied distribute-rgt-in0.3
Applied associate-+r+0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019169
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))