


Bits error versus x



Bits error versus n
Results
if n < -964894.1011799229Initial program 44.8
Taylor expanded around inf 32.8
Simplified32.8
if -964894.1011799229 < n < -1.85624215534225e-310Initial program 0.7
rmApplied add-log-exp0.8
rmApplied add-cube-cbrt0.8
Applied exp-prod0.8
Applied log-pow0.8
rmApplied add-log-exp0.8
rmApplied add-sqr-sqrt0.8
Applied log-prod0.8
if -1.85624215534225e-310 < n < 7.586550074092197Initial program 23.5
rmApplied add-exp-log23.5
Applied pow-exp23.5
Simplified0.4
if 7.586550074092197 < n Initial program 44.2
rmApplied add-log-exp44.2
Taylor expanded around -inf 62.7
Simplified32.1
Final simplification19.0
herbie shell --seed 2019022 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))
Time bar (total: 42.8s)Debug log
| 90.0ms | 93× | body | 1280 | valid |
| 47.0ms | 146× | body | 80 | valid |
| 42.0ms | 54× | body | 640 | valid |
| 32.0ms | 41× | body | 10240 | exit |
| 21.0ms | 28× | body | 640 | nan |
| 16.0ms | 14× | body | 1280 | nan |
| 14.0ms | 134× | body | 80 | nan |
| 14.0ms | 26× | body | 320 | valid |
| 7.0ms | 13× | body | 320 | nan |
| 6.0ms | 14× | body | 160 | valid |
| 1.0ms | 5× | body | 160 | nan |
| 12.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 32.4b
Found 3 expressions with local error:
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0b | (pow x (/ 1 n)) |
| 0.8b | (pow (+ x 1) (/ 1 n)) |
| 24× | add-sqr-sqrt |
| 22× | *-un-lft-identity |
| 20× | add-cube-cbrt |
| 18× | prod-diff |
| 16× | unpow-prod-down |
| 8× | pow-unpow |
| 6× | fma-neg |
| 5× | add-log-exp |
| 4× | add-exp-log |
| 4× | pow1 |
| 3× | log1p-expm1-u |
| 3× | add-cbrt-cube |
| 3× | expm1-log1p-u |
| 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 |
| 15.0ms | (pow x (/ 1 n)) |
| 9.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0ms | (pow (+ x 1) (/ 1 n)) |
| 206.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 95.0ms | (pow (+ x 1) (/ 1 n)) |
| 53.0ms | (pow x (/ 1 n)) |
| 586.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 386.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))))) |
| 230.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
| 65.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)))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 17.3b
Found 4 expressions with local error:
| 2.4b | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0b | (pow x (/ 1 n)) |
| 0.8b | (pow (+ x 1) (/ 1 n)) |
| 43× | add-sqr-sqrt |
| 39× | *-un-lft-identity |
| 36× | prod-diff |
| 35× | add-cube-cbrt |
| 26× | unpow-prod-down |
| 23× | log-prod |
| 20× | exp-sum |
| 8× | pow-unpow |
| 7× | log-pow |
| 6× | add-log-exp |
| 6× | fma-neg |
| 6× | exp-prod |
| 6× | pow1 |
| 5× | add-exp-log |
| 4× | difference-of-squares |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 2× | distribute-lft-out-- |
| 2× | div-inv |
| 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 |
| 20.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 16.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 196.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 177.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 70.0ms | (pow (+ x 1) (/ 1 n)) |
| 61.0ms | (pow x (/ 1 n)) |
| 526.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 381.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 366.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 360.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 335.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 17.3b
Found 4 expressions with local error:
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.9b | (log (exp (* (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))) (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))))) |
| 59× | add-sqr-sqrt |
| 54× | prod-diff |
| 53× | *-un-lft-identity |
| 47× | add-cube-cbrt |
| 39× | unpow-prod-down |
| 18× | fma-neg |
| 11× | add-log-exp |
| 6× | difference-of-squares |
| 5× | pow1 |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 3× | distribute-lft-out-- |
| 3× | flip-- |
| 3× | log-pow |
| 3× | diff-log |
| 3× | flip3-- |
| 3× | sub-neg |
| 3× | log-prod |
| 1× | rem-log-exp |
| 1× | exp-to-pow |
| 1× | exp-prod |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0ms | (log (exp (* (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))) (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))))) |
| 528.0ms | (log (exp (* (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n)))) (cbrt (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))))) |
| 219.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 184.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 172.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 659.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 442.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 327.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 294.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 282.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 17.3b
Found 4 expressions with local error:
| 2.4b | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 2.4b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 76× | add-sqr-sqrt |
| 72× | prod-diff |
| 68× | *-un-lft-identity |
| 60× | add-cube-cbrt |
| 49× | unpow-prod-down |
| 23× | log-prod |
| 20× | exp-sum |
| 18× | fma-neg |
| 10× | add-log-exp |
| 8× | difference-of-squares |
| 7× | log-pow |
| 6× | exp-prod |
| 5× | pow1 |
| 4× | distribute-lft-out-- |
| 4× | log1p-expm1-u |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | sub-neg |
| 4× | expm1-log1p-u |
| 3× | flip-- |
| 3× | diff-log |
| 3× | flip3-- |
| 1× | rem-log-exp |
| 1× | exp-diff |
| 1× | log-div |
| 37.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 14.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 10.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 9.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 196.0ms | (log (exp (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))) |
| 192.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 187.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 180.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 487.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 430.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 404.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 395.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 388.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 17.3b
86.2% (1.6b remaining)
Error of 19.0b against oracle of 17.4b and baseline of 29.0b
| 3.5s | 3133× | body | 1280 | valid |
| 1.3s | 1543× | body | 640 | valid |
| 1.0s | 1134× | body | 10240 | exit |
| 865.0ms | 4787× | body | 80 | valid |
| 665.0ms | 640× | body | 1280 | nan |
| 600.0ms | 5030× | body | 80 | nan |
| 509.0ms | 661× | body | 640 | nan |
| 456.0ms | 831× | body | 320 | valid |
| 412.0ms | 166× | body | 160 | nan |
| 187.0ms | 377× | body | 320 | nan |
| 170.0ms | 473× | body | 160 | valid |