MenhirLib.LinearizedArrayThis module offers support for linearizing an array of arrays (of possibly different lengths). All of the data is placed in a single data array, which is constructed by concatenating all of the little arrays. An entry array, which contains offsets into the data array, is also constructed.
val make : 'a array array -> 'a tmake a turns the array of arrays a into a linearized array.
val read : 'a t -> int -> int -> 'aread la i j reads the linearized array la at indices i and j. Thus, read (make a) i j is equivalent to a.(i).(j).
val write : 'a t -> int -> int -> 'a -> unitwrite la i j v writes the value v into the linearized array la at indices i and j.
val length : 'a t -> intlength la is the number of rows of the array la. Thus, length (make a) is equivalent to Array.length a.
val row_length : 'a t -> int -> introw_length la i is the length of the row at index i in the linearized array la. Thus, row_length (make a) i is equivalent to Array.length a.(i).
val read_row : 'a t -> int -> 'a listread_row la i reads the row at index i, producing a list. Thus, read_row (make a) i is equivalent to Array.to_list a.(i).