


Bits error versus x



Bits error versus n
if n < -12051595.838427737 or 1930345654834.6394 < n Initial program 45.3
rmApplied add-cube-cbrt45.3
Applied fma-neg45.3
Taylor expanded around -inf 63.0
Simplified31.7
if -12051595.838427737 < n < -5.340310786032632e-303Initial program 0.5
rmApplied add-cube-cbrt0.6
Applied fma-neg0.6
rmApplied add-cube-cbrt0.6
if -5.340310786032632e-303 < n < 1930345654834.6394Initial program 24.5
rmApplied add-exp-log24.5
rmApplied add-exp-log25.3
Applied pow-exp25.3
Simplified3.5
Final simplification18.6
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))))
Time bar (total: 32.4s)Debug log
| 7.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 29.8b
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)) |
| 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 |
| 14.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 189.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 88.0ms | (pow (+ x 1) (/ 1 n)) |
| 81.0ms | (pow x (/ 1 n)) |
| 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)))) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 18.4b
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))))) |
| 31× | add-sqr-sqrt |
| 27× | *-un-lft-identity |
| 23× | add-cube-cbrt |
| 18× | prod-diff |
| 17× | unpow-prod-down |
| 8× | pow-unpow |
| 6× | add-log-exp |
| 6× | exp-sum |
| 6× | fma-neg |
| 6× | log-prod |
| 6× | pow1 |
| 5× | add-exp-log |
| 4× | difference-of-squares |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | exp-prod |
| 4× | expm1-log1p-u |
| 2× | distribute-lft-out-- |
| 2× | flip-- |
| 2× | div-inv |
| 2× | exp-diff |
| 2× | flip3-- |
| 2× | log-div |
| 2× | pow-to-exp |
| 1× | rem-exp-log |
| 1× | log-pow |
| 1× | pow-exp |
| 1× | diff-log |
| 1× | pow-pow |
| 1× | sub-neg |
| 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)) |
| 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)) |
| 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))))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 18.4b
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))))) |
| 31× | add-sqr-sqrt |
| 27× | *-un-lft-identity |
| 23× | add-cube-cbrt |
| 18× | prod-diff |
| 17× | unpow-prod-down |
| 12× | pow-unpow |
| 6× | add-log-exp |
| 6× | fma-neg |
| 6× | log-prod |
| 6× | unpow-prod-up |
| 6× | pow1 |
| 5× | add-exp-log |
| 4× | difference-of-squares |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 3× | pow-to-exp |
| 2× | pow-sub |
| 2× | distribute-lft-out-- |
| 2× | flip-- |
| 2× | div-inv |
| 2× | flip3-- |
| 2× | log-div |
| 1× | log-pow |
| 1× | pow-exp |
| 1× | diff-log |
| 1× | pow-pow |
| 1× | sub-neg |
| 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)) |
| 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)) |
| 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)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 18.4b
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)) |
| 12× | pow-unpow |
| 10× | add-cube-cbrt |
| 10× | *-un-lft-identity |
| 10× | add-sqr-sqrt |
| 9× | unpow-prod-down |
| 7× | add-exp-log |
| 7× | pow1 |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 3× | div-inv |
| 3× | pow-exp |
| 3× | pow-pow |
| 3× | pow-to-exp |
| 1× | fma-udef |
| 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)))) |
| 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)) |
| 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))))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 18.4b
89.2% (1.3b remaining)
Error of 18.6b against oracle of 17.3b and baseline of 29.4b