\log \left(1 + e^{x}\right) - x \cdot y\log \left(1 + e^{x}\right) - y \cdot xdouble f(double x, double y) {
double r21245257 = 1.0;
double r21245258 = x;
double r21245259 = exp(r21245258);
double r21245260 = r21245257 + r21245259;
double r21245261 = log(r21245260);
double r21245262 = y;
double r21245263 = r21245258 * r21245262;
double r21245264 = r21245261 - r21245263;
return r21245264;
}
double f(double x, double y) {
double r21245265 = 1.0;
double r21245266 = x;
double r21245267 = exp(r21245266);
double r21245268 = r21245265 + r21245267;
double r21245269 = log(r21245268);
double r21245270 = y;
double r21245271 = r21245270 * r21245266;
double r21245272 = r21245269 - r21245271;
return r21245272;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.6 |
Initial program 0.6
Final simplification0.6
herbie shell --seed 2019124 +o rules:numerics
(FPCore (x y)
:name "Logistic regression 2"
:herbie-target
(if (<= x 0) (- (log (+ 1 (exp x))) (* x y)) (- (log (+ 1 (exp (- x)))) (* (- x) (- 1 y))))
(- (log (+ 1 (exp x))) (* x y)))