Average Error: 29.3 → 19.0
Time: 41.9s
Precision: 64
Internal Precision: 128
\[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
\[\begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -5.441664295824458 \cdot 10^{-10}:\\ \;\;\;\;\log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right) + \log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right)\\ \mathbf{elif}\;\frac{1}{n} \le 5.795109578467022 \cdot 10^{-21}:\\ \;\;\;\;\frac{\frac{\frac{-1}{2}}{x}}{x \cdot n} + \left(\frac{\log x}{n \cdot \left(x \cdot n\right)} + \frac{\frac{1}{x}}{n}\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\log_* (1 + x)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \end{array}\]

Error

Bits error versus x

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if (/ 1 n) < -5.441664295824458e-10

    1. Initial program 0.8

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Using strategy rm
    3. Applied add-log-exp1.0

      \[\leadsto \color{blue}{\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt1.0

      \[\leadsto \log \color{blue}{\left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}} \cdot \sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right)}\]
    6. Applied log-prod1.0

      \[\leadsto \color{blue}{\log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right) + \log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right)}\]

    if -5.441664295824458e-10 < (/ 1 n) < 5.795109578467022e-21

    1. Initial program 44.8

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Using strategy rm
    3. Applied add-log-exp44.8

      \[\leadsto \color{blue}{\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)}\]
    4. Taylor expanded around -inf 63.0

      \[\leadsto \color{blue}{\left(\frac{\log -1}{x \cdot {n}^{2}} + \frac{1}{x \cdot n}\right) - \left(\frac{1}{2} \cdot \frac{1}{{x}^{2} \cdot n} + \frac{\log \left(\frac{-1}{x}\right)}{x \cdot {n}^{2}}\right)}\]
    5. Simplified31.9

      \[\leadsto \color{blue}{\frac{\frac{\frac{-1}{2}}{x}}{x \cdot n} + \left(\left(\frac{\frac{1}{x}}{n} + 0\right) + \frac{\log x}{n \cdot \left(x \cdot n\right)}\right)}\]

    if 5.795109578467022e-21 < (/ 1 n)

    1. Initial program 25.2

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. Using strategy rm
    3. Applied add-exp-log25.2

      \[\leadsto {\color{blue}{\left(e^{\log \left(x + 1\right)}\right)}}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    4. Applied pow-exp25.2

      \[\leadsto \color{blue}{e^{\log \left(x + 1\right) \cdot \frac{1}{n}}} - {x}^{\left(\frac{1}{n}\right)}\]
    5. Simplified4.8

      \[\leadsto e^{\color{blue}{\frac{\log_* (1 + x)}{n}}} - {x}^{\left(\frac{1}{n}\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification19.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \le -5.441664295824458 \cdot 10^{-10}:\\ \;\;\;\;\log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right) + \log \left(\sqrt{e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}}\right)\\ \mathbf{elif}\;\frac{1}{n} \le 5.795109578467022 \cdot 10^{-21}:\\ \;\;\;\;\frac{\frac{\frac{-1}{2}}{x}}{x \cdot n} + \left(\frac{\log x}{n \cdot \left(x \cdot n\right)} + \frac{\frac{1}{x}}{n}\right)\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\log_* (1 + x)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2018365 +o rules:numerics
(FPCore (x n)
  :name "2nthrt (problem 3.4.6)"
  (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))

Details

Time bar (total: 25.4s)Debug log

start455.0ms

Algorithm
intervals

setup51.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 27.3b

localize18.0ms

Local error

Found 3 expressions with local error:

1.7b
(pow (+ x 1) (/ 1 n))
1.3b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
0.8b
(pow x (/ 1 n))

rewrite18.0ms

Algorithm
rewrite-expression-head
Counts
3 → 74
Calls

3 calls. Slowest were:

12.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
2.0ms
(pow (+ x 1) (/ 1 n))
1.0ms
(pow x (/ 1 n))

series364.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

196.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
87.0ms
(pow (+ x 1) (/ 1 n))
80.0ms
(pow x (/ 1 n))

simplify2.9s

Counts
69 → 83
Calls

69 calls. Slowest were:

582.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
510.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
400.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))

prune1.0s

Pruning

9 alts after pruning (9 fresh and 0 done)

Merged error: 15.0b

localize21.0ms

Local error

Found 4 expressions with local error:

1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))
1.3b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))

rewrite31.0ms

Algorithm
rewrite-expression-head
Counts
4 → 98
Calls

4 calls. Slowest were:

19.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
3.0ms
(pow (+ x 1) (/ 1 n))
3.0ms
(pow (+ x 1) (/ 1 n))

series388.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

153.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
95.0ms
(pow (+ x 1) (/ 1 n))
72.0ms
(pow (+ x 1) (/ 1 n))
68.0ms
(pow (+ x 1) (/ 1 n))

simplify4.0s

Counts
86 → 110
Calls

86 calls. Slowest were:

661.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
594.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
557.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))

prune1.7s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 15.0b

localize13.0ms

Local error

Found 4 expressions with local error:

1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))
1.3b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))

rewrite28.0ms

Algorithm
rewrite-expression-head
Counts
4 → 98
Calls

4 calls. Slowest were:

16.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
5.0ms
(pow (+ x 1) (/ 1 n))
3.0ms
(pow (+ x 1) (/ 1 n))

series417.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

188.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
82.0ms
(pow (+ x 1) (/ 1 n))
82.0ms
(pow (+ x 1) (/ 1 n))
65.0ms
(pow (+ x 1) (/ 1 n))

simplify4.0s

Counts
86 → 110
Calls

86 calls. Slowest were:

696.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
618.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
559.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))

prune1.9s

Pruning

10 alts after pruning (9 fresh and 1 done)

Merged error: 15.0b

localize1.0ms

Local error

Found 4 expressions with local error:

1.7b
(pow (+ x 1) (/ 1 n))
1.3b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.3b
(log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
0.8b
(pow x (/ 1 n))

rewrite41.0ms

Algorithm
rewrite-expression-head
Counts
4 → 115
Calls

4 calls. Slowest were:

24.0ms
(log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
10.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
2.0ms
(pow (+ x 1) (/ 1 n))

series594.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

223.0ms
(log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
187.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
103.0ms
(pow (+ x 1) (/ 1 n))
82.0ms
(pow x (/ 1 n))

simplify5.2s

Counts
103 → 127
Calls

103 calls. Slowest were:

666.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
476.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
432.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))

prune1.7s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 15.0b

regimes566.0ms

Accuracy

88.7% (1.3b remaining)

Error of 19.0b against oracle of 17.6b and baseline of 29.4b

bsearch6.0ms