Average Error: 0.5 → 0.5
Time: 13.3s
Precision: 64
Internal Precision: 128
\[\log \left(1 + e^{x}\right) - x \cdot y\]
\[\log \left({\left(e^{x}\right)}^{3} + 1\right) - \left(y \cdot x + \log \left(1 + \left(e^{x} \cdot e^{x} - e^{x}\right)\right)\right)\]

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.1
Herbie0.5
\[\begin{array}{l} \mathbf{if}\;x \le 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. Applied associate--l-0.5

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

    \[\leadsto \color{blue}{\log \left({\left(e^{x}\right)}^{3} + 1\right)} - \left(\log \left(1 \cdot 1 + \left(e^{x} \cdot e^{x} - 1 \cdot e^{x}\right)\right) + x \cdot y\right)\]
  7. Final simplification0.5

    \[\leadsto \log \left({\left(e^{x}\right)}^{3} + 1\right) - \left(y \cdot x + \log \left(1 + \left(e^{x} \cdot e^{x} - e^{x}\right)\right)\right)\]

Reproduce

herbie shell --seed 2019008 
(FPCore (x y)
  :name "Logistic regression 2"

  :herbie-target
  (if (<= x 0) (- (log (+ 1 (exp x))) (* x y)) (- (log (+ 1 (exp (- x)))) (* (- x) (- 1 y))))

  (- (log (+ 1 (exp x))) (* x y)))

Details

Time bar (total: 12.7s)Debug log

sample150.0ms

Algorithm
intervals

simplify10.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

10.0ms
(- (log (+ 1 (exp x))) (* x y))

prune5.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.7b

localize13.0ms

Local error

Found 3 expressions with local error:

0.7b
(log (+ 1 (exp x)))
0.0b
(+ 1 (exp x))
0.0b
(- (log (+ 1 (exp x))) (* x y))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
3 → 41
Calls

3 calls. Slowest were:

5.0ms
(- (log (+ 1 (exp x))) (* x y))
1.0ms
(log (+ 1 (exp x)))
1.0ms
(+ 1 (exp x))

series138.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

83.0ms
(log (+ 1 (exp x)))
49.0ms
(- (log (+ 1 (exp x))) (* x y))
7.0ms
(+ 1 (exp x))

simplify220.0ms

Counts
21 → 50
Calls

21 calls. Slowest were:

44.0ms
(+ (log 2) (+ (* 1/2 x) (* 1/8 (pow x 2))))
38.0ms
(+ x (+ (* 1/2 (pow x 2)) 2))
38.0ms
(+ (log 2) (+ (* 1/2 x) (* 1/8 (pow x 2))))

prune490.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0b

localize29.0ms

Local error

Found 4 expressions with local error:

5.2b
(log (+ (* 1 1) (- (* (exp x) (exp x)) (* 1 (exp x)))))
5.1b
(- (* (exp x) (exp x)) (* 1 (exp x)))
0.7b
(log (+ (pow (exp x) 3) 1))
0.0b
(pow (exp x) 3)

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
4 → 61
Calls

4 calls. Slowest were:

7.0ms
(log (+ (* 1 1) (- (* (exp x) (exp x)) (* 1 (exp x)))))
6.0ms
(- (* (exp x) (exp x)) (* 1 (exp x)))
4.0ms
(log (+ (pow (exp x) 3) 1))

series287.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

131.0ms
(log (+ (* 1 1) (- (* (exp x) (exp x)) (* 1 (exp x)))))
96.0ms
(log (+ (pow (exp x) 3) 1))
37.0ms
(- (* (exp x) (exp x)) (* 1 (exp x)))
23.0ms
(pow (exp x) 3)

simplify1.5s

Counts
37 → 73
Calls

37 calls. Slowest were:

303.0ms
(log (- (* (* 1 1) (* 1 1)) (* (- (* (exp x) (exp x)) (* 1 (exp x))) (- (* (exp x) (exp x)) (* 1 (exp x))))))
264.0ms
(log (+ (pow (* 1 1) 3) (pow (- (* (exp x) (exp x)) (* 1 (exp x))) 3)))
137.0ms
(log (+ (pow (pow (exp x) 3) 3) (pow 1 3)))

prune921.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0b

localize10.0ms

Local error

Found 4 expressions with local error:

1.4b
(log (sqrt (+ 1 (exp x))))
1.4b
(log (sqrt (+ 1 (exp x))))
0.0b
(+ 1 (exp x))
0.0b
(+ 1 (exp x))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

1.0ms
(log (sqrt (+ 1 (exp x))))
1.0ms
(log (sqrt (+ 1 (exp x))))
1.0ms
(+ 1 (exp x))

series217.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

103.0ms
(log (sqrt (+ 1 (exp x))))
94.0ms
(log (sqrt (+ 1 (exp x))))
10.0ms
(+ 1 (exp x))
10.0ms
(+ 1 (exp x))

simplify643.0ms

Counts
30 → 68
Calls

30 calls. Slowest were:

260.0ms
(- (+ (* 1/4 (/ (pow x 2) (pow (sqrt 2) 2))) (+ (log (sqrt 2)) (* 1/2 (/ x (pow (sqrt 2) 2))))) (* 1/4 (/ (pow x 2) (pow (sqrt 2) 4))))
190.0ms
(- (+ (* 1/4 (/ (pow x 2) (pow (sqrt 2) 2))) (+ (log (sqrt 2)) (* 1/2 (/ x (pow (sqrt 2) 2))))) (* 1/4 (/ (pow x 2) (pow (sqrt 2) 4))))
27.0ms
(+ x (+ (* 1/2 (pow x 2)) 2))

prune735.0ms

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0b

localize32.0ms

Local error

Found 4 expressions with local error:

9.0b
(log (+ x (+ (* 1/2 (pow x 2)) 2)))
0.0b
(- (log (+ x (+ (* 1/2 (pow x 2)) 2))) (* x y))
0.0b
(+ x (+ (* 1/2 (pow x 2)) 2))
0.0b
(* 1/2 (pow x 2))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
4 → 54
Calls

4 calls. Slowest were:

9.0ms
(- (log (+ x (+ (* 1/2 (pow x 2)) 2))) (* x y))
3.0ms
(log (+ x (+ (* 1/2 (pow x 2)) 2)))
2.0ms
(+ x (+ (* 1/2 (pow x 2)) 2))

series121.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

71.0ms
(- (log (+ x (+ (* 1/2 (pow x 2)) 2))) (* x y))
25.0ms
(log (+ x (+ (* 1/2 (pow x 2)) 2)))
14.0ms
(+ x (+ (* 1/2 (pow x 2)) 2))
11.0ms
(* 1/2 (pow x 2))

simplify1.9s

Counts
27 → 66
Calls

27 calls. Slowest were:

264.0ms
(- (+ (log 1/2) (* 2 (/ 1 x))) (+ (* 2 (log (/ 1 x))) (* x y)))
264.0ms
(- (+ (log 1/2) (+ (* 2 (/ 1 (pow x 2))) (* 2 (/ 1 x)))) (* 2 (log (/ 1 x))))
248.0ms
(- (+ (log 1/2) (+ (* 2 (/ 1 (pow x 2))) (* 2 (/ 1 x)))) (* 2 (log (/ -1 x))))

prune695.0ms

Pruning

4 alts after pruning (1 fresh and 3 done)

Merged error: 0b

regimes82.0ms

Accuracy

0% (0.3b remaining)

Error of 0.5b against oracle of 0.2b and baseline of 0.5b

bsearch4.0ms

end0.0ms

sample4.4s

Algorithm
intervals