\log \left(1 + e^{x}\right) - x \cdot y\left(\log \left(\sqrt{1 + e^{x}}\right) + \log \left(\sqrt{1 + e^{x}}\right)\right) - x \cdot ydouble f(double x, double y) {
double r4956024 = 1.0;
double r4956025 = x;
double r4956026 = exp(r4956025);
double r4956027 = r4956024 + r4956026;
double r4956028 = log(r4956027);
double r4956029 = y;
double r4956030 = r4956025 * r4956029;
double r4956031 = r4956028 - r4956030;
return r4956031;
}
double f(double x, double y) {
double r4956032 = 1.0;
double r4956033 = x;
double r4956034 = exp(r4956033);
double r4956035 = r4956032 + r4956034;
double r4956036 = sqrt(r4956035);
double r4956037 = log(r4956036);
double r4956038 = r4956037 + r4956037;
double r4956039 = y;
double r4956040 = r4956033 * r4956039;
double r4956041 = r4956038 - r4956040;
return r4956041;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.1 |
| Herbie | 1.1 |
Initial program 0.5
rmApplied add-sqr-sqrt1.4
Applied log-prod1.1
Final simplification1.1
herbie shell --seed 2019169
(FPCore (x y)
:name "Logistic regression 2"
:herbie-target
(if (<= x 0.0) (- (log (+ 1.0 (exp x))) (* x y)) (- (log (+ 1.0 (exp (- x)))) (* (- x) (- 1.0 y))))
(- (log (+ 1.0 (exp x))) (* x y)))