Модуль Bigarray.Array1
module Array1: sig .. end
Одномерные массивы. Структура Array1 предоставляет операции, аналогичные операциям Bigarray.Genarray, но специализированные для одномерных массивов. (Структуры Bigarray.Array2 и Bigarray.Array3 ниже предоставляют операции, специализированные для двумерных и трехмерных массивов.) Знание числа измерений массива статически позволяет выполнять более быстрые операции и более точную статическую проверку типов.
type ('a, 'b, 'c) t Тип одномерных Bigarray, элементы которых имеют тип OCaml 'a, вид представления 'b, и планирование памяти 'c.
val create : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> ('a, 'b, 'c) t
Array1.create kind layout dim возвращает новый Bigarray одного измерения, размер которого dim. kind и layout определяют тип элементов массива и планирование массива, как описано для Bigarray.Genarray.create.
val init : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> (int -> 'a) -> ('a, 'b, 'c) t
Array1.init kind layout dim f возвращает новый Bigarray b одного измерения, размер которого dim. kind и layout определяют тип элементов массива и планирование массива, как описано для Bigarray.Genarray.create.
Каждый элемент Array1.get b i массива инициализируется результатом f i.
Другими словами, Array1.init kind layout dimensions f табулирует результаты f, примененные к индексам нового Bigarray, планирование которого описано kind, layout и dim.
- Since 4.12.0
val dim : ('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
Array1.change_layout a layout возвращает Bigarray с указанным layout, делящий данные с a (и, следовательно, имеющий такое же измерение, как и a). Копирование элементов не выполняется: новый массив и исходный массив делят одно и то же пространство хранения.
- 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 -> 'a
Array1.get a x, или, альтернативно, a.{x}, возвращает элемент a по индексу x. x должно быть больше или равно 0 и строго меньше Array1.dim a если у a планирование C. Если у a планирование Fortran, x должно быть больше или равно 1 и меньше или равно Array1.dim a. В противном случае, генерируется Invalid_argument.
val set : ('a, 'b, 'c) t -> int -> 'a -> unit
Array1.set a x v, также записывается как a.{x} <- v, сохраняет значение v по индексу x в a. x должно находиться в пределах границ a, как описано в Bigarray.Array1.get; в противном случае, генерируется Invalid_argument.
val sub : ('a, 'b, 'c) t -> int -> int -> ('a, 'b, 'c) t
Извлечение подмассива данного одномерного Bigarray. См. Bigarray.Genarray.sub_left для получения более подробной информации.
val slice : ('a, 'b, 'c) t -> int -> ('a, 'b, 'c) Bigarray.Array0.t
Извлечение скаляра (слице размером ноль измерений) данного одномерного Bigarray. Целочисленный параметр — индекс скаляра для извлечения. См. Bigarray.Genarray.slice_left и Bigarray.Genarray.slice_right для получения более подробной информации.
- Since 4.05.0
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 -> ('a, 'b, 'c) t
Построение одномерного Bigarray, инициализированного из данного массива.
val unsafe_get : ('a, 'b, 'c) t -> int -> 'a
Как Bigarray.Array1.get, но проверка границ не всегда выполняется. Используйте с осторожностью и только когда логика программы гарантирует, что доступ находится в пределах границ.
val unsafe_set : ('a, 'b, 'c) t -> int -> 'a -> unit
Как Bigarray.Array1.set, но проверка границ не всегда выполняется. Используйте с осторожностью и только когда логика программы гарантирует, что доступ находится в пределах границ.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Bigarray.Array1.html