mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-18 08:36:43 -05:00
2 lines
No EOL
15 KiB
HTML
2 lines
No EOL
15 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Array1 (ocaml.Stdlib.Bigarray.Array1)</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> » Array1</nav><header class="odoc-preamble"><h1>Module <code><span>Bigarray.Array1</span></code></h1><p>One-dimensional arrays. The <code>Array1</code> structure provides operations similar to those of <a href="../Genarray/index.html"><code>Bigarray.Genarray</code></a>, but specialized to the case of one-dimensional arrays. (The <a href="../Array2/index.html"><code>Array2</code></a> and <a href="../Array3/index.html"><code>Array3</code></a> structures below provide operations specialized for two- and three-dimensional arrays.) Statically knowing the number of dimensions of the array allows faster operations, and more precise static type-checking.</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 one-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><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>Array1.create kind layout dim</code> returns a new Bigarray of one dimension, whose size is <code>dim</code>. <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>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><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>Array1.init kind layout dim f</code> returns a new Bigarray <code>b</code> of one dimension, whose size is <code>dim</code>. <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>Genarray.create</code></a>.</p><p>Each element <code>Array1.get b i</code> of the array is initialized to the result of <code>f i</code>.</p><p>In other words, <code>Array1.init kind layout dimensions 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> and <code>dim</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-dim"><a href="#val-dim" class="anchor"></a><code><span><span class="keyword">val</span> dim : <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 size (dimension) of the given one-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>Array1.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 dimension as <code>a</code>). No copying of elements is involved: the new array and the original array share the same storage space.</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 class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>Array1.get a x</code>, or alternatively <code>a.{x}</code>, returns the element of <code>a</code> at index <code>x</code>. <code>x</code> must be greater or equal than <code>0</code> and strictly less than <code>Array1.dim a</code> if <code>a</code> has C layout. If <code>a</code> has Fortran layout, <code>x</code> must be greater or equal than <code>1</code> and less or equal than <code>Array1.dim a</code>. 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><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>Array1.set a x v</code>, also written <code>a.{x} <- v</code>, stores the value <code>v</code> at index <code>x</code> in <code>a</code>. <code>x</code> must be inside the bounds of <code>a</code> as described in <a href="#val-get"><code>Bigarray.Array1.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-sub"><a href="#val-sub" class="anchor"></a><code><span><span class="keyword">val</span> sub : <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><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>Extract a sub-array of the given one-dimensional Bigarray. See <a href="../Genarray/index.html#val-sub_left"><code>Genarray.sub_left</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-slice"><a href="#val-slice" class="anchor"></a><code><span><span class="keyword">val</span> slice : <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><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="../Array0/index.html#type-t">Array0.t</a></span></span></code></div><div class="spec-doc"><p>Extract a scalar (zero-dimensional slice) of the given one-dimensional Bigarray. The integer parameter is the index of the scalar to extract. See <a href="../Genarray/index.html#val-slice_left"><code>Bigarray.Genarray.slice_left</code></a> and <a href="../Genarray/index.html#val-slice_right"><code>Bigarray.Genarray.slice_right</code></a> for more details.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.05.0</li></ul></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>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>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 class="type-var">'a</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 one-dimensional Bigarray initialized from the given array.</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 class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Like <a href="#val-get"><code>Bigarray.Array1.get</code></a>, but bounds checking is not always performed. Use with caution and only when the program logic guarantees that the access is within bounds.</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><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.Array1.set</code></a>, but bounds checking is not always performed. Use with caution and only when the program logic guarantees that the access is within bounds.</p></div></div></div></body></html> |