Spec-Zone.ru › OCaml

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

Spec-Zone.ru

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