Модуль Bigarray.Array3
module Array3: sig .. end
Трехмерные массивы. Структура Array3 предоставляет операции, аналогичные операциям Bigarray.Genarray, но специализированные для случая трёхмерных массивов.
type ('a, 'b, 'c) t Тип трёхмерных Bigarray, элементы которых имеют тип OCaml 'a, вид представления 'b, и структуру памяти 'c.
val create : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> int -> int -> ('a, 'b, 'c) t
Array3.create kind layout dim1 dim2 dim3 возвращает новый Bigarray трёх измерений, размер которого равен dim1 в первом измерении, dim2 во втором измерении и dim3 в третьем. kind и layout определяют тип элементов массива и структуру расположения в памяти, как описано для Bigarray.Genarray.create.
val init : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int -> int -> int -> (int -> int -> int -> 'a) -> ('a, 'b, 'c) t
Array3.init kind layout dim1 dim2 dim3 f возвращает новый Bigarray b трёх измерений, размер которого равен dim1 в первом измерении, dim2 во втором измерении и dim3 в третьем. kind и layout определяют тип элементов массива и структуру расположения в памяти, как описано для Bigarray.Genarray.create.
Каждый элемент Array3.get b i j k массива инициализируется результатом f i j k.
Другими словами, Array3.init kind layout dim1 dim2 dim3 f табулирует результаты применения f к индексам нового Bigarray, структура расположения которого описывается kind, layout, dim1, dim2 и dim3.
- Since 4.12.0
val dim1 : ('a, 'b, 'c) t -> int
Возвращает размер первого измерения данного трёхмерного Bigarray.
val dim2 : ('a, 'b, 'c) t -> int
Возвращает размер второго измерения данного трёхмерного Bigarray.
val dim3 : ('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
Array3.change_layout a layout возвращает Bigarray со специфицированным layout, используя данные из a (и, следовательно, имея те же размеры, что и a). Копирование элементов не происходит: новый массив и исходный массив делят одно и то же хранилище. Размеры перевернуты, так что get v [| a; b; c |] в расположении C становится get v [| c+1; 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 -> int -> 'a
Array3.get a x y z, также записывается как a.{x,y,z}, возвращает элемент a в координатах (x, y, z). x, y и z должны быть в пределах a, как описано для Bigarray.Genarray.get; в противном случае, поднимается Invalid_argument.
val set : ('a, 'b, 'c) t -> int -> int -> int -> 'a -> unit
Array3.set a x y v, или альтернативно a.{x,y,z} <- v, сохраняет значение v в координатах (x, y, z) в a. x, y и z должны быть в пределах 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. Array3.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. Array3.sub_right применяется только к массивам с расположением Fortran.
val slice_left_1 : ('a, 'b, Bigarray.c_layout) t -> int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
Извлечение одномерного среза данного трёхмерного Bigarray, фиксируя первые две координаты. Целые параметры — координаты извлекаемого среза. Подробнее см. Bigarray.Genarray.slice_left. Array3.slice_left_1 применяется только к массивам с расположением C.
val slice_right_1 : ('a, 'b, Bigarray.fortran_layout) t -> int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array1.t
Извлечение одномерного среза данного трёхмерного Bigarray, фиксируя последние две координаты. Целые параметры — координаты извлекаемого среза. Подробнее см. Bigarray.Genarray.slice_right. Array3.slice_right_1 применяется только к массивам с расположением Fortran.
val slice_left_2 : ('a, 'b, Bigarray.c_layout) t -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Array2.t
Извлечение двумерного среза данного трёхмерного Bigarray, фиксируя первую координату. Целый параметр — первая координата извлекаемого среза. Подробнее см. Bigarray.Genarray.slice_left. Array3.slice_left_2 применяется только к массивам с расположением C.
val slice_right_2 : ('a, 'b, Bigarray.fortran_layout) t -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Array2.t
Извлечение двумерного среза данного трёхмерного Bigarray, фиксируя последнюю координату. Целый параметр — координата извлекаемого среза. Подробнее см. Bigarray.Genarray.slice_right. Array3.slice_right_2 применяется только к массивам с расположением 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 array -> ('a, 'b, 'c) t
Создание трёхмерного Bigarray, инициализированного из данного массива массивов массивов.
val unsafe_get : ('a, 'b, 'c) t -> int -> int -> int -> 'a
Как Bigarray.Array3.get, но проверка границ не всегда выполняется.
val unsafe_set : ('a, 'b, 'c) t -> int -> int -> int -> 'a -> unit
Как Bigarray.Array3.set, но проверка границ не всегда выполняется.
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Bigarray.Array3.html