


Bits error versus x



Bits error versus n
Results
if (/ 1 n) < -6.469254630501028e-08Initial program 0.8
rmApplied add-sqr-sqrt0.8
if -6.469254630501028e-08 < (/ 1 n) < 3.805219872088985e-11Initial program 45.5
rmApplied add-sqr-sqrt45.5
rmApplied add-sqr-sqrt45.5
Applied difference-of-squares45.5
Taylor expanded around inf 33.2
Simplified33.1
if 3.805219872088985e-11 < (/ 1 n) Initial program 23.5
rmApplied add-sqr-sqrt23.5
rmApplied add-sqr-sqrt23.5
Applied difference-of-squares23.5
rmApplied add-cube-cbrt23.5
Final simplification22.7
herbie shell --seed 2019016
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))
Time bar (total: 26.5s)Debug log
| 601× | (pre true 80) |
| 164× | (body real 80) |
| 160× | (body nan 80) |
| 97× | (body real 1280) |
| 51× | (body real 640) |
| 33× | (body exit 10240) |
| 27× | (body nan 1280) |
| 24× | (body real 320) |
| 17× | (body nan 640) |
| 13× | (body nan 320) |
| 11× | (body real 160) |
| 4× | (body nan 160) |
| 9.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 29.9b
Found 3 expressions with local error:
| 2.2b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 0.8b | (pow x (/ 1 n)) |
| 10× | add-sqr-sqrt |
| 8× | *-un-lft-identity |
| 8× | pow-unpow |
| 6× | add-cube-cbrt |
| 5× | add-log-exp |
| 4× | add-exp-log |
| 4× | unpow-prod-down |
| 4× | pow1 |
| 3× | add-cbrt-cube |
| 2× | difference-of-squares |
| 2× | div-inv |
| 2× | pow-to-exp |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | pow-exp |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | pow-pow |
| 1× | sub-neg |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 169.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 91.0ms | (pow (+ x 1) (/ 1 n)) |
| 64.0ms | (pow x (/ 1 n)) |
| 580.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 314.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 289.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 216.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
| 112.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)))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 21.5b
Found 4 expressions with local error:
| 3.7b | (- (* (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow (+ x 1) (/ 1 n)))) (pow x (/ 1 n))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 0.8b | (pow x (/ 1 n)) |
| 12× | pow-unpow |
| 10× | add-sqr-sqrt |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 6× | add-log-exp |
| 6× | add-exp-log |
| 6× | unpow-prod-down |
| 6× | pow1 |
| 4× | add-cbrt-cube |
| 3× | div-inv |
| 3× | pow-to-exp |
| 2× | pow-exp |
| 2× | pow-pow |
| 1× | difference-of-squares |
| 1× | flip-- |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 14.0ms | (- (* (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow (+ x 1) (/ 1 n)))) (pow x (/ 1 n))) |
| 1.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 175.0ms | (- (* (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow (+ x 1) (/ 1 n)))) (pow x (/ 1 n))) |
| 94.0ms | (pow (+ x 1) (/ 1 n)) |
| 85.0ms | (pow (+ x 1) (/ 1 n)) |
| 76.0ms | (pow x (/ 1 n)) |
| 688.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 577.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 291.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 237.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
| 215.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 21.4b
Found 4 expressions with local error:
| 2.2b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0b | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 0.8b | (pow x (/ 1 n)) |
| 17× | add-sqr-sqrt |
| 13× | *-un-lft-identity |
| 9× | add-cube-cbrt |
| 8× | pow-unpow |
| 7× | log-pow |
| 6× | add-log-exp |
| 6× | exp-prod |
| 6× | pow1 |
| 5× | add-exp-log |
| 5× | unpow-prod-down |
| 5× | log-prod |
| 4× | difference-of-squares |
| 4× | add-cbrt-cube |
| 2× | distribute-lft-out-- |
| 2× | div-inv |
| 2× | exp-sum |
| 2× | sub-neg |
| 2× | pow-to-exp |
| 1× | flip-- |
| 1× | pow-exp |
| 1× | rem-log-exp |
| 1× | diff-log |
| 1× | exp-diff |
| 1× | flip3-- |
| 1× | pow-pow |
| 1× | log-div |
| 22.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 8.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 246.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 188.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 74.0ms | (pow (+ x 1) (/ 1 n)) |
| 56.0ms | (pow x (/ 1 n)) |
| 605.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 339.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 276.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 232.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 217.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 21.4b
Found 4 expressions with local error:
| 2.2b | (- (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow x (/ 1 n)))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 0.8b | (pow x (/ 1 n)) |
| 21× | add-sqr-sqrt |
| 13× | *-un-lft-identity |
| 12× | pow-unpow |
| 9× | sqrt-prod |
| 9× | add-cube-cbrt |
| 8× | unpow-prod-down |
| 6× | difference-of-squares |
| 6× | add-log-exp |
| 6× | add-exp-log |
| 6× | pow1 |
| 4× | add-cbrt-cube |
| 3× | div-inv |
| 3× | pow-to-exp |
| 2× | distribute-lft-out-- |
| 2× | pow-exp |
| 2× | pow-pow |
| 1× | flip-- |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 22.0ms | (- (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow x (/ 1 n)))) |
| 4.0ms | (pow (+ x 1) (/ 1 n)) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 705.0ms | (- (sqrt (pow (+ x 1) (/ 1 n))) (sqrt (pow x (/ 1 n)))) |
| 91.0ms | (pow (+ x 1) (/ 1 n)) |
| 89.0ms | (pow x (/ 1 n)) |
| 79.0ms | (pow (+ x 1) (/ 1 n)) |
| 597.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 591.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 361.0ms | (- (+ (* 1/4 (/ (log -1) (* x (pow n 2)))) (* 1/2 (/ 1 (* x n)))) (+ (* 1/4 (/ 1 (* (pow x 2) n))) (* 1/4 (/ (log (/ -1 x)) (* x (pow n 2)))))) |
| 256.0ms | (- (* 1/2 (/ 1 (* x n))) (+ (* 1/4 (/ (log (/ 1 x)) (* x (pow n 2)))) (* 1/4 (/ 1 (* (pow x 2) n))))) |
| 230.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 21.4b
85.1% (1.3b remaining)
Error of 22.7b against oracle of 21.4b and baseline of 29.8b
| 18827× | (pre true 80) |
| 5015× | (body nan 80) |
| 4749× | (body real 80) |
| 3215× | (body real 1280) |
| 1570× | (body real 640) |
| 1188× | (body exit 10240) |
| 850× | (body real 320) |
| 632× | (body nan 1280) |
| 624× | (body nan 640) |
| 430× | (body real 160) |
| 376× | (body nan 320) |
| 178× | (body nan 160) |