File tree Expand file tree Collapse file tree 2 files changed +13
-1
lines changed Expand file tree Collapse file tree 2 files changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ let bytes_length_of_size size =
6767 else
6868 div_ size + 1
6969
70- let create ~size default =
70+ let create ~size default : t =
7171 if size = 0 then
7272 empty ()
7373 else (
@@ -210,6 +210,13 @@ let[@inline] set bv i =
210210 (unsafe_get_ bv.b idx_bucket lor (1 lsl idx_in_byte))
211211 )
212212
213+ let init size f : t =
214+ let v = create ~size false in
215+ for i = 0 to size - 1 do
216+ if f i then set v i
217+ done ;
218+ v
219+
213220let [@ inline] reset bv i =
214221 if i < 0 then
215222 invalid_arg " reset: negative index"
Original file line number Diff line number Diff line change @@ -23,6 +23,11 @@ val create : size:int -> bool -> t
2323(* * Create a bitvector of given size, with given default value.
2424 Length of result is [size]. *)
2525
26+ val init : int -> (int -> bool ) -> t
27+ (* * [init len f] initializes a bitvector of length [len], where bit [i]
28+ is true iff [f i] is.
29+ @since NEXT_RELEASE *)
30+
2631val copy : t -> t
2732(* * Copy of bitvector. *)
2833
You can’t perform that action at this time.
0 commit comments