Модуль 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
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
val size_in_bytes : ('a, 'b, 'c) t -> int
size_in_bytes a — это количество элементов в a, умноженное на Bigarray.kind_size_in_bytes a.
- Since 4.03
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-2024 INRIA.
https://ocaml.org/manual/5.2/api/Bigarray.Array2.html