Average Error: 29.3 → 18.6
Time: 33.5s
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}\;n \le -12051595.838427737:\\ \;\;\;\;\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{elif}\;n \le -5.340310786032632 \cdot 10^{-303}:\\ \;\;\;\;\left(\sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*} \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\right) \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\\ \mathbf{elif}\;n \le 1930345654834.6394:\\ \;\;\;\;e^{\log \left(e^{\frac{\log_* (1 + x)}{n}} - {x}^{\left(\frac{1}{n}\right)}\right)}\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]

Error

Bits error versus x

Bits error versus n

Derivation

  1. Split input into 3 regimes
  2. if n < -12051595.838427737 or 1930345654834.6394 < n

    1. Initial program 45.3

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

      \[\leadsto \color{blue}{\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}} - {x}^{\left(\frac{1}{n}\right)}\]
    4. Applied fma-neg45.3

      \[\leadsto \color{blue}{(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\]
    5. 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)}\]
    6. Simplified31.7

      \[\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 -12051595.838427737 < n < -5.340310786032632e-303

    1. Initial program 0.5

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

      \[\leadsto \color{blue}{\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}} - {x}^{\left(\frac{1}{n}\right)}\]
    4. Applied fma-neg0.6

      \[\leadsto \color{blue}{(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt0.6

      \[\leadsto \color{blue}{\left(\sqrt[3]{(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*} \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\right) \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}}\]

    if -5.340310786032632e-303 < n < 1930345654834.6394

    1. Initial program 24.5

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le -12051595.838427737:\\ \;\;\;\;\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{elif}\;n \le -5.340310786032632 \cdot 10^{-303}:\\ \;\;\;\;\left(\sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*} \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\right) \cdot \sqrt[3]{(\left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}} \cdot \sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) \cdot \left(\sqrt[3]{{\left(1 + x\right)}^{\left(\frac{1}{n}\right)}}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\\ \mathbf{elif}\;n \le 1930345654834.6394:\\ \;\;\;\;e^{\log \left(e^{\frac{\log_* (1 + x)}{n}} - {x}^{\left(\frac{1}{n}\right)}\right)}\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]

Reproduce

herbie shell --seed 2019010 +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: 32.4s)Debug log

sample403.0ms

Algorithm
intervals

simplify7.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
7.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))

prune5.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 29.8b

localize15.0ms

Local error

Found 3 expressions with local error:

2.4b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.7b
(pow (+ x 1) (/ 1 n))
1.0b
(pow x (/ 1 n))

rewrite17.0ms

Algorithm
rewrite-expression-head
Rules
24×add-sqr-sqrt
22×*-un-lft-identity
20×add-cube-cbrt
18×prod-diff
16×unpow-prod-down
pow-unpow
fma-neg
add-log-exp
add-exp-log
pow1
log1p-expm1-u
add-cbrt-cube
expm1-log1p-u
difference-of-squares
div-inv
pow-to-exp
distribute-lft-out--
flip--
pow-exp
diff-log
flip3--
pow-pow
sub-neg
Counts
3 → 74
Calls
3 calls:
Slowest
14.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.0ms
(pow (+ x 1) (/ 1 n))
1.0ms
(pow x (/ 1 n))

series359.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
189.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
88.0ms
(pow (+ x 1) (/ 1 n))
81.0ms
(pow x (/ 1 n))

simplify2.7s

Counts
69 → 83
Calls
69 calls:
Slowest
604.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
394.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
361.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))
179.0ms
(- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n))
81.0ms
(- (+ (/ (log -1) n) (+ (* 1/2 (/ (pow (log -1) 2) (pow n 2))) (+ (* 1/2 (/ (pow (log (/ -1 x)) 2) (pow n 2))) 1))) (+ (/ (log (/ -1 x)) n) (/ (* (log (/ -1 x)) (log -1)) (pow n 2))))

prune978.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 18.4b

localize5.0ms

Local error

Found 4 expressions with local error:

2.4b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.7b
(pow (+ x 1) (/ 1 n))
1.0b
(pow x (/ 1 n))
0.1b
(exp (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))

rewrite38.0ms

