Average Error: 29.3 → 0.0
Time: 8.4s
Precision: 64
Internal Precision: 128
\[\log \left(N + 1\right) - \log N\]
\[\begin{array}{l} \mathbf{if}\;N \le 12668.320172312919:\\ \;\;\;\;-\log \left(\frac{N}{1 + N}\right)\\ \mathbf{else}:\\ \;\;\;\;-\left(\frac{\frac{1}{2}}{N \cdot N} + \left(\frac{\frac{\frac{-1}{3}}{N}}{N \cdot N} - \frac{1}{N}\right)\right)\\ \end{array}\]

Error

Bits error versus N

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if N < 12668.320172312919

    1. Initial program 0.1

      \[\log \left(N + 1\right) - \log N\]
    2. Using strategy rm
    3. Applied diff-log0.1

      \[\leadsto \color{blue}{\log \left(\frac{N + 1}{N}\right)}\]
    4. Using strategy rm
    5. Applied clear-num0.1

      \[\leadsto \log \color{blue}{\left(\frac{1}{\frac{N}{N + 1}}\right)}\]
    6. Using strategy rm
    7. Applied add-exp-log0.1

      \[\leadsto \log \left(\frac{1}{\color{blue}{e^{\log \left(\frac{N}{N + 1}\right)}}}\right)\]
    8. Applied rec-exp0.1

      \[\leadsto \log \color{blue}{\left(e^{-\log \left(\frac{N}{N + 1}\right)}\right)}\]
    9. Applied rem-log-exp0.1

      \[\leadsto \color{blue}{-\log \left(\frac{N}{N + 1}\right)}\]

    if 12668.320172312919 < N

    1. Initial program 59.5

      \[\log \left(N + 1\right) - \log N\]
    2. Using strategy rm
    3. Applied diff-log59.3

      \[\leadsto \color{blue}{\log \left(\frac{N + 1}{N}\right)}\]
    4. Using strategy rm
    5. Applied clear-num59.3

      \[\leadsto \log \color{blue}{\left(\frac{1}{\frac{N}{N + 1}}\right)}\]
    6. Using strategy rm
    7. Applied add-exp-log59.3

      \[\leadsto \log \left(\frac{1}{\color{blue}{e^{\log \left(\frac{N}{N + 1}\right)}}}\right)\]
    8. Applied rec-exp59.3

      \[\leadsto \log \color{blue}{\left(e^{-\log \left(\frac{N}{N + 1}\right)}\right)}\]
    9. Applied rem-log-exp59.3

      \[\leadsto \color{blue}{-\log \left(\frac{N}{N + 1}\right)}\]
    10. Taylor expanded around -inf 0.0

      \[\leadsto -\color{blue}{\left(\frac{1}{2} \cdot \frac{1}{{N}^{2}} - \left(\frac{1}{3} \cdot \frac{1}{{N}^{3}} + \frac{1}{N}\right)\right)}\]
    11. Simplified0.0

      \[\leadsto -\color{blue}{\left(\left(\frac{\frac{\frac{-1}{3}}{N}}{N \cdot N} - \frac{1}{N}\right) + \frac{\frac{1}{2}}{N \cdot N}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;N \le 12668.320172312919:\\ \;\;\;\;-\log \left(\frac{N}{1 + N}\right)\\ \mathbf{else}:\\ \;\;\;\;-\left(\frac{\frac{1}{2}}{N \cdot N} + \left(\frac{\frac{\frac{-1}{3}}{N}}{N \cdot N} - \frac{1}{N}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019008 
(FPCore (N)
  :name "2log (problem 3.3.6)"
  (- (log (+ N 1)) (log N)))

Details

Time bar (total: 8.0s)Debug log

sample76.0ms

Algorithm
intervals

simplify4.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

4.0ms
(- (log (+ N 1)) (log N))

prune5.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 27.4b

localize19.0ms

Local error

Found 2 expressions with local error:

3.0b
(log (+ N 1))
2.1b
(- (log (+ N 1)) (log N))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
2 → 34
Calls

2 calls. Slowest were:

9.0ms
(- (log (+ N 1)) (log N))
2.0ms
(log (+ N 1))

series130.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

83.0ms
(- (log (+ N 1)) (log N))
46.0ms
(log (+ N 1))

simplify918.0ms

Counts
22 → 40
Calls

22 calls. Slowest were:

268.0ms
(- (+ (/ 1 N) (log -1)) (+ (* 1/2 (/ 1 (pow N 2))) (log (/ -1 N))))
122.0ms
(- (/ 1 N) (+ (* 1/2 (/ 1 (pow N 2))) (log (/ 1 N))))
118.0ms
(- (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)) (* 1/2 (/ 1 (pow N 2))))

prune406.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize14.0ms

Local error

Found 2 expressions with local error:

2.0b
(log (/ (+ N 1) N))
0.0b
(/ (+ N 1) N)

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
2 → 29
Calls

2 calls. Slowest were:

5.0ms
(/ (+ N 1) N)
2.0ms
(log (/ (+ N 1) N))

series81.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

59.0ms
(log (/ (+ N 1) N))
23.0ms
(/ (+ N 1) N)

simplify326.0ms

Counts
16 → 35
Calls

16 calls. Slowest were:

130.0ms
(- (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)) (* 1/2 (/ 1 (pow N 2))))
107.0ms
(- (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)) (* 1/2 (/ 1 (pow N 2))))
52.0ms
(- N (+ (log N) (* 1/2 (pow N 2))))

prune305.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize8.0ms

Local error

Found 3 expressions with local error:

2.0b
(log (/ 1 (/ N (+ N 1))))
0.0b
(/ 1 (/ N (+ N 1)))
0.0b
(/ N (+ N 1))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
3 → 54
Calls

3 calls. Slowest were:

1.0ms
(log (/ 1 (/ N (+ N 1))))
1.0ms
(/ 1 (/ N (+ N 1)))
0.0ms
(/ N (+ N 1))

series78.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

35.0ms
(log (/ 1 (/ N (+ N 1))))
29.0ms
(/ 1 (/ N (+ N 1)))
14.0ms
(/ N (+ N 1))

simplify571.0ms

Counts
32 → 63
Calls

32 calls. Slowest were:

131.0ms
(- (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)) (* 1/2 (/ 1 (pow N 2))))
83.0ms
(- (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)) (* 1/2 (/ 1 (pow N 2))))
63.0ms
(- (+ N (pow N 3)) (pow N 2))

prune539.0ms

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0.0b

localize11.0ms

Local error

Found 2 expressions with local error:

2.0b
(log (/ N (+ N 1)))
0.0b
(/ N (+ N 1))

rewrite3.0ms

Algorithm
rewrite-expression-head
Counts
2 → 31
Calls

2 calls. Slowest were:

2.0ms
(log (/ N (+ N 1)))
1.0ms
(/ N (+ N 1))

series80.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

63.0ms
(log (/ N (+ N 1)))
17.0ms
(/ N (+ N 1))

simplify483.0ms

Counts
19 → 37
Calls

19 calls. Slowest were:

156.0ms
(- (* 1/2 (/ 1 (pow N 2))) (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)))
105.0ms
(- (* 1/2 (/ 1 (pow N 2))) (+ (* 1/3 (/ 1 (pow N 3))) (/ 1 N)))
42.0ms
(- (+ N (pow N 3)) (pow N 2))

prune289.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

regimes119.0ms

Accuracy

100% (0.0b remaining)

Error of 0.0b against oracle of 0.0b and baseline of 29.2b

bsearch70.0ms

end0.0ms

sample3.4s

Algorithm
intervals