Average Error: 29.0 → 18.4
Time: 33.4s
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 -1.1924281163064566 \cdot 10^{-07}:\\ \;\;\;\;(\left({\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}^{\left(\frac{1}{n}\right)}\right) \cdot \left({\left((\left(\frac{1}{3} - \frac{\frac{1}{9}}{x}\right) \cdot \left(\frac{\sqrt[3]{x}}{x}\right) + \left(\sqrt[3]{x}\right))_*\right)}^{\left(\frac{1}{n}\right)}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*\\ \mathbf{elif}\;\frac{1}{n} \le 9.66942257384201 \cdot 10^{-07}:\\ \;\;\;\;\left(\frac{\frac{1}{x}}{n} + \frac{\log x}{n \cdot \left(x \cdot n\right)}\right) + \frac{\frac{\frac{-1}{2}}{x}}{x \cdot n}\\ \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

Derivation

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

    1. Initial program 0.9

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

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

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

      \[\leadsto \color{blue}{(\left({\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}^{\left(\frac{1}{n}\right)}\right) \cdot \left({\left(\sqrt[3]{x + 1}\right)}^{\left(\frac{1}{n}\right)}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*}\]
    6. Taylor expanded around -inf 63.0

      \[\leadsto (\left({\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right)}^{\left(\frac{1}{n}\right)}\right) \cdot \left({\color{blue}{\left(\left(e^{\frac{1}{3} \cdot \left(\log -1 - \log \left(\frac{-1}{x}\right)\right)} + \frac{1}{3} \cdot \frac{e^{\frac{1}{3} \cdot \left(\log -1 - \log \left(\frac{-1}{x}\right)\right)}}{x}\right) - \frac{1}{9} \cdot \frac{e^{\frac{1}{3} \cdot \left(\log -1 - \log \left(\frac{-1}{x}\right)\right)}}{{x}^{2}}\right)}}^{\left(\frac{1}{n}\right)}\right) + \left(-{x}^{\left(\frac{1}{n}\right)}\right))_*\]
    7. Simplified1.6

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

    if -1.1924281163064566e-07 < (/ 1 n) < 9.66942257384201e-07

    1. Initial program 44.7

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\]
    2. 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)}\]
    3. Simplified31.4

      \[\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 9.66942257384201e-07 < (/ 1 n)

    1. Initial program 25.6

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

      \[\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.6

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

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

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

Reproduce

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

sample331.0ms

Algorithm
intervals

simplify10.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

10.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))

prune11.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 28.3b

localize27.0ms

Local error

Found 3 expressions with local error:

1.9b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.0b
(pow (+ x 1) (/ 1 n))
0.3b
(pow x (/ 1 n))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
3 → 74
Calls

3 calls. Slowest were:

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

series716.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

587.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
69.0ms
(pow (+ x 1) (/ 1 n))
60.0ms
(pow x (/ 1 n))

simplify2.6s

Counts
69 → 83
Calls

69 calls. Slowest were:

505.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
425.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))
362.0ms
(- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2)))))

prune816.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 14.4b

localize9.0ms

Local error

Found 4 expressions with local error:

1.9b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.9b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.9b
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
1.0b
(pow (+ x 1) (/ 1 n))

rewrite55.0ms

Algorithm
rewrite-expression-head
Counts
4 → 142
Calls

4 calls. Slowest were:

20.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
14.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
11.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))

series754.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

253.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
210.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
206.0ms
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))
85.0ms
(pow (+ x 1) (/ 1 n))

simplify5.5s

Counts
162 → 154
Calls

162 calls. Slowest were:

529.0ms
(- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n))
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)))))
387.0ms
(- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n)))))

prune2.2s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 14.4b

localize37.0ms

Local error

Found 4 expressions with local error:

3.1b
(fma (pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n)) (pow (cbrt (+ x 1)) (/ 1 n)) (- (pow x (/ 1 n))))
1.0b
(pow (cbrt (+ x 1)) (/ 1 n))
0.7b
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
0.3b
(cbrt (+ x 1))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
4 → 72
Calls

4 calls. Slowest were:

9.0ms
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
4.0ms
(pow (cbrt (+ x 1)) (/ 1 n))
1.0ms
(cbrt (+ x 1))

series677.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

407.0ms
(fma (pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n)) (pow (cbrt (+ x 1)) (/ 1 n)) (- (pow x (/ 1 n))))
131.0ms
(pow (cbrt (+ x 1)) (/ 1 n))
94.0ms
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
44.0ms
(cbrt (+ x 1))

simplify1.8s

Counts
44 → 84
Calls

44 calls. Slowest were:

