1 ! Copyright (C) 2009 Daniel Ehrenberg
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: sequences kernel math accessors sequences.private ;
6 TUPLE: bits { number read-only } { length read-only } ;
9 : make-bits ( number -- bits )
10 dup zero? [ drop T{ bits f 0 0 } ] [ dup abs log2 1+ <bits> ] if ; inline
12 M: bits length length>> ;
14 M: bits nth-unsafe number>> swap bit? ;
16 INSTANCE: bits immutable-sequence