game-of-life: more speed in count-neighbors.

windows-high-dpi
John Benediktsson 2018-03-09 16:58:11 -08:00
parent 7179394ea0
commit 0a9752fcc9
1 changed files with 2 additions and 2 deletions

View File

@ -17,7 +17,7 @@ IN: game-of-life
[ length ] [ first length ] bi ;
:: wraparound ( x min max -- y )
x min < [ max ] [ x max > min x ? ] if ; inline
x min fixnum< [ max ] [ x max fixnum> min x ? ] if ; inline
:: count-neighbors ( grid -- counts )
grid grid-dim { fixnum fixnum } declare :> ( rows cols )
@ -25,7 +25,7 @@ IN: game-of-life
cols <iota> [| i |
{ -1 0 1 } [
{ -1 0 1 } [
2dup [ zero? ] both? [ 2drop f ] [
2dup [ 0 eq? ] both? [ 2drop f ] [
[ i fixnum+fast 0 cols 1 - wraparound ]
[ j fixnum+fast 0 rows 1 - wraparound ] bi*
{ fixnum fixnum } declare grid