\log \left(1 + e^{x}\right) - x \cdot y\left(\left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \log \left({1}^{6} + {\left(e^{x} \cdot \left(e^{x} - 1\right)\right)}^{3}\right)\right) + \log \left(\left(e^{x} \cdot \left(e^{x} - 1\right)\right) \cdot \left(e^{x} \cdot \left(e^{x} - 1\right)\right) + \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(e^{x} \cdot \left(e^{x} - 1\right)\right) \cdot \left(1 \cdot 1\right)\right)\right)\right) - x \cdot ydouble f(double x, double y) {
double r138182 = 1.0;
double r138183 = x;
double r138184 = exp(r138183);
double r138185 = r138182 + r138184;
double r138186 = log(r138185);
double r138187 = y;
double r138188 = r138183 * r138187;
double r138189 = r138186 - r138188;
return r138189;
}
double f(double x, double y) {
double r138190 = 1.0;
double r138191 = 3.0;
double r138192 = pow(r138190, r138191);
double r138193 = x;
double r138194 = exp(r138193);
double r138195 = pow(r138194, r138191);
double r138196 = r138192 + r138195;
double r138197 = log(r138196);
double r138198 = 6.0;
double r138199 = pow(r138190, r138198);
double r138200 = r138194 - r138190;
double r138201 = r138194 * r138200;
double r138202 = pow(r138201, r138191);
double r138203 = r138199 + r138202;
double r138204 = log(r138203);
double r138205 = r138197 - r138204;
double r138206 = r138201 * r138201;
double r138207 = r138190 * r138190;
double r138208 = r138207 * r138207;
double r138209 = r138201 * r138207;
double r138210 = r138208 - r138209;
double r138211 = r138206 + r138210;
double r138212 = log(r138211);
double r138213 = r138205 + r138212;
double r138214 = y;
double r138215 = r138193 * r138214;
double r138216 = r138213 - r138215;
return r138216;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.6 |
Initial program 0.5
rmApplied flip3-+0.5
Applied log-div0.5
Simplified0.5
rmApplied flip3-+0.6
Applied log-div0.6
Applied associate--r-0.6
Simplified0.6
Final simplification0.6
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)))