Algorithm
rewrite-expression-head
Rules
31×add-sqr-sqrt
27×*-un-lft-identity
23×add-cube-cbrt
18×prod-diff
17×unpow-prod-down
pow-unpow
add-log-exp
exp-sum
fma-neg
log-prod
pow1
add-exp-log
difference-of-squares
log1p-expm1-u
add-cbrt-cube
exp-prod
expm1-log1p-u
distribute-lft-out--
flip--
div-inv
exp-diff
flip3--
log-div
pow-to-exp
rem-exp-log
log-pow
pow-exp
diff-log
pow-pow
sub-neg
Counts
4 → 96
Calls
4 calls:
Slowest
19.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
13.0ms
(exp (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
3.0ms
(pow (+ x 1) (/ 1 n))
1.0ms
(pow x (/ 1 n))

series552.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
232.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
191.0ms
(exp (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
65.0ms
(pow (+ x 1) (/ 1 n))
63.0ms
(pow x (/ 1 n))

simplify3.6s

Counts
85 → 108
Calls
85 calls:
Slowest
576.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
448.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))
412.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))
363.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
317.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))

prune1.2s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 18.4b

localize10.0ms

Local error

Found 4 expressions with local error:

2.4b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.7b
(pow (+ x 1) (/ 1 n))
1.0b
(pow x (/ 1 n))
0.1b
(pow E (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))

rewrite39.0ms

Algorithm
rewrite-expression-head
Rules
31×add-sqr-sqrt
27×*-un-lft-identity
23×add-cube-cbrt
18×prod-diff
17×unpow-prod-down
12×pow-unpow
add-log-exp
fma-neg
log-prod
unpow-prod-up
pow1
add-exp-log
difference-of-squares
log1p-expm1-u
add-cbrt-cube
expm1-log1p-u
pow-to-exp
pow-sub
distribute-lft-out--
flip--
div-inv
flip3--
log-div
log-pow
pow-exp
diff-log
pow-pow
sub-neg
Counts
4 → 96
Calls
4 calls:
Slowest
19.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
13.0ms
(pow E (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
3.0ms
(pow (+ x 1) (/ 1 n))
1.0ms
(pow x (/ 1 n))

series575.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
224.0ms
(pow E (log (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))))
205.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
87.0ms
(pow (+ x 1) (/ 1 n))
59.0ms
(pow x (/ 1 n))

simplify3.3s

Counts
84 → 108
Calls
84 calls:
Slowest
542.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
439.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))
438.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
280.0ms
(- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n))
204.0ms
(- (+ (/ (* (exp (+ (log (/ -1 x)) (log (/ -1 n)))) (log -1)) n) (exp (+ (log (/ -1 x)) (log (/ -1 n))))) (+ (/ (* (log (/ -1 x)) (exp (+ (log (/ -1 x)) (log (/ -1 n))))) n) (* 1/2 (/ (exp (+ (log (/ -1 x)) (log (/ -1 n)))) x))))

prune1.3s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 18.4b

localize20.0ms

Local error

Found 4 expressions with local error:

4.6b
(fma (* (cbrt (pow (+ x 1) (/ 1 n))) (cbrt (pow (+ x 1) (/ 1 n)))) (cbrt (pow (+ x 1) (/ 1 n))) (- (pow x (/ 1 n))))
1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))
1.7b
(pow (+ x 1) (/ 1 n))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
12×pow-unpow
10×add-cube-cbrt
10×*-un-lft-identity
10×add-sqr-sqrt
unpow-prod-down
add-exp-log
pow1
add-log-exp
log1p-expm1-u
add-cbrt-cube
expm1-log1p-u
div-inv
pow-exp
pow-pow
pow-to-exp
fma-udef
Counts
4 → 67
Calls
4 calls:
Slowest
3.0ms
(pow (+ x 1) (/ 1 n))
3.0ms
(pow (+ x 1) (/ 1 n))
3.0ms
(pow (+ x 1) (/ 1 n))
0.0ms
(fma (* (cbrt (pow (+ x 1) (/ 1 n))) (cbrt (pow (+ x 1) (/ 1 n)))) (cbrt (pow (+ x 1) (/ 1 n))) (- (pow x (/ 1 n))))

series803.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
552.0ms
(fma (* (cbrt (pow (+ x 1) (/ 1 n))) (cbrt (pow (+ x 1) (/ 1 n)))) (cbrt (pow (+ x 1) (/ 1 n))) (- (pow x (/ 1 n))))
98.0ms
(pow (+ x 1) (/ 1 n))
78.0ms
(pow (+ x 1) (/ 1 n))
76.0ms
(pow (+ x 1) (/ 1 n))

simplify2.7s

Counts
39 → 79
Calls
39 calls:
Slowest
595.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
578.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
574.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
367.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))
360.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))

prune1.1s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 18.4b

regimes276.0ms

Accuracy

89.2% (1.3b remaining)

Error of 18.6b against oracle of 17.3b and baseline of 29.4b

bsearch724.0ms

end0.0ms

sample11.6s

Algorithm
intervals