Spec-Zone.ru › OCaml 4.14

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

Spec-Zone.ru

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