math.bitwise: don't count the same bits over&over

db4
Joe Groff 2011-11-11 23:36:21 -08:00
parent 706c9ee3b9
commit da81cb9035
1 changed files with 6 additions and 6 deletions

View File

@ -90,13 +90,13 @@ GENERIC: (bit-count) ( x -- n )
{ fixnum } declare { fixnum } declare
[ byte-bit-count ] keep [ byte-bit-count ] keep
[ -8 shift byte-bit-count + ] keep [ -8 shift byte-bit-count + ] keep
[ -8 shift byte-bit-count + ] keep [ -16 shift byte-bit-count + ] keep
[ -8 shift byte-bit-count + ] keep [ -24 shift byte-bit-count + ] keep
cell 8 = [ cell 8 = [
[ -8 shift byte-bit-count + ] keep [ -32 shift byte-bit-count + ] keep
[ -8 shift byte-bit-count + ] keep [ -40 shift byte-bit-count + ] keep
[ -8 shift byte-bit-count + ] keep [ -48 shift byte-bit-count + ] keep
-8 shift byte-bit-count + >fixnum -56 shift byte-bit-count + >fixnum
] [ drop ] if ; ] [ drop ] if ;
M: fixnum (bit-count) M: fixnum (bit-count)