\log \left(1 + e^{x}\right) - x \cdot y\begin{array}{l}
\mathbf{if}\;x \le -9.413547838898711118287877808175068139462 \cdot 10^{-6}:\\
\;\;\;\;\log \left(\sqrt{1 + e^{x}}\right) + \left(\log \left(\sqrt{1 + e^{x}}\right) - x \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{\frac{{\left(\log 2\right)}^{2} \cdot {x}^{2}}{{2}^{2}} \cdot \frac{-3}{2} + \left({\left(\log 2\right)}^{2} \cdot \left(x \cdot 1.5 + \log 2\right) + \left(0.75 \cdot {x}^{2}\right) \cdot \left(\log 2 + {\left(\log 2\right)}^{2}\right)\right)} - x \cdot y\\
\end{array}double f(double x, double y) {
double r154204 = 1.0;
double r154205 = x;
double r154206 = exp(r154205);
double r154207 = r154204 + r154206;
double r154208 = log(r154207);
double r154209 = y;
double r154210 = r154205 * r154209;
double r154211 = r154208 - r154210;
return r154211;
}
double f(double x, double y) {
double r154212 = x;
double r154213 = -9.413547838898711e-06;
bool r154214 = r154212 <= r154213;
double r154215 = 1.0;
double r154216 = exp(r154212);
double r154217 = r154215 + r154216;
double r154218 = sqrt(r154217);
double r154219 = log(r154218);
double r154220 = y;
double r154221 = r154212 * r154220;
double r154222 = r154219 - r154221;
double r154223 = r154219 + r154222;
double r154224 = 2.0;
double r154225 = log(r154224);
double r154226 = 2.0;
double r154227 = pow(r154225, r154226);
double r154228 = pow(r154212, r154226);
double r154229 = r154227 * r154228;
double r154230 = pow(r154224, r154226);
double r154231 = r154229 / r154230;
double r154232 = -1.5;
double r154233 = r154231 * r154232;
double r154234 = 1.5;
double r154235 = r154212 * r154234;
double r154236 = r154235 + r154225;
double r154237 = r154227 * r154236;
double r154238 = 0.75;
double r154239 = r154238 * r154228;
double r154240 = r154225 + r154227;
double r154241 = r154239 * r154240;
double r154242 = r154237 + r154241;
double r154243 = r154233 + r154242;
double r154244 = cbrt(r154243);
double r154245 = r154244 - r154221;
double r154246 = r154214 ? r154223 : r154245;
return r154246;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.4 |
if x < -9.413547838898711e-06Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied log-prod0.2
Applied associate--l+0.2
if -9.413547838898711e-06 < x Initial program 0.7
Taylor expanded around 0 0.4
rmApplied add-cbrt-cube0.4
Simplified0.4
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019325
(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)))