module Bitvector:sig..end
Bitvectors.
type t
val create : int -> tCreate a vector of n bits, with all bits unset.
val create_set : int -> tCreate a vector of n bits, with all bits set.
val capacity : t -> intMaximum number of bits in the bitvector.
val resize : int -> t -> tA copy of the bitvector up-to or down-to n bits.
Extra bits up to final bitvector capacity are set to zero.
val mem : t -> int -> bool
val set : t -> int -> unit
val clear : t -> int -> unit
val once : t -> int -> boolreturn true if unset, then set the bit.
val set_range : t -> int -> int -> unit
val is_empty : t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> intThe first argument is the size of the vectors.
val bnot : int -> t -> t
val band : int -> t -> t -> t
val bor : int -> t -> t -> t
val bxor : int -> t -> t -> t
val beq : int -> t -> t -> t. Prefer using these rather than create intermediary bitvectors.
val bitwise_op2 : int -> (int -> int -> int) -> t -> t -> t
val bitwise_op3 : int ->
(int -> int -> int -> int) ->
t -> t -> t -> t
val bitwise_op4 : int ->
(int -> int -> int -> int -> int) ->
t -> t -> t -> t -> tval concat : t -> int -> t -> int -> tconcat b1 s1 b2 s2 concatenates
the s1 first bits of b1 with
the s2 first bits of b2.
val iter_true : (int -> unit) -> t -> unitIterates on all indexes of the bitvector with their bit set.
val fold_true : ('a -> int -> 'a) -> 'a -> t -> 'aIterates on all indexes of the bitvector with their bit set.
val find_next_true : t -> int -> intfind_next_true i a returns the first index greater or equal to
i with its bit set. To find the first true element, call
find_next_true -1 a. If no next true element exists, or i is
larger than the array, then raise Not_found.
val pretty : Stdlib.Format.formatter -> t -> unitBit vector, as blocs of 8-bits separated by space, first bits to last bits from left to right.
val pp_bits : Stdlib.Format.formatter -> int -> unit0b... format, for bytes only, most significant bits on left.