\log \left(1 + e^{x}\right) - x \cdot y\mathsf{log1p}\left(e^{x}\right) - y \cdot xdouble f(double x, double y) {
double r6037462 = 1.0;
double r6037463 = x;
double r6037464 = exp(r6037463);
double r6037465 = r6037462 + r6037464;
double r6037466 = log(r6037465);
double r6037467 = y;
double r6037468 = r6037463 * r6037467;
double r6037469 = r6037466 - r6037468;
return r6037469;
}
double f(double x, double y) {
double r6037470 = x;
double r6037471 = exp(r6037470);
double r6037472 = log1p(r6037471);
double r6037473 = y;
double r6037474 = r6037473 * r6037470;
double r6037475 = r6037472 - r6037474;
return r6037475;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.4 |
Initial program 0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019142 +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)))