math.bitwise: fix mask? to do what the docs say.

db4
John Benediktsson 2013-10-13 20:20:05 -07:00
parent 7e9cd33be5
commit a5f59da7e1
2 changed files with 3 additions and 1 deletions

View File

@ -64,6 +64,8 @@ SPECIALIZED-ARRAY: uint-4
[ 3 ] [ 3 >odd ] unit-test
[ 5 ] [ 4 >odd ] unit-test
[ t ] [ 0b111 0b110 mask? ] unit-test
[ f ] [ 0b101 0b110 mask? ] unit-test
[ t ] [ 0xff 1 mask? ] unit-test
[ f ] [ 0x0 1 mask? ] unit-test

View File

@ -14,7 +14,7 @@ IN: math.bitwise
: unmask ( x n -- ? ) bitnot bitand ; inline
: unmask? ( x n -- ? ) unmask zero? not ; inline
: mask ( x n -- ? ) bitand ; inline
: mask? ( x n -- ? ) mask zero? not ; inline
: mask? ( x n -- ? ) [ mask ] [ = ] bi ; inline
: wrap ( m n -- m' ) 1 - bitand ; inline
: on-bits ( m -- n ) dup 0 <= [ drop 0 ] [ 2^ 1 - ] if ; inline
: bits ( m n -- m' ) on-bits mask ; inline