Spec-Zone.ru › OCaml 4.14

Модуль 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API