Average Error: 0.5 → 0.6
Time: 14.8s
Precision: 64
\[\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 y\]
\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 y
double 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;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.5
Target0.0
Herbie0.6
\[\begin{array}{l} \mathbf{if}\;x \le 0.0:\\ \;\;\;\;\log \left(1 + e^{x}\right) - x \cdot y\\ \mathbf{else}:\\ \;\;\;\;\log \left(1 + e^{-x}\right) - \left(-x\right) \cdot \left(1 - y\right)\\ \end{array}\]

Derivation

  1. Initial program 0.5

    \[\log \left(1 + e^{x}\right) - x \cdot y\]
  2. Using strategy rm
  3. Applied flip3-+0.5

    \[\leadsto \log \color{blue}{\left(\frac{{1}^{3} + {\left(e^{x}\right)}^{3}}{1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)}\right)} - x \cdot y\]
  4. Applied log-div0.5

    \[\leadsto \color{blue}{\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 y\]
  5. Simplified0.5

    \[\leadsto \left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \color{blue}{\log \left(e^{x} \cdot \left(e^{x} - 1\right) + 1 \cdot 1\right)}\right) - x \cdot y\]
  6. Using strategy rm
  7. Applied flip3-+0.6

    \[\leadsto \left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \log \color{blue}{\left(\frac{{\left(e^{x} \cdot \left(e^{x} - 1\right)\right)}^{3} + {\left(1 \cdot 1\right)}^{3}}{\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 y\]
  8. Applied log-div0.6

    \[\leadsto \left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \color{blue}{\left(\log \left({\left(e^{x} \cdot \left(e^{x} - 1\right)\right)}^{3} + {\left(1 \cdot 1\right)}^{3}\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)}\right) - x \cdot y\]
  9. Applied associate--r-0.6

    \[\leadsto \color{blue}{\left(\left(\log \left({1}^{3} + {\left(e^{x}\right)}^{3}\right) - \log \left({\left(e^{x} \cdot \left(e^{x} - 1\right)\right)}^{3} + {\left(1 \cdot 1\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 y\]
  10. Simplified0.6

    \[\leadsto \left(\color{blue}{\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 y\]
  11. Final simplification0.6

    \[\leadsto \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 y\]

Reproduce

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)))