double f(double x, double y) {
double r17750443 = 1.0;
double r17750444 = x;
double r17750445 = exp(r17750444);
double r17750446 = r17750443 + r17750445;
double r17750447 = log(r17750446);
double r17750448 = y;
double r17750449 = r17750444 * r17750448;
double r17750450 = r17750447 - r17750449;
return r17750450;
}
double f(double x, double y) {
double r17750451 = 1.0;
double r17750452 = x;
double r17750453 = exp(r17750452);
double r17750454 = r17750451 + r17750453;
double r17750455 = sqrt(r17750454);
double r17750456 = log(r17750455);
double r17750457 = sqrt(r17750456);
double r17750458 = r17750457 * r17750457;
double r17750459 = y;
double r17750460 = r17750459 * r17750452;
double r17750461 = r17750456 - r17750460;
double r17750462 = r17750458 + r17750461;
return r17750462;
}
\log \left(1 + e^{x}\right) - x \cdot y\sqrt{\log \left(\sqrt{1 + e^{x}}\right)} \cdot \sqrt{\log \left(\sqrt{1 + e^{x}}\right)} + \left(\log \left(\sqrt{1 + e^{x}}\right) - y \cdot x\right)



Bits error versus x




Bits error versus y
| Original | 0.4 |
|---|---|
| Target | 0.1 |
| Herbie | 0.9 |
Initial program 0.4
rmApplied add-sqr-sqrt1.3
Applied log-prod1.0
Applied associate--l+1.0
rmApplied add-sqr-sqrt0.9
Final simplification0.9
herbie shell --seed 2019102
(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)))