


Bits error versus x



Bits error versus n
if n < -1188204565.7360165Initial program 46.0
Taylor expanded around -inf 63.2
Simplified32.8
if -1188204565.7360165 < n < -8.42372548633578e-288Initial program 1.2
rmApplied add-log-exp1.4
Applied add-log-exp1.4
Applied diff-log1.4
Simplified1.4
rmApplied add-sqr-sqrt1.4
Applied add-sqr-sqrt1.4
Applied prod-diff1.4
Applied exp-sum1.4
Applied log-prod1.4
Simplified1.3
rmApplied expm1-log1p-u1.3
rmApplied add-cube-cbrt1.3
if -8.42372548633578e-288 < n < 3215896251.905344Initial program 20.2
rmApplied add-log-exp20.2
Applied add-log-exp20.2
Applied diff-log20.2
Simplified20.2
rmApplied add-sqr-sqrt20.2
Applied add-sqr-sqrt20.2
Applied prod-diff20.2
Applied exp-sum20.2
Applied log-prod20.2
Simplified20.2
rmApplied expm1-log1p-u20.2
rmApplied add-exp-log24.2
Applied pow-exp24.2
Simplified5.9
if 3215896251.905344 < n Initial program 44.9
rmApplied add-log-exp44.9
Applied add-log-exp44.9
Applied diff-log44.9
Simplified44.9
Taylor expanded around inf 32.9
Simplified32.9
Final simplification20.3
herbie shell --seed 2019016 +o rules:numerics
(FPCore (x n)
:name "2nthrt (problem 3.4.6)"
(- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))))
Time bar (total: 34.2s)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) |
| 46.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)) |
| 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) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 213.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 69.0ms | (pow (+ x 1) (/ 1 n)) |
| 64.0ms | (pow x (/ 1 n)) |
| 986.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 446.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 434.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 271.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
| 67.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)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 18.3b
Found 4 expressions with local error:
| 2.2b | (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))) |
| 2.0b | (log (exp (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))))) |
| 1.0b | (pow (+ 1 x) (/ 1 n)) |
| 0.8b | (pow x (/ 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 |
| 24.0ms | (log (exp (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))))) |
| 11.0ms | (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))) |
| 3.0ms | (pow (+ 1 x) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 204.0ms | (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))) |
| 165.0ms | (log (exp (- (pow (+ 1 x) (/ 1 n)) (pow x (/ 1 n))))) |
| 72.0ms | (pow x (/ 1 n)) |
| 70.0ms | (pow (+ 1 x) (/ 1 n)) |
| 591.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))))) |
| 442.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 388.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 377.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 18.3b
Found 4 expressions with local error:
| 2.4b | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (pow x (/ 1 n))))) |
| 2.2b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 0.8b | (pow x (/ 1 n)) |
| 25× | add-sqr-sqrt |
| 23× | *-un-lft-identity |
| 21× | add-cube-cbrt |
| 18× | prod-diff |
| 16× | unpow-prod-down |
| 8× | pow-unpow |
| 6× | add-log-exp |
| 6× | fma-neg |
| 5× | add-exp-log |
| 5× | pow1 |
| 4× | log1p-expm1-u |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 2× | difference-of-squares |
| 2× | div-inv |
| 2× | pow-to-exp |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | fma-udef |
| 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))) |
| 2.0ms | (pow (+ x 1) (/ 1 n)) |
| 1.0ms | (pow x (/ 1 n)) |
| 0.0ms | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (pow x (/ 1 n))))) |
| 225.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 149.0ms | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (pow x (/ 1 n))))) |
| 82.0ms | (pow x (/ 1 n)) |
| 81.0ms | (pow (+ x 1) (/ 1 n)) |
| 600.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 350.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 335.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 222.0ms | (- (+ (* 1/2 (/ (pow (log (/ 1 x)) 2) (pow n 2))) 1) (/ (log (/ 1 x)) n)) |
| 98.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)))) |
10 alts after pruning (10 fresh and 0 done)
Merged error: 18.3b
Found 4 expressions with local error:
| 32.8b | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))) |
| 30.9b | (log (exp (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))))) |
| 2.2b | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 1.0b | (pow (+ x 1) (/ 1 n)) |
| 26× | add-sqr-sqrt |
| 24× | *-un-lft-identity |
| 22× | add-cube-cbrt |
| 18× | prod-diff |
| 16× | unpow-prod-down |
| 6× | add-log-exp |
| 6× | fma-neg |
| 6× | pow1 |
| 5× | add-exp-log |
| 4× | log1p-expm1-u |
| 4× | log-pow |
| 4× | add-cbrt-cube |
| 4× | log-prod |
| 4× | pow-unpow |
| 4× | expm1-log1p-u |
| 3× | exp-prod |
| 2× | difference-of-squares |
| 2× | fma-udef |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | div-inv |
| 1× | pow-exp |
| 1× | exp-sum |
| 1× | rem-log-exp |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | pow-pow |
| 1× | sub-neg |
| 1× | pow-to-exp |
| 20.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 3.0ms | (pow (+ x 1) (/ 1 n)) |
| 2.0ms | (log (exp (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))))) |
| 0.0ms | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))) |
| 258.0ms | (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))) |
| 258.0ms | (log (exp (fma (- (sqrt (pow x (/ 1 n)))) (sqrt (pow x (/ 1 n))) (* (sqrt (pow x (/ 1 n))) (sqrt (expm1 (log1p (pow x (/ 1 n))))))))) |
| 175.0ms | (- (pow (+ x 1) (/ 1 n)) (pow x (/ 1 n))) |
| 81.0ms | (pow (+ x 1) (/ 1 n)) |
| 552.0ms | (- (+ (/ (log -1) n) (+ 1 (/ 1 (* x n)))) (/ (log (/ -1 x)) n)) |
| 360.0ms | (- (/ 1 (* x n)) (+ (/ (log (/ 1 x)) (* x (pow n 2))) (* 1/2 (/ 1 (* (pow x 2) n))))) |
| 347.0ms | (- (+ (/ (log -1) (* x (pow n 2))) (/ 1 (* x n))) (+ (* 1/2 (/ 1 (* (pow x 2) n))) (/ (log (/ -1 x)) (* x (pow n 2))))) |
| 53.0ms | (- (+ 1 (/ 1 (* x n))) (/ (log (/ 1 x)) n)) |
| 47.0ms | (fma (pow (sqrt (+ x 1)) (/ 1 n)) (pow (sqrt (+ x 1)) (/ 1 n)) (- (* (sqrt (pow x (/ 1 n))) (sqrt (pow x (/ 1 n)))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 18.3b
81.7% (2.1b remaining)
Error of 20.3b against oracle of 18.2b 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) |