Average Error: 42.8 → 31.5
Time: 49.0s
Precision: 64
Internal Precision: 128
\[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
\[\begin{array}{l} \mathbf{if}\;n \le -8.343525586116674 \cdot 10^{+102}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \mathbf{elif}\;n \le -6.719525389220468 \cdot 10^{+95}:\\ \;\;\;\;100 \cdot \left(\frac{n}{i} \cdot \left({\left(\frac{i}{n}\right)}^{n} + -1\right)\right)\\ \mathbf{elif}\;n \le -2.8509751175228048 \cdot 10^{+79}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \mathbf{elif}\;n \le -4.888757877360074 \cdot 10^{-197}:\\ \;\;\;\;100 \cdot \frac{\frac{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} - 1}{{\left(\frac{i}{n} + 1\right)}^{n} + 1}}{\frac{i}{n}}\\ \mathbf{elif}\;n \le 1.0117590341155643 \cdot 10^{-139}:\\ \;\;\;\;100 \cdot \left(\left({\left(e^{n}\right)}^{\left(\log \left(\frac{-1}{n}\right) - \log \left(\frac{-1}{i}\right)\right)} + -1\right) \cdot \frac{n}{i}\right)\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \end{array}\]

Error

Bits error versus i

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original42.8
Target41.9
Herbie31.5
\[100 \cdot \frac{e^{n \cdot \begin{array}{l} \mathbf{if}\;1 + \frac{i}{n} = 1:\\ \;\;\;\;\frac{i}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{i}{n} \cdot \log \left(1 + \frac{i}{n}\right)}{\left(\frac{i}{n} + 1\right) - 1}\\ \end{array}} - 1}{\frac{i}{n}}\]

Derivation

  1. Split input into 4 regimes
  2. if n < -8.343525586116674e+102 or -6.719525389220468e+95 < n < -2.8509751175228048e+79 or 1.0117590341155643e-139 < n

    1. Initial program 55.0

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Taylor expanded around 0 38.9

      \[\leadsto 100 \cdot \frac{\color{blue}{i + \left(\frac{1}{2} \cdot {i}^{2} + \frac{1}{6} \cdot {i}^{3}\right)}}{\frac{i}{n}}\]
    3. Simplified38.8

      \[\leadsto 100 \cdot \frac{\color{blue}{i + \left(i \cdot i\right) \cdot \left(\frac{1}{6} \cdot i + \frac{1}{2}\right)}}{\frac{i}{n}}\]

    if -8.343525586116674e+102 < n < -6.719525389220468e+95

    1. Initial program 47.4

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied flip--47.4

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} \cdot {\left(1 + \frac{i}{n}\right)}^{n} - 1 \cdot 1}{{\left(1 + \frac{i}{n}\right)}^{n} + 1}}}{\frac{i}{n}}\]
    4. Taylor expanded around inf 63.5

      \[\leadsto 100 \cdot \color{blue}{\frac{n \cdot \left({\left(e^{\left(\log \left(\frac{1}{n}\right) - \log \left(\frac{1}{i}\right)\right) \cdot n}\right)}^{2} - 1\right)}{\left(e^{\left(\log \left(\frac{1}{n}\right) - \log \left(\frac{1}{i}\right)\right) \cdot n} + 1\right) \cdot i}}\]
    5. Simplified47.3

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{n}{\frac{i}{1}} \cdot \left({\left(\frac{i}{n}\right)}^{n} + -1\right)\right)}\]

    if -2.8509751175228048e+79 < n < -4.888757877360074e-197

    1. Initial program 25.2

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied flip--25.2

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} \cdot {\left(1 + \frac{i}{n}\right)}^{n} - 1 \cdot 1}{{\left(1 + \frac{i}{n}\right)}^{n} + 1}}}{\frac{i}{n}}\]

    if -4.888757877360074e-197 < n < 1.0117590341155643e-139

    1. Initial program 28.8

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied flip--28.8

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} \cdot {\left(1 + \frac{i}{n}\right)}^{n} - 1 \cdot 1}{{\left(1 + \frac{i}{n}\right)}^{n} + 1}}}{\frac{i}{n}}\]
    4. Taylor expanded around -inf 43.1

      \[\leadsto 100 \cdot \color{blue}{\frac{n \cdot \left({\left(e^{n \cdot \left(\log \left(\frac{-1}{n}\right) - \log \left(\frac{-1}{i}\right)\right)}\right)}^{2} - 1\right)}{i \cdot \left(e^{n \cdot \left(\log \left(\frac{-1}{n}\right) - \log \left(\frac{-1}{i}\right)\right)} + 1\right)}}\]
    5. Simplified17.2

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{n}{\frac{i}{1}} \cdot \left({\left(e^{n}\right)}^{\left(\log \left(\frac{-1}{n}\right) - \log \left(\frac{-1}{i}\right)\right)} + -1\right)\right)}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification31.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le -8.343525586116674 \cdot 10^{+102}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \mathbf{elif}\;n \le -6.719525389220468 \cdot 10^{+95}:\\ \;\;\;\;100 \cdot \left(\frac{n}{i} \cdot \left({\left(\frac{i}{n}\right)}^{n} + -1\right)\right)\\ \mathbf{elif}\;n \le -2.8509751175228048 \cdot 10^{+79}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \mathbf{elif}\;n \le -4.888757877360074 \cdot 10^{-197}:\\ \;\;\;\;100 \cdot \frac{\frac{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} - 1}{{\left(\frac{i}{n} + 1\right)}^{n} + 1}}{\frac{i}{n}}\\ \mathbf{elif}\;n \le 1.0117590341155643 \cdot 10^{-139}:\\ \;\;\;\;100 \cdot \left(\left({\left(e^{n}\right)}^{\left(\log \left(\frac{-1}{n}\right) - \log \left(\frac{-1}{i}\right)\right)} + -1\right) \cdot \frac{n}{i}\right)\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \frac{\left(\frac{1}{6} \cdot i + \frac{1}{2}\right) \cdot \left(i \cdot i\right) + i}{\frac{i}{n}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019002 
(FPCore (i n)
  :name "Compound Interest"

  :herbie-target
  (* 100 (/ (- (exp (* n (if (== (+ 1 (/ i n)) 1) (/ i n) (/ (* (/ i n) (log (+ 1 (/ i n)))) (- (+ (/ i n) 1) 1))))) 1) (/ i n)))

  (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))))

