\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 r5585807 = 1.0;
double r5585808 = x;
double r5585809 = exp(r5585808);
double r5585810 = r5585807 + r5585809;
double r5585811 = log(r5585810);
double r5585812 = y;
double r5585813 = r5585808 * r5585812;
double r5585814 = r5585811 - r5585813;
return r5585814;
}
double f(double x, double y) {
double r5585815 = 1.0;
double r5585816 = x;
double r5585817 = exp(r5585816);
double r5585818 = r5585815 + r5585817;
double r5585819 = sqrt(r5585818);
double r5585820 = log(r5585819);
double r5585821 = r5585820 + r5585820;
double r5585822 = y;
double r5585823 = r5585816 * r5585822;
double r5585824 = r5585821 - r5585823;
return r5585824;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.1 |
| Herbie | 1.0 |
Initial program 0.5
rmApplied add-sqr-sqrt1.3
Applied log-prod1.0
Final simplification1.0
herbie shell --seed 2019174
(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)))