384.0ms
(- (+ (* 1/3 (/ (log -1) n)) (+ 1 (* 1/3 (/ 1 (* x n))))) (* 1/3 (/ (log (/ -1 x)) n)))
330.0ms
(- (+ (/ 1 (* x n)) (+ (* 8/9 (/ (* (log (/ -1 x)) (log -1)) (pow n 2))) (+ (* 1/2 (/ (pow (log (pow (/ -1 x) -2/3)) 2) (pow n 2))) (+ (* 1/3 (/ (* (log -1) (log (pow (/ -1 x) -2/3))) (pow n 2))) (+ (* 2/3 (/ (log (/ -1 x)) n)) (/ (log (pow (/ -1 x) -2/3)) n)))))) (+ (* 4/9 (/ (pow (log (/ -1 x)) 2) (pow n 2))) (+ (* 2/3 (/ (log -1) n)) (+ (* 4/9 (/ (pow (log -1) 2) (pow n 2))) (* 1/3 (/ (* (log (/ -1 x)) (log (pow (/ -1 x) -2/3))) (pow n 2)))))))
231.0ms
(- (+ (/ (log (pow (/ 1 x) -1/3)) n) (+ (/ (log (pow (/ 1 x) -2/3)) n) (+ (* 1/2 (/ (pow (log (pow (/ 1 x) -1/3)) 2) (pow n 2))) (+ (/ (log (/ 1 x)) n) (+ (/ (* (log (pow (/ 1 x) -1/3)) (log (pow (/ 1 x) -2/3))) (pow n 2)) (+ (/ 1 (* x n)) (* 1/2 (/ (pow (log (pow (/ 1 x) -2/3)) 2) (pow n 2))))))))) (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))))

prune1.1s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 14.3b

localize6.0ms

Local error

Found 4 expressions with local error:

3.1b
(fma (pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n)) (pow (cbrt (+ x 1)) (/ 1 n)) (- (pow x (/ 1 n))))
1.0b
(pow (cbrt (+ x 1)) (/ 1 n))
0.7b
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
0.3b
(cbrt (+ x 1))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
4 → 72
Calls

4 calls. Slowest were:

5.0ms
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
2.0ms
(pow (cbrt (+ x 1)) (/ 1 n))
1.0ms
(cbrt (+ x 1))

series660.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

383.0ms
(fma (pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n)) (pow (cbrt (+ x 1)) (/ 1 n)) (- (pow x (/ 1 n))))
121.0ms
(pow (* (cbrt (+ x 1)) (cbrt (+ x 1))) (/ 1 n))
100.0ms
(pow (cbrt (+ x 1)) (/ 1 n))
56.0ms
(cbrt (+ x 1))

simplify2.0s

Counts
44 → 84
Calls

44 calls. Slowest were:

477.0ms
(- (+ (* 1/3 (/ (log -1) n)) (+ 1 (* 1/3 (/ 1 (* x n))))) (* 1/3 (/ (log (/ -1 x)) n)))
362.0ms
(- (+ (/ 1 (* x n)) (+ (* 8/9 (/ (* (log (/ -1 x)) (log -1)) (pow n 2))) (+ (* 1/2 (/ (pow (log (pow (/ -1 x) -2/3)) 2) (pow n 2))) (+ (* 1/3 (/ (* (log -1) (log (pow (/ -1 x) -2/3))) (pow n 2))) (+ (* 2/3 (/ (log (/ -1 x)) n)) (/ (log (pow (/ -1 x) -2/3)) n)))))) (+ (* 4/9 (/ (pow (log (/ -1 x)) 2) (pow n 2))) (+ (* 2/3 (/ (log -1) n)) (+ (* 4/9 (/ (pow (log -1) 2) (pow n 2))) (* 1/3 (/ (* (log (/ -1 x)) (log (pow (/ -1 x) -2/3))) (pow n 2)))))))
230.0ms
(- (+ (/ (log (pow (/ 1 x) -1/3)) n) (+ (/ (log (pow (/ 1 x) -2/3)) n) (+ (* 1/2 (/ (pow (log (pow (/ 1 x) -1/3)) 2) (pow n 2))) (+ (/ (log (/ 1 x)) n) (+ (/ (* (log (pow (/ 1 x) -1/3)) (log (pow (/ 1 x) -2/3))) (pow n 2)) (+ (/ 1 (* x n)) (* 1/2 (/ (pow (log (pow (/ 1 x) -2/3)) 2) (pow n 2))))))))) (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))))

prune1.2s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 14.3b

regimes466.0ms

Accuracy

91.8% (1.5b remaining)

Error of 18.4b against oracle of 17.0b and baseline of 35.0b

bsearch5.0ms

end0.0ms

sample10.6s

Algorithm
intervals