\log \left(1 + e^{x}\right) - x \cdot y\left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \log \left(1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)\right)\right) - x \cdot ydouble f(double x, double y) {
double r143136 = 1.0;
double r143137 = x;
double r143138 = exp(r143137);
double r143139 = r143136 + r143138;
double r143140 = log(r143139);
double r143141 = y;
double r143142 = r143137 * r143141;
double r143143 = r143140 - r143142;
return r143143;
}
double f(double x, double y) {
double r143144 = 1.0;
double r143145 = 3.0;
double r143146 = pow(r143144, r143145);
double r143147 = x;
double r143148 = exp(r143147);
double r143149 = pow(r143148, r143145);
double r143150 = r143146 + r143149;
double r143151 = log(r143150);
double r143152 = r143144 * r143144;
double r143153 = r143148 * r143148;
double r143154 = r143144 * r143148;
double r143155 = r143153 - r143154;
double r143156 = r143152 + r143155;
double r143157 = log(r143156);
double r143158 = r143151 - r143157;
double r143159 = y;
double r143160 = r143147 * r143159;
double r143161 = r143158 - r143160;
return r143161;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.1 |
| Herbie | 0.5 |
Initial program 0.5
rmApplied flip3-+0.5
Applied log-div0.5
Final simplification0.5
herbie shell --seed 2020021 +o rules:numerics
(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)))