mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-18 08:36:43 -05:00
28 lines
No EOL
22 KiB
HTML
28 lines
No EOL
22 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Array3 (ocaml.Stdlib.Bigarray.Array3)</title><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../../index.html">ocaml</a> » <a href="../../index.html">Stdlib</a> » <a href="../index.html">Bigarray</a> » Array3</nav><header class="odoc-preamble"><h1>Module <code><span>Bigarray.Array3</span></code></h1><p>Three-dimensional arrays. The <code>Array3</code> structure provides operations similar to those of <a href="../Genarray/index.html"><code>Bigarray.Genarray</code></a>, but specialized to the case of three-dimensional arrays.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> <span>(!'a, !'b, !'c) t</span></span></code></div><div class="spec-doc"><p>The type of three-dimensional Bigarrays whose elements have OCaml type <code>'a</code>, representation kind <code>'b</code>, and memory layout <code>'c</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../index.html#type-kind">kind</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'c</span> <a href="../index.html#type-layout">layout</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>Array3.create kind layout dim1 dim2 dim3</code> returns a new Bigarray of three dimensions, whose size is <code>dim1</code> in the first dimension, <code>dim2</code> in the second dimension, and <code>dim3</code> in the third. <code>kind</code> and <code>layout</code> determine the array element kind and the array layout as described for <a href="../Genarray/index.html#val-create"><code>Bigarray.Genarray.create</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-init"><a href="#val-init" class="anchor"></a><code><span><span class="keyword">val</span> init :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../index.html#type-kind">kind</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'c</span> <a href="../index.html#type-layout">layout</a></span> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span>(<span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>Array3.init kind layout dim1 dim2 dim3 f</code> returns a new Bigarray <code>b</code> of three dimensions, whose size is <code>dim1</code> in the first dimension, <code>dim2</code> in the second dimension, and <code>dim3</code> in the third. <code>kind</code> and <code>layout</code> determine the array element kind and the array layout as described for <a href="../Genarray/index.html#val-create"><code>Bigarray.Genarray.create</code></a>.</p><p>Each element <code>Array3.get b i j k</code> of the array is initialized to the result of <code>f i j k</code>.</p><p>In other words, <code>Array3.init kind layout dim1 dim2 dim3 f</code> tabulates the results of <code>f</code> applied to the indices of a new Bigarray whose layout is described by <code>kind</code>, <code>layout</code>, <code>dim1</code>, <code>dim2</code> and <code>dim3</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.12.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-dim1"><a href="#val-dim1" class="anchor"></a><code><span><span class="keyword">val</span> dim1 : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Return the first dimension of the given three-dimensional Bigarray.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-dim2"><a href="#val-dim2" class="anchor"></a><code><span><span class="keyword">val</span> dim2 : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Return the second dimension of the given three-dimensional Bigarray.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-dim3"><a href="#val-dim3" class="anchor"></a><code><span><span class="keyword">val</span> dim3 : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Return the third dimension of the given three-dimensional Bigarray.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-kind"><a href="#val-kind" class="anchor"></a><code><span><span class="keyword">val</span> kind : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../index.html#type-kind">kind</a></span></span></code></div><div class="spec-doc"><p>Return the kind of the given Bigarray.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-layout"><a href="#val-layout" class="anchor"></a><code><span><span class="keyword">val</span> layout : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'c</span> <a href="../index.html#type-layout">layout</a></span></span></code></div><div class="spec-doc"><p>Return the layout of the given Bigarray.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-change_layout"><a href="#val-change_layout" class="anchor"></a><code><span><span class="keyword">val</span> change_layout : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'d</span> <a href="../index.html#type-layout">layout</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'d</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>Array3.change_layout a layout</code> returns a Bigarray with the specified <code>layout</code>, sharing the data with <code>a</code> (and hence having the same dimensions as <code>a</code>). No copying of elements is involved: the new array and the original array share the same storage space. The dimensions are reversed, such that <code>get v [| a; b; c |]</code> in C layout becomes <code>get v [| c+1; b+1; a+1 |]</code> in Fortran layout.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.06.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-size_in_bytes"><a href="#val-size_in_bytes" class="anchor"></a><code><span><span class="keyword">val</span> size_in_bytes : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>size_in_bytes a</code> is the number of elements in <code>a</code> multiplied by <code>a</code>'s <a href="../index.html#val-kind_size_in_bytes"><code>kind_size_in_bytes</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.03.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-get"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>Array3.get a x y z</code>, also written <code>a.{x,y,z}</code>, returns the element of <code>a</code> at coordinates (<code>x</code>, <code>y</code>, <code>z</code>). <code>x</code>, <code>y</code> and <code>z</code> must be within the bounds of <code>a</code>, as described for <a href="../Genarray/index.html#val-get"><code>Bigarray.Genarray.get</code></a>; otherwise, <code>Invalid_argument</code> is raised.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-set"><a href="#val-set" class="anchor"></a><code><span><span class="keyword">val</span> set : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>Array3.set a x y v</code>, or alternatively <code>a.{x,y,z} <- v</code>, stores the value <code>v</code> at coordinates (<code>x</code>, <code>y</code>, <code>z</code>) in <code>a</code>. <code>x</code>, <code>y</code> and <code>z</code> must be within the bounds of <code>a</code>, as described for <a href="../Genarray/index.html#val-set"><code>Bigarray.Genarray.set</code></a>; otherwise, <code>Invalid_argument</code> is raised.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sub_left"><a href="#val-sub_left" class="anchor"></a><code><span><span class="keyword">val</span> sub_left : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Extract a three-dimensional sub-array of the given three-dimensional Bigarray by restricting the first dimension. See <a href="../Genarray/index.html#val-sub_left"><code>Bigarray.Genarray.sub_left</code></a> for more details. <code>Array3.sub_left</code> applies only to arrays with C layout.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sub_right"><a href="#val-sub_right" class="anchor"></a><code><span><span class="keyword">val</span> sub_right :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Extract a three-dimensional sub-array of the given three-dimensional Bigarray by restricting the second dimension. See <a href="../Genarray/index.html#val-sub_right"><code>Bigarray.Genarray.sub_right</code></a> for more details. <code>Array3.sub_right</code> applies only to arrays with Fortran layout.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-slice_left_1"><a href="#val-slice_left_1" class="anchor"></a><code><span><span class="keyword">val</span> slice_left_1 :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="../Array1/index.html#type-t">Array1.t</a></span></span></code></div><div class="spec-doc"><p>Extract a one-dimensional slice of the given three-dimensional Bigarray by fixing the first two coordinates. The integer parameters are the coordinates of the slice to extract. See <a href="../Genarray/index.html#val-slice_left"><code>Bigarray.Genarray.slice_left</code></a> for more details. <code>Array3.slice_left_1</code> applies only to arrays with C layout.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-slice_right_1"><a href="#val-slice_right_1" class="anchor"></a><code><span><span class="keyword">val</span> slice_right_1 :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="../Array1/index.html#type-t">Array1.t</a></span></span></code></div><div class="spec-doc"><p>Extract a one-dimensional slice of the given three-dimensional Bigarray by fixing the last two coordinates. The integer parameters are the coordinates of the slice to extract. See <a href="../Genarray/index.html#val-slice_right"><code>Bigarray.Genarray.slice_right</code></a> for more details. <code>Array3.slice_right_1</code> applies only to arrays with Fortran layout.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-slice_left_2"><a href="#val-slice_left_2" class="anchor"></a><code><span><span class="keyword">val</span> slice_left_2 : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-c_layout">c_layout</a>)</span> <a href="../Array2/index.html#type-t">Array2.t</a></span></span></code></div><div class="spec-doc"><p>Extract a two-dimensional slice of the given three-dimensional Bigarray by fixing the first coordinate. The integer parameter is the first coordinate of the slice to extract. See <a href="../Genarray/index.html#val-slice_left"><code>Bigarray.Genarray.slice_left</code></a> for more details. <code>Array3.slice_left_2</code> applies only to arrays with C layout.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-slice_right_2"><a href="#val-slice_right_2" class="anchor"></a><code><span><span class="keyword">val</span> slice_right_2 :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <a href="../index.html#type-fortran_layout">fortran_layout</a>)</span> <a href="../Array2/index.html#type-t">Array2.t</a></span></span></code></div><div class="spec-doc"><p>Extract a two-dimensional slice of the given three-dimensional Bigarray by fixing the last coordinate. The integer parameter is the coordinate of the slice to extract. See <a href="../Genarray/index.html#val-slice_right"><code>Bigarray.Genarray.slice_right</code></a> for more details. <code>Array3.slice_right_2</code> applies only to arrays with Fortran layout.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-blit"><a href="#val-blit" class="anchor"></a><code><span><span class="keyword">val</span> blit : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Copy the first Bigarray to the second Bigarray. See <a href="../Genarray/index.html#val-blit"><code>Bigarray.Genarray.blit</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-fill"><a href="#val-fill" class="anchor"></a><code><span><span class="keyword">val</span> fill : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Fill the given Bigarray with the given value. See <a href="../Genarray/index.html#val-fill"><code>Bigarray.Genarray.fill</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_array"><a href="#val-of_array" class="anchor"></a><code><span><span class="keyword">val</span> of_array :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../index.html#type-kind">kind</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'c</span> <a href="../index.html#type-layout">layout</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span><span><span class="type-var">'a</span> array</span> array</span> array</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Build a three-dimensional Bigarray initialized from the given array of arrays of arrays.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-unsafe_get"><a href="#val-unsafe_get" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_get : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Like <a href="#val-get"><code>Bigarray.Array3.get</code></a>, but bounds checking is not always performed.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-unsafe_set"><a href="#val-unsafe_set" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_set : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Like <a href="#val-set"><code>Bigarray.Array3.set</code></a>, but bounds checking is not always performed.</p></div></div></div></body></html> |