\log \left(1 + e^{x}\right) - x \cdot y\log \left(1 + e^{x}\right) - x \cdot ydouble f(double x, double y) {
double r168248 = 1.0;
double r168249 = x;
double r168250 = exp(r168249);
double r168251 = r168248 + r168250;
double r168252 = log(r168251);
double r168253 = y;
double r168254 = r168249 * r168253;
double r168255 = r168252 - r168254;
return r168255;
}
double f(double x, double y) {
double r168256 = 1.0;
double r168257 = x;
double r168258 = exp(r168257);
double r168259 = r168256 + r168258;
double r168260 = log(r168259);
double r168261 = y;
double r168262 = r168257 * r168261;
double r168263 = r168260 - r168262;
return r168263;
}




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 2020059 +o rules:numerics
(FPCore (x y)
:name "Logistic regression 2"
:precision binary64
:herbie-target
(if (<= x 0.0) (- (log (+ 1 (exp x))) (* x y)) (- (log (+ 1 (exp (- x)))) (* (- x) (- 1 y))))
(- (log (+ 1 (exp x))) (* x y)))