\log \left(1 + e^{x}\right) - x \cdot y\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \left(\left(\sqrt[3]{\log \left(1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)\right)} \cdot \sqrt[3]{\log \left(1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)\right)}\right) \cdot \sqrt[3]{\log \left(1 \cdot 1 + \log \left({\left(e^{e^{x}}\right)}^{\left(e^{x} - 1\right)}\right)\right)} + x \cdot y\right)double f(double x, double y) {
double r210417 = 1.0;
double r210418 = x;
double r210419 = exp(r210418);
double r210420 = r210417 + r210419;
double r210421 = log(r210420);
double r210422 = y;
double r210423 = r210418 * r210422;
double r210424 = r210421 - r210423;
return r210424;
}
double f(double x, double y) {
double r210425 = 1.0;
double r210426 = 3.0;
double r210427 = pow(r210425, r210426);
double r210428 = x;
double r210429 = exp(r210428);
double r210430 = pow(r210429, r210426);
double r210431 = r210427 + r210430;
double r210432 = log(r210431);
double r210433 = r210425 * r210425;
double r210434 = r210429 * r210429;
double r210435 = r210425 * r210429;
double r210436 = r210434 - r210435;
double r210437 = r210433 + r210436;
double r210438 = log(r210437);
double r210439 = cbrt(r210438);
double r210440 = r210439 * r210439;
double r210441 = exp(r210429);
double r210442 = r210429 - r210425;
double r210443 = pow(r210441, r210442);
double r210444 = log(r210443);
double r210445 = r210433 + r210444;
double r210446 = log(r210445);
double r210447 = cbrt(r210446);
double r210448 = r210440 * r210447;
double r210449 = y;
double r210450 = r210428 * r210449;
double r210451 = r210448 + r210450;
double r210452 = r210432 - r210451;
return r210452;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.1 |
| Herbie | 0.7 |
Initial program 0.5
rmApplied flip3-+0.5
Applied log-div0.5
Applied associate--l-0.5
rmApplied add-cube-cbrt0.5
rmApplied add-log-exp0.6
Applied add-log-exp0.7
Applied diff-log0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2020047
(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)))