Details

Time bar (total: 48.2s)Debug log

sample402.0ms

Algorithm
intervals

simplify239.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

239.0ms
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)))

prune10.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 40.8b

localize42.0ms

Local error

Found 4 expressions with local error:

12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
6.5b
(pow (+ 1 (/ i n)) n)
2.3b
(- (pow (+ 1 (/ i n)) n) 1)
0.1b
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)))

rewrite46.0ms

Algorithm
rewrite-expression-head
Counts
4 → 105
Calls

4 calls. Slowest were:

27.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
9.0ms
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)))
8.0ms
(- (pow (+ 1 (/ i n)) n) 1)

series733.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

245.0ms
(* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n)))
206.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
155.0ms
(pow (+ 1 (/ i n)) n)
127.0ms
(- (pow (+ 1 (/ i n)) n) 1)

simplify3.4s

Counts
97 → 117
Calls

97 calls. Slowest were:

403.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)
296.0ms
(* 100 (/ (* n (- (exp (* n (- (log (/ -1 n)) (log (/ -1 i))))) 1)) i))
288.0ms
(/ (* (* (- (pow (+ 1 (/ i n)) n) 1) (- (pow (+ 1 (/ i n)) n) 1)) (- (pow (+ 1 (/ i n)) n) 1)) (* (* (/ i n) (/ i n)) (/ i n)))

prune1.1s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 18.3b

localize20.0ms

Local error

Found 4 expressions with local error:

12.1b
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (+ (pow (+ 1 (/ i n)) n) 1)) (/ i n))
6.5b
(pow (+ 1 (/ i n)) n)
6.5b
(pow (+ 1 (/ i n)) n)
6.5b
(pow (+ 1 (/ i n)) n)

rewrite40.0ms

Algorithm
rewrite-expression-head
Counts
4 → 150
Calls

4 calls. Slowest were:

30.0ms
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (+ (pow (+ 1 (/ i n)) n) 1)) (/ i n))
2.0ms
(pow (+ 1 (/ i n)) n)
2.0ms
(pow (+ 1 (/ i n)) n)

series1.7s

Counts
4 → 12
Calls

4 calls. Slowest were:

1.3s
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (+ (pow (+ 1 (/ i n)) n) 1)) (/ i n))
153.0ms
(pow (+ 1 (/ i n)) n)
132.0ms
(pow (+ 1 (/ i n)) n)
114.0ms
(pow (+ 1 (/ i n)) n)

simplify17.6s

Counts
198 → 162
Calls

198 calls. Slowest were:

1.1s
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (+ (pow (+ 1 (/ i n)) n) 1)) (/ 1 n))
1.0s
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (+ (pow (+ 1 (/ i n)) n) 1)) (/ 1 n))
398.0ms
(/ (/ (- (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (* 1 1)) (cbrt (+ (pow (+ 1 (/ i n)) n) 1))) (/ 1 n))

prune1.5s

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 18.3b

localize12.0ms

Local error

Found 4 expressions with local error:

12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
6.5b
(pow (+ 1 (/ i n)) n)

rewrite54.0ms

Algorithm
rewrite-expression-head
Counts
4 → 148
Calls

4 calls. Slowest were:

18.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
17.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
16.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))

series561.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

167.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
151.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
150.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
92.0ms
(pow (+ 1 (/ i n)) n)

simplify4.1s

Counts
176 → 160
Calls

176 calls. Slowest were:

357.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)
304.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)
281.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)

prune1.5s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 18.2b

localize17.0ms

Local error

Found 4 expressions with local error:

12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
12.1b
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
12.1b
(/ (- (cbrt (* (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (pow (+ 1 (/ i n)) n))) 1) (/ i n))
6.5b
(pow (+ 1 (/ i n)) n)

rewrite54.0ms

Algorithm
rewrite-expression-head
Counts
4 → 143
Calls

4 calls. Slowest were:

20.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
16.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
14.0ms
(/ (- (cbrt (* (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (pow (+ 1 (/ i n)) n))) 1) (/ i n))

series536.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

149.0ms
(/ (- (cbrt (* (* (pow (+ 1 (/ i n)) n) (pow (+ 1 (/ i n)) n)) (pow (+ 1 (/ i n)) n))) 1) (/ i n))
149.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
148.0ms
(/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))
90.0ms
(pow (+ 1 (/ i n)) n)

simplify4.0s

Counts
167 → 155
Calls

167 calls. Slowest were:

257.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)
250.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)
248.0ms
(/ (* (- (exp (* (- (log (/ 1 n)) (log (/ 1 i))) n)) 1) n) i)

prune1.8s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 18.2b

regimes152.0ms

Accuracy

47.7% (12.3b remaining)

Error of 31.5b against oracle of 19.2b and baseline of 42.8b

bsearch867.0ms

end0.0ms

sample7.9s

Algorithm
intervals