Модуль Bigarray.Array2
module Array2: sig .. end
Двумерные массивы. Структура Array2 предоставляет операции, аналогичные операциям Bigarray.Genarray, но специализированные для двумерных массивов.
type ('a, 'b, 'c) t Тип двумерных Bigarray, элементы которых имеют тип OCaml 'a, вид представления 'b, и расположение в памяти 'c.
val create : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> int -> ('a, 'b, 'c) t
Array2.create kind layout dim1 dim2 возвращает новый Bigarray двух измерений, размер которого равен dim1 в первом измерении и dim2 во втором измерении. kind и layout определяют тип элементов массива и расположение в памяти, как описано для Bigarray.Genarray.create.
val init : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> int -> (int -> int -> 'a) -> ('a, 'b, 'c) t
Array2.init kind layout dim1 dim2 f возвращает новый Bigarray b двух измерений, размер которого равен dim2 в первом измерении и dim2 во втором измерении. kind и layout определяют тип элементов массива и расположение в памяти, как описано для Bigarray.Genarray.create.
Каждый элемент Array2.get b i j массива инициализируется результатом f i j.
Другими словами, Array2.init kind layout dim1 dim2 f табулирует результаты f, примененные к индексам нового Bigarray, расположение которого описывается kind, layout, dim1 и dim2.
- Since 4.12.0
val dim1 : ('a, 'b, 'c) t -> int
Возвращает первое измерение данного двумерного Bigarray.
val dim2 : ('a, 'b, 'c) t -> int
Возвращает второе измерение данного двумерного Bigarray.
val kind : ('a, 'b, 'c) t -> ('a, 'b) Bigarray.kind
Возвращает вид данного Bigarray.
val layout : ('a, 'b, 'c) t -> 'c Bigarray.layout
Возвращает расположение в памяти данного Bigarray.
val change_layout : ('a, 'b, 'c) t -> 'd Bigarray.layout -> ('a, 'b, 'd) t
Array2.change_layout a layout возвращает Bigarray с указанным layout, совмещая данные с a (и, следовательно, имея такие же размеры, как и a). Копирование элементов не происходит: новый массив и исходный массив совместно используют одно и то же хранилище. Размеры перевернуты, так что get v [| a; b |] в расположении C становится get v [| b+1; a+1 |] в расположении Fortran.
- Since 4.06.0
val size_in_bytes : ('a, 'b, 'c) t -> int
size_in_bytes a — это количество элементов в a, умноженное на Bigarray.kind_size_in_bytes a.
- Since 4.03.0
val get : ('a, 'b, 'c) t -> int -> int -> 'a
Array2.get a x y, также записываемое как a.{x,y}, возвращает элемент a в координатах (x, y). x и y должны находиться в границах a, как описано в Bigarray.Genarray.get; в противном случае, возникает Invalid_argument.
val set : ('a, 'b, 'c) t -> int -> int -> 'a -> unit
Array2.set a x y v, или альтернативно a.{x,y} <- v, сохраняет значение v в координатах (x, y) в a. x и y должны находиться в границах a, как описано в Bigarray.Genarray.set; в противном случае, возникает Invalid_argument.
val sub_left : ('a, 'b, Bigarray.c_layout) t -> int -> int -> ('a, 'b, Bigarray.c_layout) t
Извлечение двумерного подмассива из данного двумерного Bigarray путем ограничения первого измерения. Дополнительные подробности см. в Bigarray.Genarray.sub_left. Array2.sub_left применяется только к массивам с расположением C.
val sub_right : ('a, 'b, Bigarray.fortran_layout) t -> int -> int -> ('a, 'b, Bigarray.fortran_layout) t
Извлечение двумерного подмассива из данного двумерного Bigarray путем ограничения второго измерения. Дополнительные подробности см. в Bigarray.Genarray.sub_right. Array2.sub_right применяется только к массивам с расположением Fortran.
val slice_left : ('a, 'b, Bigarray.c_layout) t -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
Извлечение строки (одномерного среза) из данного двумерного Bigarray. Целочисленный параметр — это индекс строки для извлечения. Дополнительные подробности см. в Bigarray.Genarray.slice_left. Array2.slice_left применяется только к массивам с расположением C.
val slice_right : ('a, 'b, Bigarray.fortran_layout) t -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array1.t
Извлечение столбца (одномерного среза) из данного двумерного Bigarray. Целочисленный параметр — это индекс столбца для извлечения. Дополнительные подробности см. в Bigarray.Genarray.slice_right. Array2.slice_right применяется только к массивам с расположением Fortran.
val blit : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> unit
Копирование первого Bigarray во второй Bigarray. Дополнительные подробности см. в Bigarray.Genarray.blit.
val fill : ('a, 'b, 'c) t -> 'a -> unit
Заполнение данного Bigarray заданным значением. Дополнительные подробности см. в Bigarray.Genarray.fill.
val of_array : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> 'a array array -> ('a, 'b, 'c) t
Построение двумерного Bigarray, инициализированного из заданного массива массивов.
val unsafe_get : ('a, 'b, 'c) t -> int -> int -> 'a
Как Bigarray.Array2.get, но проверка границ не всегда выполняется.
val unsafe_set : ('a, 'b, 'c) t -> int -> int -> 'a -> unit
Как Bigarray.Array2.set, но проверка границ не всегда выполняется.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Bigarray.Array2.html