\log \left(1 + e^{x}\right) - x \cdot y\left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \log \left(1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)\right)\right) - x \cdot ydouble f(double x, double y) {
double r136268 = 1.0;
double r136269 = x;
double r136270 = exp(r136269);
double r136271 = r136268 + r136270;
double r136272 = log(r136271);
double r136273 = y;
double r136274 = r136269 * r136273;
double r136275 = r136272 - r136274;
return r136275;
}
double f(double x, double y) {
double r136276 = 1.0;
double r136277 = 3.0;
double r136278 = pow(r136276, r136277);
double r136279 = x;
double r136280 = exp(r136279);
double r136281 = pow(r136280, r136277);
double r136282 = r136278 + r136281;
double r136283 = log(r136282);
double r136284 = r136276 * r136276;
double r136285 = r136280 * r136280;
double r136286 = r136276 * r136280;
double r136287 = r136285 - r136286;
double r136288 = r136284 + r136287;
double r136289 = log(r136288);
double r136290 = r136283 - r136289;
double r136291 = y;
double r136292 = r136279 * r136291;
double r136293 = r136290 - r136292;
return r136293;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.6 |
Initial program 0.6
rmApplied flip3-+0.6
Applied log-div0.6
Final simplification0.6
herbie shell --seed 2019308
(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)))