Модуль 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
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
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 -> '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
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-2024 INRIA.
https://ocaml.org/manual/5.2/api/Bigarray.Array1.html