\log \left(1 + e^{x}\right) - x \cdot y\log \left(\frac{{1}^{3} + {\left(e^{x}\right)}^{2} \cdot e^{x}}{e^{x} \cdot \left(e^{x} - 1\right) + 1 \cdot 1}\right) - x \cdot ydouble f(double x, double y) {
double r108992 = 1.0;
double r108993 = x;
double r108994 = exp(r108993);
double r108995 = r108992 + r108994;
double r108996 = log(r108995);
double r108997 = y;
double r108998 = r108993 * r108997;
double r108999 = r108996 - r108998;
return r108999;
}
double f(double x, double y) {
double r109000 = 1.0;
double r109001 = 3.0;
double r109002 = pow(r109000, r109001);
double r109003 = x;
double r109004 = exp(r109003);
double r109005 = 2.0;
double r109006 = pow(r109004, r109005);
double r109007 = r109006 * r109004;
double r109008 = r109002 + r109007;
double r109009 = r109004 - r109000;
double r109010 = r109004 * r109009;
double r109011 = r109000 * r109000;
double r109012 = r109010 + r109011;
double r109013 = r109008 / r109012;
double r109014 = log(r109013);
double r109015 = y;
double r109016 = r109003 * r109015;
double r109017 = r109014 - r109016;
return r109017;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.5 |
Initial program 0.5
rmApplied flip3-+0.5
Simplified0.5
rmApplied add-cube-cbrt0.6
Applied unpow-prod-down0.6
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019326
(FPCore (x y)
:name "Logistic regression 2"
:precision binary64
:herbie-target
(if (<= x 0.0) (- (log (+ 1 (exp x))) (* x y)) (- (log (+ 1 (exp (- x)))) (* (- x) (- 1 y))))
(- (log (+ 1 (exp x))) (* x y)))