Frama-C API - Bitvector
Bitvectors.
val create : int -> t
Create a vector of n
bits, with all bits unset.
val create_set : int -> t
Create a vector of n
bits, with all bits set.
val capacity : t -> int
Maximum number of bits in the bitvector.
A 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 -> bool
return true
if unset, then set the bit.
val set_range : t -> int -> int -> unit
val is_empty : t -> bool
val hash : t -> int
Bitwise Binary Operations
The first argument is the size of the vectors.
Generic Bitwise Operations
Prefer using these rather than create intermediary bitvectors.
Sized Concatenation
concat b1 s1 b2 s2
concatenates the s1
first bits of b1
with the s2
first bits of b2
.
Misc
val iter_true : (int -> unit) -> t -> unit
Iterates on all indexes of the bitvector with their bit set.
val fold_true : ('a -> int -> 'a) -> 'a -> t -> 'a
Iterates on all indexes of the bitvector with their bit set.
val find_next_true : t -> int -> int
find_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 -> unit
Bit vector, as blocs of 8-bits separated by space, first bits to last bits from left to right.