package core_extended

  1. Overview
  2. Docs

Module BitarraySource

This module implements efficient and compact arrays of boolean values. It stores its values in the bits of an integer, using multiple integers to allow for arrays larger than the machine word size. All operations are on immediates (no caml_modify), and are quite simple. Hence this data structure should be more efficient than an array of bools.

Sourcetype t
include Core.Sexpable with type t := t
Sourceval t_of_sexp : Sexplib0.Sexp.t -> t
Sourceval sexp_of_t : t -> Sexplib0.Sexp.t
Sourceval create : int -> t

create size size must be less than ((word size - 2) * max array length)

Sourceval get : t -> int -> bool

get t pos get the value in position pos, raises Invalid_argument if the position is out of bounds.

Sourceval set : t -> int -> bool -> unit

set t pos set the value in position pos, raises Invalid_argument if the position is out of bounds.

Sourceval clear : t -> unit

clear t set the contents of every element to false O(n / (word_size - 2))

Sourceval fold : t -> init:'a -> f:('a -> bool -> 'a) -> 'a

fold t ~init ~f Fold over the array as in Array.fold

Sourceval iter : t -> f:(bool -> unit) -> unit

iter t ~f Iterate over the array as in Array.iter

Sourceval length : t -> int

length t returns the length of t, i.e., the number of bits it contains

OCaml

Innovation. Community. Security.