\log \left(1 + e^{x}\right) - x \cdot y(e^{\log \left(\log_* (1 + e^{x}) + 1\right)} - 1)^* - x \cdot ydouble f(double x, double y) {
double r25528202 = 1.0;
double r25528203 = x;
double r25528204 = exp(r25528203);
double r25528205 = r25528202 + r25528204;
double r25528206 = log(r25528205);
double r25528207 = y;
double r25528208 = r25528203 * r25528207;
double r25528209 = r25528206 - r25528208;
return r25528209;
}
double f(double x, double y) {
double r25528210 = x;
double r25528211 = exp(r25528210);
double r25528212 = log1p(r25528211);
double r25528213 = 1.0;
double r25528214 = r25528212 + r25528213;
double r25528215 = log(r25528214);
double r25528216 = expm1(r25528215);
double r25528217 = y;
double r25528218 = r25528210 * r25528217;
double r25528219 = r25528216 - r25528218;
return r25528219;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.1 |
| Herbie | 0.9 |
Initial program 0.4
Simplified0.4
rmApplied expm1-log1p-u0.4
rmApplied log1p-udef0.9
Final simplification0.9
herbie shell --seed 2019104 +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)))