module BatBitSet:Efficient bit sets.sig
..end
A bitset is an array of boolean values that can be accessed with indexes
like an array but provides a better memory usage (divided by 8) for a
very small speed trade-off.
Author(s): Nicolas Cannasse, David Teller (Boilerplate code)
type
t
exception Negative_index of string
val empty : unit -> t
val create : int -> t
val create_full : int -> t
val copy : t -> t
val clone : t -> t
copy
val set : t -> int -> unit
set s n
sets the nth-bit in the bitset s
to true.val unset : t -> int -> unit
unset s n
sets the nth-bit in the bitset s
to false.val put : t -> bool -> int -> unit
put s v n
sets the nth-bit in the bitset s
to v
.val toggle : t -> int -> unit
toggle s n
changes the nth-bit value in the bitset s
.val is_set : t -> int -> bool
is_set s n
returns true if nth-bit in the bitset s
is set,
or false otherwise.val compare : t -> t -> int
compare s1 s2
compares two bitsets. Highest bit indexes are
compared first.val equals : t -> t -> bool
equals s1 s2
returns true if, and only if, all bits values in s1 are
the same as in s2.val count : t -> int
count s
returns the number of bits set in the bitset s
.val enum : t -> int BatEnum.t
enum s
returns an enumeration of bits which are set
in the bitset s
.val intersect : t -> t -> unit
intersect s t
sets s
to the intersection of the sets s
and t
.val unite : t -> t -> unit
unite s t
sets s
to the union of the sets s
and t
.val differentiate : t -> t -> unit
differentiate s t
removes the elements of t
from s
.val differentiate_sym : t -> t -> unit
differentiate_sym s t
sets s
to the symmetrical difference of the
sets s
and t
.val inter : t -> t -> t
inter s t
returns the intersection of sets s
and t
.val union : t -> t -> t
union s t
return the union of sets s
and t
.val diff : t -> t -> t
diff s t
returns s
-t
.val sym_diff : t -> t -> t
sym_diff s t
returns the symmetrical difference of s
and t
.val print : 'a BatInnerIO.output -> t -> unit