This commit is contained in:
CircleCI Docs 2025-02-14 21:44:39 +00:00
parent f77c575f41
commit cc4f6f1107
748 changed files with 24254 additions and 13906 deletions

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 81aaeaba965ad2156af7b499f90bc0e9
config: 3de7e28b53786b931963de5ee3424408
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -0,0 +1,6 @@
mlx.core.bitwise\_invert
========================
.. currentmodule:: mlx.core
.. autofunction:: bitwise_invert

View File

@ -0,0 +1,6 @@
mlx.core.linalg.lu
==================
.. currentmodule:: mlx.core.linalg
.. autofunction:: lu

View File

@ -0,0 +1,6 @@
mlx.core.linalg.lu\_factor
==========================
.. currentmodule:: mlx.core.linalg
.. autofunction:: lu_factor

View File

@ -0,0 +1,6 @@
mlx.core.linalg.solve
=====================
.. currentmodule:: mlx.core.linalg
.. autofunction:: solve

View File

@ -0,0 +1,6 @@
mlx.core.linalg.solve\_triangular
=================================
.. currentmodule:: mlx.core.linalg
.. autofunction:: solve_triangular

View File

@ -51,11 +51,20 @@ The default floating point type is ``float32`` and the default integer type is
* - ``float32``
- 4
- 32-bit float
* - ``float64``
- 4
- 64-bit double
* - ``complex64``
- 8
- 64-bit complex float
.. note::
Arrays with type ``float64`` only work with CPU operations. Using
``float64`` arrays on the GPU will result in an exception.
Data type are aranged in a hierarchy. See the :obj:`DtypeCategory` object
documentation for more information. Use :func:`issubdtype` to determine if one
``dtype`` (or category) is a subtype of another category.

View File

@ -5,8 +5,8 @@ Linear Algebra
.. currentmodule:: mlx.core.linalg
.. autosummary::
:toctree: _autosummary
.. autosummary::
:toctree: _autosummary
inv
tri_inv
@ -18,3 +18,7 @@ Linear Algebra
svd
eigvalsh
eigh
lu
lu_factor
solve
solve_triangular

View File

@ -32,6 +32,7 @@ Operations
atleast_2d
atleast_3d
bitwise_and
bitwise_invert
bitwise_or
bitwise_xor
block_masked_mm

View File

@ -21,11 +21,13 @@ Let's convert an array to NumPy and back.
.. note::
Since NumPy does not support ``bfloat16`` arrays, you will need to convert to ``float16`` or ``float32`` first:
``np.array(a.astype(mx.float32))``.
Otherwise, you will receive an error like: ``Item size 2 for PEP 3118 buffer format string does not match the dtype V item size 0.``
Since NumPy does not support ``bfloat16`` arrays, you will need to convert
to ``float16`` or ``float32`` first: ``np.array(a.astype(mx.float32))``.
Otherwise, you will receive an error like: ``Item size 2 for PEP 3118
buffer format string does not match the dtype V item size 0.``
By default, NumPy copies data to a new array. This can be prevented by creating an array view:
By default, NumPy copies data to a new array. This can be prevented by creating
an array view:
.. code-block:: python
@ -35,10 +37,16 @@ By default, NumPy copies data to a new array. This can be prevented by creating
a_view[0] = 1
print(a[0].item()) # 1
A NumPy array view is a normal NumPy array, except that it does not own its memory.
This means writing to the view is reflected in the original array.
.. note::
While this is quite powerful to prevent copying arrays, it should be noted that external changes to the memory of arrays cannot be reflected in gradients.
NumPy arrays with type ``float64`` will be default converted to MLX arrays
with type ``float32``.
A NumPy array view is a normal NumPy array, except that it does not own its
memory. This means writing to the view is reflected in the original array.
While this is quite powerful to prevent copying arrays, it should be noted that
external changes to the memory of arrays cannot be reflected in gradients.
Let's demonstrate this in an example:
@ -56,11 +64,12 @@ Let's demonstrate this in an example:
The function ``f`` indirectly modifies the array ``x`` through a memory view.
However, this modification is not reflected in the gradient, as seen in the last line outputting ``1.0``,
representing the gradient of the sum operation alone.
The squaring of ``x`` occurs externally to MLX, meaning that no gradient is incorporated.
It's important to note that a similar issue arises during array conversion and copying.
For instance, a function defined as ``mx.array(np.array(x)**2).sum()`` would also result in an incorrect gradient,
However, this modification is not reflected in the gradient, as seen in the
last line outputting ``1.0``, representing the gradient of the sum operation
alone. The squaring of ``x`` occurs externally to MLX, meaning that no
gradient is incorporated. It's important to note that a similar issue arises
during array conversion and copying. For instance, a function defined as
``mx.array(np.array(x)**2).sum()`` would also result in an incorrect gradient,
even though no in-place operations on MLX memory are executed.
PyTorch
@ -71,7 +80,8 @@ PyTorch
PyTorch Support for :obj:`memoryview` is experimental and can break for
multi-dimensional arrays. Casting to NumPy first is advised for now.
PyTorch supports the buffer protocol, but it requires an explicit :obj:`memoryview`.
PyTorch supports the buffer protocol, but it requires an explicit
:obj:`memoryview`.
.. code-block:: python
@ -82,7 +92,8 @@ PyTorch supports the buffer protocol, but it requires an explicit :obj:`memoryvi
b = torch.tensor(memoryview(a))
c = mx.array(b.numpy())
Conversion from PyTorch tensors back to arrays must be done via intermediate NumPy arrays with ``numpy()``.
Conversion from PyTorch tensors back to arrays must be done via intermediate
NumPy arrays with ``numpy()``.
JAX
---
@ -100,7 +111,8 @@ JAX fully supports the buffer protocol.
TensorFlow
----------
TensorFlow supports the buffer protocol, but it requires an explicit :obj:`memoryview`.
TensorFlow supports the buffer protocol, but it requires an explicit
:obj:`memoryview`.
.. code-block:: python

View File

@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
VERSION: '0.22.1',
VERSION: '0.23.0',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',

View File

@ -187,7 +187,7 @@ $(function(){initNavTree('accelerate__fp16__simd_8h_source.html',''); initResiza
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>

View File

@ -226,6 +226,9 @@ Functions</h2></td></tr>
<tr class="memitem:af5be79b8dada8f8e91ae7c03c16606ec" id="r_af5be79b8dada8f8e91ae7c03c16606ec"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:af5be79b8dada8f8e91ae7c03c16606ec"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#af5be79b8dada8f8e91ae7c03c16606ec">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:af5be79b8dada8f8e91ae7c03c16606ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290787dda17296d27af7afdef3c732a9" id="r_a290787dda17296d27af7afdef3c732a9"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a290787dda17296d27af7afdef3c732a9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9">mlx::core::simd::operator~</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a290787dda17296d27af7afdef3c732a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f4422a037c3bef343fb11f71363b65" id="r_a05f4422a037c3bef343fb11f71363b65"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a05f4422a037c3bef343fb11f71363b65"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a05f4422a037c3bef343fb11f71363b65"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@ -88,6 +88,7 @@ var accelerate__simd_8h =
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ab2bc61c02b9096163e9db91a3f88788f", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ac34f6b278627949d2ee68cdbf3d2f50f", null ],
[ "mlx::core::simd::operator~", "namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9", null ],
[ "mlx::core::simd::pow", "namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a", null ],
[ "mlx::core::simd::prod", "namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c", null ],
[ "mlx::core::simd::recip", "namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61", null ],

View File

@ -268,257 +268,265 @@ $(function(){initNavTree('accelerate__simd_8h_source.html',''); initResizable(tr
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="}">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65"> 141</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a> != v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9"> 141</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9">operator~</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> ~v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>}</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">// No simd_boolN in accelerate, use int8_t instead</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00147" data-start="{" data-end="}">
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf"> 147</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">operator!</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(!v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>}</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00146" data-start="{" data-end="}">
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65"> 146</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a> != v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>}</div>
</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="foldopen" id="foldopen00151" data-start="" data-end="">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82"> 151</a></span><span class="preprocessor">#define SIMD_DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor"> template &lt;typename T, typename U, int N&gt; \</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor"> Simd&lt;T, N&gt; operator OP(Simd&lt;T, N&gt; x, U y) { \</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T, N&gt;::scalar_t&gt;(x.value OP y); \</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor"> Simd&lt;T2, N&gt; operator OP(T1 x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T2, N&gt;::scalar_t&gt;(x OP y.value); \</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor"> Simd&lt;T1, N&gt; operator OP(Simd&lt;T1, N&gt; x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T1, N&gt;::scalar_t&gt;(x.value OP y.value); \</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment">// No simd_boolN in accelerate, use int8_t instead</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00152" data-start="{" data-end="}">
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf"> 152</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">operator!</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(!v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>}</div>
</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aac6acd134f1498b4fb45fdbc882335bf"> 165</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ad5761065b4a655cd086d88846ae08d97"> 166</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac86a54a5e2ccc79bc92739f143bc0bef"> 167</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a08c1e7a00b1b4bc60e30d1554f4f46f2"> 168</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6e45c9c2f0591d9d5dd37a07ebcc3c2a"> 170</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab2b540d7329491000e7722f9b3ef797d"> 171</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a25b3de1947dbab7c4864b41ec226453b"> 172</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a0727c897502944659b3e32b3cde9ee9b"> 173</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a85c23e7ed6fe0ec6dfe4c61f7412a362"> 174</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a"> 175</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="foldopen" id="foldopen00177" data-start="" data-end="">
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459"> 177</a></span><span class="preprocessor">#define SIMD_DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T, N&gt; a, U b) { \</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b); \</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(T a, Simd&lt;U, N&gt; b) { \</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a OP b.value); \</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor"> template &lt;int N, typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T1, N&gt; a, Simd&lt;T2, N&gt; b) { \</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b.value); \</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="foldopen" id="foldopen00156" data-start="" data-end="">
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82"> 156</a></span><span class="preprocessor">#define SIMD_DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor"> template &lt;typename T, typename U, int N&gt; \</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> Simd&lt;T, N&gt; operator OP(Simd&lt;T, N&gt; x, U y) { \</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T, N&gt;::scalar_t&gt;(x.value OP y); \</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor"> Simd&lt;T2, N&gt; operator OP(T1 x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T2, N&gt;::scalar_t&gt;(x OP y.value); \</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="preprocessor"> Simd&lt;T1, N&gt; operator OP(Simd&lt;T1, N&gt; x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T1, N&gt;::scalar_t&gt;(x.value OP y.value); \</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6cd6e41660608d17ca8d38658d5e385c"> 191</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aac6acd134f1498b4fb45fdbc882335bf"> 170</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ad5761065b4a655cd086d88846ae08d97"> 171</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac86a54a5e2ccc79bc92739f143bc0bef"> 172</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a08c1e7a00b1b4bc60e30d1554f4f46f2"> 173</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6e45c9c2f0591d9d5dd37a07ebcc3c2a"> 175</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab2b540d7329491000e7722f9b3ef797d"> 176</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a25b3de1947dbab7c4864b41ec226453b"> 177</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a0727c897502944659b3e32b3cde9ee9b"> 178</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a85c23e7ed6fe0ec6dfe4c61f7412a362"> 179</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a"> 180</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="foldopen" id="foldopen00182" data-start="" data-end="">
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459"> 182</a></span><span class="preprocessor">#define SIMD_DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T, N&gt; a, U b) { \</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b); \</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(T a, Simd&lt;U, N&gt; b) { \</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a OP b.value); \</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor"> template &lt;int N, typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T1, N&gt; a, Simd&lt;T2, N&gt; b) { \</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b.value); \</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="preprocessor"> }</span></div>
</div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c"> 193</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;=)</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
<div class="foldopen" id="foldopen00196" data-start="{" data-end="}">
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6cd6e41660608d17ca8d38658d5e385c"> 196</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;)</div>
</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c"> 195</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca"> 196</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span>template &lt;typename T, <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt;</div>
<div class="foldopen" id="foldopen00199" data-start="{" data-end="}">
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac6104b5667e0eb379528bf7e2de23bee"> 199</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; b) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> asd::atan2(a.value, b.value);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
<div class="foldopen" id="foldopen00198" data-start="{" data-end="}">
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c"> 198</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;=)</div>
</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c"> 200</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca"> 201</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span>template &lt;typename T, <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt;</div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16"> 204</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">return</span> asd::max(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span>}</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac6104b5667e0eb379528bf7e2de23bee"> 204</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; b) {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">return</span> asd::atan2(a.value, b.value);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>}</div>
</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00210" data-start="{" data-end="}">
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4"> 210</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> asd::min(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span>}</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00209" data-start="{" data-end="}">
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16"> 209</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">return</span> asd::max(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span>}</div>
</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00216" data-start="{" data-end="}">
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab020d2c434fad0cdf79fd37b0f6c1676"> 216</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> r;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> r = asd::remainder(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> r = a - b * (a / b);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">auto</span> mask = r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> r = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(mask, r + b, r);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> }</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span>}</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00215" data-start="{" data-end="}">
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4"> 215</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">return</span> asd::min(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> MaskT, <span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00231" data-start="{" data-end="}">
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef"> 231</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;MaskT, N&gt;</a> mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T2, N&gt;</a> y) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 1) {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;char&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 2) {</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;short&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 4) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;int&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;long&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00221" data-start="{" data-end="}">
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab020d2c434fad0cdf79fd37b0f6c1676"> 221</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> r;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> r = asd::remainder(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> r = a - b * (a / b);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> }</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">auto</span> mask = r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> r = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(mask, r + b, r);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> }</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span>}</div>
</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00244" data-start="{" data-end="}">
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a"> 244</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> base, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">return</span> asd::pow(base.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>.value);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> res = 1;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)) {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> res = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1, res * base, res);</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> base = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>, base * base, base);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt; 1;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span>}</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> MaskT, <span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00236" data-start="{" data-end="}">
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef"> 236</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;MaskT, N&gt;</a> mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T2, N&gt;</a> y) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 1) {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;char&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 2) {</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;short&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 4) {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;int&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;long&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span>}</div>
</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00259" data-start="{" data-end="}">
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb"> 259</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">return</span> asd::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00249" data-start="{" data-end="}">
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a"> 249</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> base, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">return</span> asd::pow(base.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>.value);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> res = 1;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)) {</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> res = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1, res * base, res);</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> base = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>, base * base, base);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt; 1;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> }</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>}</div>
</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00264" data-start="{" data-end="}">
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70"> 264</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> y, U z) {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">return</span> asd::muladd(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb"> 264</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">return</span> asd::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span>}</div>
</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> </div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment">// Reductions</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00271" data-start="{" data-end="}">
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a"> 271</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> asd::all(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span>}</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70"> 269</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> y, U z) {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> asd::muladd(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span>}</div>
</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00275" data-start="{" data-end="}">
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e"> 275</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> asd::any(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span>}</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment">// Reductions</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00276" data-start="{" data-end="}">
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a"> 276</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">return</span> asd::all(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span>}</div>
</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00279" data-start="{" data-end="}">
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2"> 279</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> asd::reduce_add(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span>}</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00280" data-start="{" data-end="}">
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e"> 280</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> asd::any(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span>}</div>
</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f"> 283</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">return</span> asd::reduce_max(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span>}</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00284" data-start="{" data-end="}">
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2"> 284</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">return</span> asd::reduce_add(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span>}</div>
</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00287" data-start="{" data-end="}">
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146"> 287</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> asd::reduce_min(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span>}</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00288" data-start="{" data-end="}">
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f"> 288</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> asd::reduce_max(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span>}</div>
</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00292" data-start="{" data-end="}">
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c"> 292</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">auto</span> ptr = (T*)&amp;x;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">auto</span> lhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">auto</span> rhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr + <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(lhs * rhs);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span>}</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146"> 292</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">return</span> asd::reduce_min(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span>}</div>
</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor">#if __ARM_FEATURE_FP16_VECTOR_ARITHMETIC</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="preprocessor">#include &quot;<a class="code" href="accelerate__fp16__simd_8h.html">mlx/backend/cpu/simd/accelerate_fp16_simd.h</a>&quot;</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00297" data-start="{" data-end="}">
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c"> 297</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">auto</span> ptr = (T*)&amp;x;</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">auto</span> lhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr);</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">auto</span> rhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr + <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(lhs * rhs);</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span>}</div>
</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> </div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="preprocessor">#if __ARM_FEATURE_FP16_VECTOR_ARITHMETIC</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="preprocessor">#include &quot;<a class="code" href="accelerate__fp16__simd_8h.html">mlx/backend/cpu/simd/accelerate_fp16_simd.h</a>&quot;</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aaccelerate__fp16__simd_8h_html"><div class="ttname"><a href="accelerate__fp16__simd_8h.html">accelerate_fp16_simd.h</a></div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_a3b449b9ce2c623ab4dce3f6fe349bb6d"><div class="ttname"><a href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a></div><div class="ttdeci">#define SIMD_DEFAULT_UNARY(name, op)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:106</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_a9aa795d90ddc485f24cd4a5268fe0e82"><div class="ttname"><a href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a></div><div class="ttdeci">#define SIMD_DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:151</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_aca22aa431d399cea13c969926689b459"><div class="ttname"><a href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define SIMD_DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:177</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_a9aa795d90ddc485f24cd4a5268fe0e82"><div class="ttname"><a href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a></div><div class="ttdeci">#define SIMD_DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:156</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_aca22aa431d399cea13c969926689b459"><div class="ttname"><a href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define SIMD_DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:182</div></div>
<div class="ttc" id="abase__simd_8h_html"><div class="ttname"><a href="base__simd_8h.html">base_simd.h</a></div></div>
<div class="ttc" id="amath_8h_html"><div class="ttname"><a href="math_8h.html">math.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:146</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a09a2f3f2bc999c16babf3d8d90994d6e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; sinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:41</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a18d330fd2c7360b2890a722232ba35b7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:34</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:210</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:215</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:297</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a290787dda17296d27af7afdef3c732a9"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9">mlx::core::simd::operator~</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator~(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a3cb6ea94836e999c07329b34c501ed85"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log10(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:39</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a400d89d040f43d471b306a8e8bdb3974"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">mlx::core::simd::rint</a></div><div class="ttdeci">Simd&lt; T, N &gt; rint(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:127</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a445ddc4ed928656df64d889942588cfd"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f3cc8b2493586e83fd65640df3b60ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a></div><div class="ttdeci">Simd&lt; T, N &gt; abs(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:112</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:271</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:279</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:276</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:284</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:283</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a745e05627c77152ec13d8d90c19cc9bf"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">mlx::core::simd::operator!</a></div><div class="ttdeci">Simd&lt; bool, N &gt; operator!(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:147</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:204</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:288</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a745e05627c77152ec13d8d90c19cc9bf"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">mlx::core::simd::operator!</a></div><div class="ttdeci">Simd&lt; bool, N &gt; operator!(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:152</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:209</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8e22c484298d9af10b6604c835e52052"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a></div><div class="ttdeci">Simd&lt; T, N &gt; floor(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:113</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:275</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:280</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:269</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:287</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae1d5460c58c507a0104d8dfa90343f12"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a></div><div class="ttdeci">Simd&lt; T, N &gt; ceil(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae344abefc91c7d9c0a9506c868a84d61"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">mlx::core::simd::recip</a></div><div class="ttdeci">Simd&lt; T, N &gt; recip(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:131</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae39b8e1d1fff94947406eeb8ec6e0414"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; sqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:129</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:259</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aea75ddf8c696efc2e5e924667ed48e70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; rsqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:130</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:236</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4_html_a3d47d5ad1ff8981bd9876a5fc1870174"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html#a3d47d5ad1ff8981bd9876a5fc1870174">mlx::core::simd::ScalarT&lt; bool, N &gt;::v</a></div><div class="ttdeci">char v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:39</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4_html_aa36db163e4909aea98b7129764184801"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html#aa36db163e4909aea98b7129764184801">mlx::core::simd::ScalarT&lt; int64_t, N &gt;::v</a></div><div class="ttdeci">long v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:51</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4_html_af2775b07509324182bd715aac65b7eb0"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html#af2775b07509324182bd715aac65b7eb0">mlx::core::simd::ScalarT&lt; int8_t, N &gt;::v</a></div><div class="ttdeci">char v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:43</div></div>

View File

@ -134,57 +134,58 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_0_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html" target="_self">BitwiseAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_20_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_21_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html" target="_self">InTracing</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_retain_graph.html" target="_self">RetainGraph</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html" target="_self">BitwiseInvert</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_20_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_21_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_22_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html" target="_self">InTracing</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_retain_graph.html" target="_self">RetainGraph</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_2_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed.html" target="_self">distributed</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_2_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1detail_1_1_group_impl.html" target="_self">GroupImpl</a></td><td class="desc">Abstract base class of a distributed group implementation </td></tr>
@ -256,124 +257,127 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_0_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_strided.html" target="_self">AsStrided</a></td><td class="desc"></td></tr>
<tr id="row_1_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_type.html" target="_self">AsType</a></td><td class="desc"></td></tr>
<tr id="row_1_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html" target="_self">BitwiseBinary</a></td><td class="desc"></td></tr>
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast_axes.html" target="_self">BroadcastAxes</a></td><td class="desc"></td></tr>
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_34_" class="arrow" onclick="dynsection.toggleFolder('1_0_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice.html" target="_self">DynamicSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice_update.html" target="_self">DynamicSliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expand_dims.html" target="_self">ExpandDims</a></td><td class="desc"></td></tr>
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_fence.html" target="_self">Fence</a></td><td class="desc"></td></tr>
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1finfo.html" target="_self">finfo</a></td><td class="desc">Holds information about floating-point types </td></tr>
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_flatten.html" target="_self">Flatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_66_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_function_exporter.html" target="_self">FunctionExporter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_axis.html" target="_self">GatherAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_imported_function.html" target="_self">ImportedFunction</a></td><td class="desc"></td></tr>
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_jit_compiler.html" target="_self">JitCompiler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html" target="_self">numeric_limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float_01_4.html" target="_self">numeric_limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html" target="_self">numeric_limits&lt; float16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_scalar_vector.html" target="_self">ScalarVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter_axis.html" target="_self">ScatterAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_126_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
<tr id="row_1_0_127_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_128_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
<tr id="row_1_0_129_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_130_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_131_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_squeeze.html" target="_self">Squeeze</a></td><td class="desc"></td></tr>
<tr id="row_1_0_132_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
<tr id="row_1_0_133_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
<tr id="row_1_0_134_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_135_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_136_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
<tr id="row_1_0_137_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_138_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_139_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
<tr id="row_1_0_140_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_141_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_142_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unflatten.html" target="_self">Unflatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_143_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_scalar.html" target="_self">VectorScalar</a></td><td class="desc"></td></tr>
<tr id="row_1_0_144_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_vector.html" target="_self">VectorVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_145_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html" target="_self">BitwiseInvert</a></td><td class="desc"></td></tr>
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast_axes.html" target="_self">BroadcastAxes</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_35_" class="arrow" onclick="dynsection.toggleFolder('1_0_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice.html" target="_self">DynamicSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice_update.html" target="_self">DynamicSliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expand_dims.html" target="_self">ExpandDims</a></td><td class="desc"></td></tr>
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_fence.html" target="_self">Fence</a></td><td class="desc"></td></tr>
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1finfo.html" target="_self">finfo</a></td><td class="desc">Holds information about floating-point types </td></tr>
<tr id="row_1_0_66_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_flatten.html" target="_self">Flatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_function_exporter.html" target="_self">FunctionExporter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_axis.html" target="_self">GatherAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_imported_function.html" target="_self">ImportedFunction</a></td><td class="desc"></td></tr>
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_jit_compiler.html" target="_self">JitCompiler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_l_u_f.html" target="_self">LUF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html" target="_self">numeric_limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01double_01_4.html" target="_self">numeric_limits&lt; double &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float_01_4.html" target="_self">numeric_limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html" target="_self">numeric_limits&lt; float16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_scalar_vector.html" target="_self">ScalarVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter_axis.html" target="_self">ScatterAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_126_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_127_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_128_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_129_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
<tr id="row_1_0_130_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_131_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
<tr id="row_1_0_132_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_133_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_134_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_squeeze.html" target="_self">Squeeze</a></td><td class="desc"></td></tr>
<tr id="row_1_0_135_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
<tr id="row_1_0_136_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
<tr id="row_1_0_137_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_138_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_139_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
<tr id="row_1_0_140_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_141_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_142_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
<tr id="row_1_0_143_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_144_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_145_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unflatten.html" target="_self">Unflatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_146_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_scalar.html" target="_self">VectorScalar</a></td><td class="desc"></td></tr>
<tr id="row_1_0_147_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_vector.html" target="_self">VectorVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_148_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1steel.html" target="_self">steel</a></td><td class="desc"></td></tr>
<tr id="row_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_accum_helper.html" target="_self">AccumHelper</a></td><td class="desc"></td></tr>
<tr id="row_1_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_attn_params.html" target="_self">AttnParams</a></td><td class="desc"></td></tr>
@ -462,111 +466,112 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_and.html" target="_self">BitwiseAnd</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_block_merge_sort.html" target="_self">BlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionbool4__or__uint.html" target="_self">bool4_or_uint</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcomplex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html" target="_self">ConditionalType&lt; true, T, U &gt;</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_max.html" target="_self">CumMax</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_min.html" target="_self">CumMin</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd</a></td><td class="desc"></td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_sum.html" target="_self">CumSum</a></td><td class="desc"></td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_op.html" target="_self">DivOp</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_37_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_39_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_exp_sub_op.html" target="_self">ExpSubOp</a></td><td class="desc"></td></tr>
<tr id="row_41_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor_divide.html" target="_self">FloorDivide</a></td><td class="desc"></td></tr>
<tr id="row_43_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_kernel.html" target="_self">GEMVKernel</a></td><td class="desc"></td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_t_kernel.html" target="_self">GEMVTKernel</a></td><td class="desc">Vector matrix multiplication </td></tr>
<tr id="row_45_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_47_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_indices.html" target="_self">Indices</a></td><td class="desc"></td></tr>
<tr id="row_49_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_merge_sort.html" target="_self">KernelMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_multi_block_merge_sort.html" target="_self">KernelMultiBlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_51_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_53_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_than.html" target="_self">LessThan</a></td><td class="desc"></td></tr>
<tr id="row_55_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01complex64__t_01_4.html" target="_self">Limits&lt; complex64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int32__t_01_4.html" target="_self">Limits&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int64__t_01_4.html" target="_self">Limits&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int8__t_01_4.html" target="_self">Limits&lt; int8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_69_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_71_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_73_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_75_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_77_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td><td class="desc"></td></tr>
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td><td class="desc"></td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max.html" target="_self">Max</a></td><td class="desc"></td></tr>
<tr id="row_81_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max_op.html" target="_self">MaxOp</a></td><td class="desc"></td></tr>
<tr id="row_83_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_min.html" target="_self">Min</a></td><td class="desc"></td></tr>
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_85_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic</a></td><td class="desc"></td></tr>
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html" target="_self">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_87_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_conv_params.html" target="_self">MLXConvParams</a></td><td class="desc"></td></tr>
<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_mul_op.html" target="_self">MulOp</a></td><td class="desc"></td></tr>
<tr id="row_89_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_91_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_none.html" target="_self">None</a></td><td class="desc"></td></tr>
<tr id="row_93_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_or.html" target="_self">Or</a></td><td class="desc"></td></tr>
<tr id="row_95_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_prod.html" target="_self">Prod</a></td><td class="desc"></td></tr>
<tr id="row_97_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_quantized_block_loader.html" target="_self">QuantizedBlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_read_writer.html" target="_self">ReadWriter</a></td><td class="desc"></td></tr>
<tr id="row_99_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_101_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_103_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_scale_op.html" target="_self">ScaleOp</a></td><td class="desc"></td></tr>
<tr id="row_105_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_107_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_109_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_111_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sub_op.html" target="_self">SubOp</a></td><td class="desc"></td></tr>
<tr id="row_113_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sum.html" target="_self">Sum</a></td><td class="desc"></td></tr>
<tr id="row_115_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sum_op.html" target="_self">SumOp</a></td><td class="desc"></td></tr>
<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_117_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_thread_pool.html" target="_self">ThreadPool</a></td><td class="desc"></td></tr>
<tr id="row_119_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_thread_sort.html" target="_self">ThreadSort</a></td><td class="desc"></td></tr>
<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transform_scale.html" target="_self">TransformScale</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_invert.html" target="_self">BitwiseInvert</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_or.html" target="_self">BitwiseOr</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bitwise_xor.html" target="_self">BitwiseXor</a></td><td class="desc"></td></tr>
<tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_block_merge_sort.html" target="_self">BlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionbool4__or__uint.html" target="_self">bool4_or_uint</a></td><td class="desc"></td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcomplex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html" target="_self">ConditionalType&lt; true, T, U &gt;</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_max.html" target="_self">CumMax</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_min.html" target="_self">CumMin</a></td><td class="desc"></td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_sum.html" target="_self">CumSum</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_op.html" target="_self">DivOp</a></td><td class="desc"></td></tr>
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_37_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_39_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_41_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_exp_sub_op.html" target="_self">ExpSubOp</a></td><td class="desc"></td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
<tr id="row_43_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_floor_divide.html" target="_self">FloorDivide</a></td><td class="desc"></td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_kernel.html" target="_self">GEMVKernel</a></td><td class="desc"></td></tr>
<tr id="row_45_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_e_m_v_t_kernel.html" target="_self">GEMVTKernel</a></td><td class="desc">Vector matrix multiplication </td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_47_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_49_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_indices.html" target="_self">Indices</a></td><td class="desc"></td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_merge_sort.html" target="_self">KernelMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_51_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_kernel_multi_block_merge_sort.html" target="_self">KernelMultiBlockMergeSort</a></td><td class="desc"></td></tr>
<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_53_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_55_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_than.html" target="_self">LessThan</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits</a></td><td class="desc"></td></tr>
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01complex64__t_01_4.html" target="_self">Limits&lt; complex64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int32__t_01_4.html" target="_self">Limits&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int64__t_01_4.html" target="_self">Limits&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int8__t_01_4.html" target="_self">Limits&lt; int8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_69_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_71_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_73_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_75_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_77_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc</a></td><td class="desc"></td></tr>
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td><td class="desc"></td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td><td class="desc"></td></tr>
<tr id="row_81_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max.html" target="_self">Max</a></td><td class="desc"></td></tr>
<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_83_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max_op.html" target="_self">MaxOp</a></td><td class="desc"></td></tr>
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_min.html" target="_self">Min</a></td><td class="desc"></td></tr>
<tr id="row_85_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic</a></td><td class="desc"></td></tr>
<tr id="row_87_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html" target="_self">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_conv_params.html" target="_self">MLXConvParams</a></td><td class="desc"></td></tr>
<tr id="row_89_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_mul_op.html" target="_self">MulOp</a></td><td class="desc"></td></tr>
<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_91_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_93_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_none.html" target="_self">None</a></td><td class="desc"></td></tr>
<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_95_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_or.html" target="_self">Or</a></td><td class="desc"></td></tr>
<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_97_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_prod.html" target="_self">Prod</a></td><td class="desc"></td></tr>
<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_quantized_block_loader.html" target="_self">QuantizedBlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_99_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_read_writer.html" target="_self">ReadWriter</a></td><td class="desc"></td></tr>
<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_101_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_103_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_105_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_scale_op.html" target="_self">ScaleOp</a></td><td class="desc"></td></tr>
<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_107_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_109_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_111_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_113_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sub_op.html" target="_self">SubOp</a></td><td class="desc"></td></tr>
<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_115_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sum.html" target="_self">Sum</a></td><td class="desc"></td></tr>
<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sum_op.html" target="_self">SumOp</a></td><td class="desc"></td></tr>
<tr id="row_117_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_119_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_thread_pool.html" target="_self">ThreadPool</a></td><td class="desc"></td></tr>
<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_thread_sort.html" target="_self">ThreadSort</a></td><td class="desc"></td></tr>
<tr id="row_121_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transform_scale.html" target="_self">TransformScale</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@ -29,6 +29,7 @@ var annotated_dup =
[ "ArcTan2", "structmlx_1_1core_1_1detail_1_1_arc_tan2.html", "structmlx_1_1core_1_1detail_1_1_arc_tan2" ],
[ "ArcTanh", "structmlx_1_1core_1_1detail_1_1_arc_tanh.html", "structmlx_1_1core_1_1detail_1_1_arc_tanh" ],
[ "BitwiseAnd", "structmlx_1_1core_1_1detail_1_1_bitwise_and.html", "structmlx_1_1core_1_1detail_1_1_bitwise_and" ],
[ "BitwiseInvert", "structmlx_1_1core_1_1detail_1_1_bitwise_invert.html", "structmlx_1_1core_1_1detail_1_1_bitwise_invert" ],
[ "BitwiseOr", "structmlx_1_1core_1_1detail_1_1_bitwise_or.html", "structmlx_1_1core_1_1detail_1_1_bitwise_or" ],
[ "BitwiseXor", "structmlx_1_1core_1_1detail_1_1_bitwise_xor.html", "structmlx_1_1core_1_1detail_1_1_bitwise_xor" ],
[ "Ceil", "structmlx_1_1core_1_1detail_1_1_ceil.html", "structmlx_1_1core_1_1detail_1_1_ceil" ],
@ -156,6 +157,7 @@ var annotated_dup =
[ "AsStrided", "classmlx_1_1core_1_1_as_strided.html", "classmlx_1_1core_1_1_as_strided" ],
[ "AsType", "classmlx_1_1core_1_1_as_type.html", "classmlx_1_1core_1_1_as_type" ],
[ "BitwiseBinary", "classmlx_1_1core_1_1_bitwise_binary.html", "classmlx_1_1core_1_1_bitwise_binary" ],
[ "BitwiseInvert", "classmlx_1_1core_1_1_bitwise_invert.html", "classmlx_1_1core_1_1_bitwise_invert" ],
[ "BlockMaskedMM", "classmlx_1_1core_1_1_block_masked_m_m.html", "classmlx_1_1core_1_1_block_masked_m_m" ],
[ "Broadcast", "classmlx_1_1core_1_1_broadcast.html", "classmlx_1_1core_1_1_broadcast" ],
[ "BroadcastAxes", "classmlx_1_1core_1_1_broadcast_axes.html", "classmlx_1_1core_1_1_broadcast_axes" ],
@ -216,6 +218,7 @@ var annotated_dup =
[ "LogicalAnd", "classmlx_1_1core_1_1_logical_and.html", "classmlx_1_1core_1_1_logical_and" ],
[ "LogicalNot", "classmlx_1_1core_1_1_logical_not.html", "classmlx_1_1core_1_1_logical_not" ],
[ "LogicalOr", "classmlx_1_1core_1_1_logical_or.html", "classmlx_1_1core_1_1_logical_or" ],
[ "LUF", "classmlx_1_1core_1_1_l_u_f.html", "classmlx_1_1core_1_1_l_u_f" ],
[ "Matmul", "classmlx_1_1core_1_1_matmul.html", "classmlx_1_1core_1_1_matmul" ],
[ "Maximum", "classmlx_1_1core_1_1_maximum.html", "classmlx_1_1core_1_1_maximum" ],
[ "Minimum", "classmlx_1_1core_1_1_minimum.html", "classmlx_1_1core_1_1_minimum" ],
@ -226,6 +229,7 @@ var annotated_dup =
[ "NumberOfElements", "classmlx_1_1core_1_1_number_of_elements.html", "classmlx_1_1core_1_1_number_of_elements" ],
[ "numeric_limits", "structmlx_1_1core_1_1numeric__limits.html", null ],
[ "numeric_limits< bfloat16_t >", "structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html", "structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4" ],
[ "numeric_limits< double >", "structmlx_1_1core_1_1numeric__limits_3_01double_01_4.html", null ],
[ "numeric_limits< float >", "structmlx_1_1core_1_1numeric__limits_3_01float_01_4.html", null ],
[ "numeric_limits< float16_t >", "structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html", "structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4" ],
[ "Pad", "classmlx_1_1core_1_1_pad.html", "classmlx_1_1core_1_1_pad" ],
@ -365,6 +369,7 @@ var annotated_dup =
[ "ArcTan2", "struct_arc_tan2.html", "struct_arc_tan2" ],
[ "ArcTanh", "struct_arc_tanh.html", "struct_arc_tanh" ],
[ "BitwiseAnd", "struct_bitwise_and.html", "struct_bitwise_and" ],
[ "BitwiseInvert", "struct_bitwise_invert.html", "struct_bitwise_invert" ],
[ "BitwiseOr", "struct_bitwise_or.html", "struct_bitwise_or" ],
[ "BitwiseXor", "struct_bitwise_xor.html", "struct_bitwise_xor" ],
[ "BlockMergeSort", "struct_block_merge_sort.html", "struct_block_merge_sort" ],

View File

@ -368,448 +368,461 @@ $(function(){initNavTree('array_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> };</div>
</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span></div>
<div class="foldopen" id="foldopen00247" data-start="{" data-end="}">
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c"> 247</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> *(array_desc_-&gt;primitive);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2"> 249</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2">array</a>(</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>,</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>,</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> deleter = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span></div>
<div class="foldopen" id="foldopen00259" data-start="{" data-end="}">
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c"> 259</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">return</span> *(array_desc_-&gt;primitive);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span></div>
<div class="foldopen" id="foldopen00252" data-start="{" data-end="}">
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469"> 252</a></span> std::shared_ptr&lt;Primitive&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">primitive_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> }</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span></div>
<div class="foldopen" id="foldopen00264" data-start="{" data-end="}">
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469"> 264</a></span> std::shared_ptr&lt;Primitive&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">primitive_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> }</div>
</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span></div>
<div class="foldopen" id="foldopen00257" data-start="{" data-end="}">
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1"> 257</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">has_primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive != <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> }</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span></div>
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1"> 269</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">has_primitive</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> array_desc_-&gt;primitive != <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> }</div>
</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span></div>
<div class="foldopen" id="foldopen00262" data-start="{" data-end="}">
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff"> 262</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> }</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span></div>
<div class="foldopen" id="foldopen00274" data-start="{" data-end="}">
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff"> 274</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> }</div>
</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="foldopen" id="foldopen00266" data-start="{" data-end="}">
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f"> 266</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">inputs</a>() {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> }</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
<div class="foldopen" id="foldopen00278" data-start="{" data-end="}">
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f"> 278</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">inputs</a>() {</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">return</span> array_desc_-&gt;inputs;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> }</div>
</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span></div>
<div class="foldopen" id="foldopen00271" data-start="{" data-end="}">
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087"> 271</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> array_desc_.use_count() == 1 &amp;&amp; (array_desc_-&gt;data.use_count() == 1);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> }</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span></div>
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087"> 283</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">return</span> array_desc_.use_count() == 1 &amp;&amp; (array_desc_-&gt;data.use_count() == 1);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> }</div>
</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span></div>
<div class="foldopen" id="foldopen00276" data-start="{" data-end="}">
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d"> 276</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> }</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span></div>
<div class="foldopen" id="foldopen00288" data-start="{" data-end="}">
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d"> 288</a></span> <span class="keyword">const</span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> }</div>
</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span></div>
<div class="foldopen" id="foldopen00281" data-start="{" data-end="}">
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c"> 281</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">siblings</a>() {</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> }</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span></div>
<div class="foldopen" id="foldopen00293" data-start="{" data-end="}">
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c"> 293</a></span> std::vector&lt;array&gt;&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">siblings</a>() {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">return</span> array_desc_-&gt;siblings;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> }</div>
</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
<div class="foldopen" id="foldopen00285" data-start="{" data-end="}">
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1"> 285</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">set_siblings</a>(std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>, uint16_t position) {</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> array_desc_-&gt;siblings = std::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> array_desc_-&gt;position = position;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> }</div>
</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span></div>
<div class="foldopen" id="foldopen00292" data-start="{" data-end="}">
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289"> 292</a></span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">auto</span> idx = array_desc_-&gt;position;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.reserve(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() + 1);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.push_back(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>());</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="foldopen" id="foldopen00297" data-start="{" data-end="}">
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1"> 297</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">set_siblings</a>(std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>, uint16_t position) {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> array_desc_-&gt;siblings = std::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>);</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> array_desc_-&gt;position = position;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> }</div>
</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2"> 303</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">detach</a>();</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span></div>
<div class="foldopen" id="foldopen00306" data-start="{" data-end="}">
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1"> 306</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">return</span> array_desc_-&gt;flags;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> }</div>
<div class="foldopen" id="foldopen00304" data-start="{" data-end="}">
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289"> 304</a></span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">auto</span> idx = array_desc_-&gt;position;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> std::vector&lt;array&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.reserve(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() + 1);</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx);</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.push_back(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.insert(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>.end(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() + idx, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>().<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>());</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>;</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> }</div>
</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span></div>
<div class="foldopen" id="foldopen00320" data-start="{" data-end="}">
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd"> 320</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">return</span> array_desc_-&gt;data_size;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2"> 315</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">detach</a>();</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span></div>
<div class="foldopen" id="foldopen00318" data-start="{" data-end="}">
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1"> 318</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">return</span> array_desc_-&gt;flags;</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> }</div>
</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="foldopen" id="foldopen00324" data-start="{" data-end="}">
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08"> 324</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>() {</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> }</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span></div>
<div class="foldopen" id="foldopen00332" data-start="{" data-end="}">
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd"> 332</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">return</span> array_desc_-&gt;data_size;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
</div>
<div class="foldopen" id="foldopen00327" data-start="{" data-end="}">
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd"> 327</a></span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">buffer</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
<div class="foldopen" id="foldopen00336" data-start="{" data-end="}">
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08"> 336</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>() {</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
<div class="foldopen" id="foldopen00331" data-start="{" data-end="}">
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd"> 331</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">allocator::allocator</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>());</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> }</div>
<div class="foldopen" id="foldopen00339" data-start="{" data-end="}">
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd"> 339</a></span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">buffer</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">return</span> array_desc_-&gt;data-&gt;buffer;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> }</div>
</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <span class="comment">// Return a copy of the shared pointer</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// to the array::Data struct</span></div>
<div class="foldopen" id="foldopen00337" data-start="{" data-end="}">
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141"> 337</a></span> std::shared_ptr&lt;Data&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">data_shared_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keywordflow">return</span> array_desc_-&gt;data;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> }</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="foldopen" id="foldopen00343" data-start="{" data-end="}">
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd"> 343</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">allocator::allocator</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>());</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> }</div>
</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// Return a raw pointer to the arrays data</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00342" data-start="{" data-end="}">
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95"> 342</a></span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>() {</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> }</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="comment">// Return a copy of the shared pointer</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// to the array::Data struct</span></div>
<div class="foldopen" id="foldopen00349" data-start="{" data-end="}">
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141"> 349</a></span> std::shared_ptr&lt;Data&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">data_shared_ptr</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keywordflow">return</span> array_desc_-&gt;data;</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> }</div>
</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00347" data-start="{" data-end="}">
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676"> 347</a></span> <span class="keyword">const</span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">data</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Return a raw pointer to the arrays data</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00354" data-start="{" data-end="}">
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95"> 354</a></span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>() {</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> }</div>
</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="foldopen" id="foldopen00351" data-start="{" data-end="};">
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078"> 351</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> {</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// The ouptut of a computation which has not been scheduled.</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="comment">// For example, the status of `x` in `auto x = a + b`.</span></div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"> 354</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">unscheduled</a>,</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// The ouptut of a computation which has been scheduled but `eval_*` has</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// not yet been called on the array&#39;s primitive. A possible</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="comment">// status of `x` in `auto x = a + b; eval(x);`</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"> 359</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">scheduled</a>,</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> </div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="comment">// The array&#39;s `eval_*` function has been run, but the computation is not</span></div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="comment">// necessarily complete. The array will have memory allocated and if it is</span></div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// not a tracer then it will be detached from the graph.</span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"> 364</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">evaluated</a>,</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// If the array is the output of a computation then the computation</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// is complete. Constant arrays are always available (e.g. `array({1, 2,</span></div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="comment">// 3})`)</span></div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"> 369</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">available</a></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> };</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00359" data-start="{" data-end="}">
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676"> 359</a></span> <span class="keyword">const</span> T* <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">data</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T*<span class="keyword">&gt;</span>(array_desc_-&gt;data_ptr);</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> }</div>
</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// Check if the array is safe to read.</span></div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40"> 373</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">is_available</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <span class="comment">// Wait on the array to be available. After this `is_available` returns</span></div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// `true`.</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e"> 377</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">wait</a>();</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="foldopen" id="foldopen00379" data-start="{" data-end="}">
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad"> 379</a></span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> array_desc_-&gt;status;</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> }</div>
</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="foldopen" id="foldopen00383" data-start="{" data-end="}">
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c"> 383</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">set_status</a>(<a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> s)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> array_desc_-&gt;status = s;</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> }</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> </div>
<div class="foldopen" id="foldopen00363" data-start="{" data-end="};">
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078"> 363</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> {</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// The ouptut of a computation which has not been scheduled.</span></div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// For example, the status of `x` in `auto x = a + b`.</span></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"> 366</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">unscheduled</a>,</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="comment">// The ouptut of a computation which has been scheduled but `eval_*` has</span></div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// not yet been called on the array&#39;s primitive. A possible</span></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// status of `x` in `auto x = a + b; eval(x);`</span></div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"> 371</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">scheduled</a>,</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="comment">// The array&#39;s `eval_*` function has been run, but the computation is not</span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// necessarily complete. The array will have memory allocated and if it is</span></div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <span class="comment">// not a tracer then it will be detached from the graph.</span></div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"> 376</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">evaluated</a>,</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> </div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="comment">// If the array is the output of a computation then the computation</span></div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="comment">// is complete. Constant arrays are always available (e.g. `array({1, 2,</span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="comment">// 3})`)</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"> 381</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">available</a></div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> };</div>
</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="comment">// Check if the array is safe to read.</span></div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40"> 385</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">is_available</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> </div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="comment">// Get the array&#39;s shared event</span></div>
<div class="foldopen" id="foldopen00388" data-start="{" data-end="}">
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf"> 388</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <span class="keywordflow">return</span> array_desc_-&gt;event;</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> }</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="comment">// Wait on the array to be available. After this `is_available` returns</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="comment">// `true`.</span></div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e"> 389</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">wait</a>();</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
<div class="foldopen" id="foldopen00391" data-start="{" data-end="}">
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad"> 391</a></span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">return</span> array_desc_-&gt;status;</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> }</div>
</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="comment">// Attach an event to a not yet evaluated array</span></div>
<div class="foldopen" id="foldopen00393" data-start="{" data-end="}">
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da"> 393</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">attach_event</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> e)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> array_desc_-&gt;event = std::move(e);</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> }</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
<div class="foldopen" id="foldopen00395" data-start="{" data-end="}">
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c"> 395</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">set_status</a>(<a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> s)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> array_desc_-&gt;status = s;</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> }</div>
</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="comment">// Mark the array as a tracer array (true) or not.</span></div>
<div class="foldopen" id="foldopen00398" data-start="{" data-end="}">
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8"> 398</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">set_tracer</a>(<span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>) {</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> array_desc_-&gt;is_tracer = <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>;</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> }</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <span class="comment">// Get the array&#39;s shared event</span></div>
<div class="foldopen" id="foldopen00400" data-start="{" data-end="}">
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf"> 400</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keywordflow">return</span> array_desc_-&gt;event;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> }</div>
</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="comment">// Check if the array is a tracer array</span></div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c"> 402</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> </div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f"> 404</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>, <a class="code hl_typedef" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838"> 406</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838">set_data</a>(</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>,</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b"> 413</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">copy_shared_buffer</a>(</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other,</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29"> 420</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">copy_shared_buffer</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other);</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> </div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8"> 422</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">move_shared_buffer</a>(</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a> other,</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> </div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78"> 429</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">move_shared_buffer</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a> other);</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="foldopen" id="foldopen00431" data-start="{" data-end="}">
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387"> 431</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">overwrite_descriptor</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other) {</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> array_desc_ = other.array_desc_;</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> }</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="comment">// Attach an event to a not yet evaluated array</span></div>
<div class="foldopen" id="foldopen00405" data-start="{" data-end="}">
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da"> 405</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">attach_event</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> e)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> array_desc_-&gt;event = std::move(e);</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> }</div>
</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2"> 435</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">~array</a>();</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> </div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="comment">// Initialize the arrays data</span></div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <span class="keywordtype">void</span> init(<span class="keyword">const</span> It src);</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">struct </span>ArrayDesc {</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>;</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>;</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>;</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> std::shared_ptr&lt;Primitive&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>;</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// Mark the array as a tracer array (true) or not.</span></div>
<div class="foldopen" id="foldopen00410" data-start="{" data-end="}">
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8"> 410</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">set_tracer</a>(<span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>) {</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> array_desc_-&gt;is_tracer = <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> }</div>
</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="comment">// Check if the array is a tracer array</span></div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c"> 414</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f"> 416</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>, <a class="code hl_typedef" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838"> 418</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838">set_data</a>(</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>,</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> d = <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b"> 425</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">copy_shared_buffer</a>(</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other,</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29"> 432</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">copy_shared_buffer</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other);</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8"> 434</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">move_shared_buffer</a>(</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a> other,</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>,</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>,</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>,</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78"> 441</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">move_shared_buffer</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a> other);</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
<div class="foldopen" id="foldopen00443" data-start="{" data-end="}">
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387"> 443</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">overwrite_descriptor</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>&amp; other) {</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> array_desc_ = other.array_desc_;</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> }</div>
</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2"> 447</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">~array</a>();</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> </div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>;</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// An event on the array used for synchronization</span></div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>;</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Initialize the arrays data</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordtype">void</span> init(<span class="keyword">const</span> It src);</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="comment">// Indicates an array is being used in a graph transform</span></div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="comment">// and should not be detached from the graph</span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="comment">// This is a shared pointer so that *different* arrays</span></div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="comment">// can share the underlying data buffer.</span></div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> std::shared_ptr&lt;Data&gt; data;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> </div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <span class="comment">// Properly offset data pointer</span></div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordtype">void</span>* data_ptr{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> </div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="comment">// The size in elements of the data buffer the array accesses</span></div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordtype">size_t</span> data_size;</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="comment">// Contains useful meta data about the array</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> Flags flags;</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> </div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> std::vector&lt;array&gt; inputs;</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="comment">// An array to keep track of the siblings from a multi-output</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="comment">// primitive.</span></div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> std::vector&lt;array&gt; siblings;</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="comment">// The arrays position in the output list</span></div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> uint32_t position{0};</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> </div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">explicit</span> ArrayDesc(<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, Dtype dtype);</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="keyword">struct </span>ArrayDesc {</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>;</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>;</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>;</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>;</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> std::shared_ptr&lt;Primitive&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>;</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> </div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> </div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="comment">// An event on the array used for synchronization</span></div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="comment">// Indicates an array is being used in a graph transform</span></div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> <span class="comment">// and should not be detached from the graph</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> </div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <span class="comment">// This is a shared pointer so that *different* arrays</span></div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="comment">// can share the underlying data buffer.</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> std::shared_ptr&lt;Data&gt; data;</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> </div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// Properly offset data pointer</span></div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="keywordtype">void</span>* data_ptr{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> </div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="comment">// The size in elements of the data buffer the array accesses</span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keywordtype">size_t</span> data_size;</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> </div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">explicit</span> ArrayDesc(</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape,</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> Dtype dtype,</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> std::shared_ptr&lt;Primitive&gt; primitive,</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> std::vector&lt;array&gt; inputs);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> ~ArrayDesc();</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> </div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="comment">// Initialize size, strides, and other metadata</span></div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="keywordtype">void</span> init();</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> };</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> </div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <span class="comment">// The ArrayDesc contains the details of the materialized array including the</span></div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="comment">// shape, strides, the data type. It also includes</span></div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="comment">// the primitive which knows how to compute the array&#39;s data from its inputs</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="comment">// and the list of array&#39;s inputs for the primitive.</span></div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> std::shared_ptr&lt;ArrayDesc&gt; array_desc_;</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span>};</div>
</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// Contains useful meta data about the array</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> Flags flags;</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> std::vector&lt;array&gt; inputs;</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <span class="comment">// An array to keep track of the siblings from a multi-output</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="comment">// primitive.</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> std::vector&lt;array&gt; siblings;</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="comment">// The arrays position in the output list</span></div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> uint32_t position{0};</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="keyword">explicit</span> ArrayDesc(<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, Dtype dtype);</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">explicit</span> ArrayDesc(</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape,</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> Dtype dtype,</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> std::shared_ptr&lt;Primitive&gt; primitive,</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> std::vector&lt;array&gt; inputs);</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> </div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> ~ArrayDesc();</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> </div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00501" data-start="{" data-end="}">
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232"> 501</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(T val, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>{}, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> init(&amp;val);</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span>}</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="comment">// Initialize size, strides, and other metadata</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <span class="keywordtype">void</span> init();</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> };</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> </div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// The ArrayDesc contains the details of the materialized array including the</span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="comment">// shape, strides, the data type. It also includes</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="comment">// the primitive which knows how to compute the array&#39;s data from its inputs</span></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="comment">// and the list of array&#39;s inputs for the primitive.</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> std::shared_ptr&lt;ArrayDesc&gt; array_desc_;</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span>};</div>
</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="foldopen" id="foldopen00507" data-start="{" data-end="}">
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#abcc030a1c2434ec75ad9425751bffdc7"> 507</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> It <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>,</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;typename std::iterator_traits&lt;It&gt;::value_type&gt;() */</span>) :</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>);</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span>}</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00513" data-start="{" data-end="}">
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232"> 513</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(T val, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>{}, <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> init(&amp;val);</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span>}</div>
</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> </div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00516" data-start="{" data-end="}">
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00"> 516</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>{static_cast&lt;<a class="code hl_typedef" href="namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e">ShapeElem</a>&gt;(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>())},</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span>}</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="foldopen" id="foldopen00519" data-start="{" data-end="}">
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#abcc030a1c2434ec75ad9425751bffdc7"> 519</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> It <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>,</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;typename std::iterator_traits&lt;It&gt;::value_type&gt;() */</span>) :</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>);</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span>}</div>
</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> </div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00526" data-start="{" data-end="}">
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a89a7b0c02366ca456232d347ebb11507"> 526</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>,</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.size() != <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>()) {</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="stringliteral">&quot;Data size and provided shape mismatch in array construction.&quot;</span>);</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> }</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span>}</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> </div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00528" data-start="{" data-end="}">
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00"> 528</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>{static_cast&lt;<a class="code hl_typedef" href="namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e">ShapeElem</a>&gt;(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>())},</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span>}</div>
</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> </div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00539" data-start="{" data-end="}">
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99"> 539</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>() {</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> }</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span>}</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00538" data-start="{" data-end="}">
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a89a7b0c02366ca456232d347ebb11507"> 538</a></span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array::array</a>(</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> std::initializer_list&lt;T&gt; <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>,</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>,</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a> <span class="comment">/* = TypeToDtype&lt;T&gt;() */</span>)</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> : array_desc_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::make_shared&lt;ArrayDesc&gt;(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>)) {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.size() != <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>()) {</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="stringliteral">&quot;Data size and provided shape mismatch in array construction.&quot;</span>);</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> }</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> init(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>.begin());</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>}</div>
</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00548" data-start="{" data-end="}">
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7"> 548</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> }</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>() == <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">Status::unscheduled</a>) {</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="stringliteral">&quot;item() const can only be called on evaled arrays&quot;</span>);</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> }</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keyword">const_cast&lt;</span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span>}</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> </div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00551" data-start="{" data-end="}">
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99"> 551</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>() {</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> }</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span>}</div>
</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span><span class="keywordtype">void</span> array::init(It src) {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">allocator::malloc</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() * <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>())));</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">switch</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">bool_</a>:</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bool&gt;</a>());</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>:</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint8_t&gt;</a>());</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>:</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint16_t&gt;</a>());</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>:</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint32_t&gt;</a>());</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>:</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint64_t&gt;</a>());</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> </div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00560" data-start="{" data-end="}">
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7"> 560</a></span>T <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">array::item</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() != 1) {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;item can only be called on arrays of size 1.&quot;</span>);</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> }</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>() == <a class="code hl_enumvalue" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">Status::unscheduled</a>) {</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">throw</span> std::invalid_argument(</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="stringliteral">&quot;item() const can only be called on evaled arrays&quot;</span>);</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> }</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">const_cast&lt;</span><a class="code hl_function" href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">array</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>();</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">return</span> *<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;T&gt;</a>();</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span>}</div>
</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> </div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> It&gt;</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span><span class="keywordtype">void</span> array::init(It src) {</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_function" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801">allocator::malloc</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() * <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>())));</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">switch</span> (<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">bool_</a>:</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bool&gt;</a>());</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>:</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int8_t&gt;</a>());</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>:</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint8_t&gt;</a>());</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>:</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int16_t&gt;</a>());</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>:</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint16_t&gt;</a>());</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>:</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int32_t&gt;</a>());</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>:</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint32_t&gt;</a>());</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>:</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int64_t&gt;</a>());</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>:</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;uint64_t&gt;</a>());</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>:</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float16_t&gt;</a>());</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>:</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int8_t&gt;</a>());</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float&gt;</a>());</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>:</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int16_t&gt;</a>());</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bfloat16_t&gt;</a>());</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>:</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int32_t&gt;</a>());</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;complex64_t&gt;</a>());</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>:</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;int64_t&gt;</a>());</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> }</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span>}</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> </div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="comment">/* Utilities for determining whether a template parameter is array. */</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af"> 608</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v</a> =</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> std::is_same_v&lt;std::remove_cv_t&lt;std::remove_reference_t&lt;T&gt;&gt;, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&gt;;</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> </div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda"> 612</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a> = (<a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v&lt;T&gt;</a> &amp;&amp; ...);</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> </div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114"> 615</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">enable_for_arrays_t</a> = <span class="keyword">typename</span> std::enable_if_t&lt;<a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a>&lt;T...&gt;&gt;;</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>:</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float16_t&gt;</a>());</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;float&gt;</a>());</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;double&gt;</a>());</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;bfloat16_t&gt;</a>());</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> std::copy(src, src + <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>(), <a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data&lt;complex64_t&gt;</a>());</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> }</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span>}</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> </div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="comment">/* Utilities for determining whether a template parameter is array. */</span></div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af"> 623</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v</a> =</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> std::is_same_v&lt;std::remove_cv_t&lt;std::remove_reference_t&lt;T&gt;&gt;, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&gt;;</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> </div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda"> 627</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a> = (<a class="code hl_variable" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">is_array_v&lt;T&gt;</a> &amp;&amp; ...);</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>... T&gt;</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114"> 630</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">enable_for_arrays_t</a> = <span class="keyword">typename</span> std::enable_if_t&lt;<a class="code hl_variable" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a>&lt;T...&gt;&gt;;</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> </div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_event_html"><div class="ttname"><a href="classmlx_1_1core_1_1_event.html">mlx::core::Event</a></div><div class="ttdef"><b>Definition</b> event.h:11</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html_a2adf9a9c968f113dde830cc0dc27dcc6"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">mlx::core::allocator::Allocator::size</a></div><div class="ttdeci">virtual size_t size(Buffer buffer) const =0</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html">mlx::core::allocator::Buffer</a></div><div class="ttdef"><b>Definition</b> allocator.h:12</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a000c3cfe13cb378bf0523b62816190da"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">mlx::core::array::attach_event</a></div><div class="ttdeci">void attach_event(Event e) const</div><div class="ttdef"><b>Definition</b> array.h:393</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a8e4d6e67e739a712876bb36f88f9bf"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">mlx::core::array::event</a></div><div class="ttdeci">Event &amp; event() const</div><div class="ttdef"><b>Definition</b> array.h:388</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">mlx::core::array::Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition</b> array.h:351</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">mlx::core::array::available</a></div><div class="ttdeci">@ available</div><div class="ttdef"><b>Definition</b> array.h:369</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">mlx::core::array::evaluated</a></div><div class="ttdeci">@ evaluated</div><div class="ttdef"><b>Definition</b> array.h:364</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">mlx::core::array::unscheduled</a></div><div class="ttdeci">@ unscheduled</div><div class="ttdef"><b>Definition</b> array.h:354</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">mlx::core::array::scheduled</a></div><div class="ttdeci">@ scheduled</div><div class="ttdef"><b>Definition</b> array.h:359</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a000c3cfe13cb378bf0523b62816190da"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">mlx::core::array::attach_event</a></div><div class="ttdeci">void attach_event(Event e) const</div><div class="ttdef"><b>Definition</b> array.h:405</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a8e4d6e67e739a712876bb36f88f9bf"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">mlx::core::array::event</a></div><div class="ttdeci">Event &amp; event() const</div><div class="ttdef"><b>Definition</b> array.h:400</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">mlx::core::array::Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition</b> array.h:363</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">mlx::core::array::available</a></div><div class="ttdeci">@ available</div><div class="ttdef"><b>Definition</b> array.h:381</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">mlx::core::array::evaluated</a></div><div class="ttdeci">@ evaluated</div><div class="ttdef"><b>Definition</b> array.h:376</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">mlx::core::array::unscheduled</a></div><div class="ttdeci">@ unscheduled</div><div class="ttdef"><b>Definition</b> array.h:366</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">mlx::core::array::scheduled</a></div><div class="ttdeci">@ scheduled</div><div class="ttdef"><b>Definition</b> array.h:371</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2476f987ec7a5afb7665d3b3974db0b2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2">mlx::core::array::array</a></div><div class="ttdeci">array(allocator::Buffer data, Shape shape, Dtype dtype, Strides strides, size_t data_size, Flags flags, Deleter deleter=allocator::free)</div><div class="ttdoc">Build an array from all the info held by the array description.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2820c45188071a22175e9fa42e10a49a"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">mlx::core::array::eval</a></div><div class="ttdeci">void eval()</div><div class="ttdoc">Evaluate the array.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2913abcdf71826827c8457f529825fff"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">mlx::core::array::inputs</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; inputs() const</div><div class="ttdoc">The array&#39;s inputs.</div><div class="ttdef"><b>Definition</b> array.h:262</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2913abcdf71826827c8457f529825fff"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">mlx::core::array::inputs</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; inputs() const</div><div class="ttdoc">The array&#39;s inputs.</div><div class="ttdef"><b>Definition</b> array.h:274</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a297df274e2da5cb884257bbeffd6b187"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187">mlx::core::array::array</a></div><div class="ttdeci">array(const array &amp;other)=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2c186fd527f984f0589d4183b4976289"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">mlx::core::array::outputs</a></div><div class="ttdeci">std::vector&lt; array &gt; outputs() const</div><div class="ttdoc">The outputs of the array&#39;s primitive (i.e.</div><div class="ttdef"><b>Definition</b> array.h:292</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2c186fd527f984f0589d4183b4976289"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">mlx::core::array::outputs</a></div><div class="ttdeci">std::vector&lt; array &gt; outputs() const</div><div class="ttdoc">The outputs of the array&#39;s primitive (i.e.</div><div class="ttdef"><b>Definition</b> array.h:304</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a2f16c1ef8ee248d2fba95520c86dfad2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">mlx::core::array::~array</a></div><div class="ttdeci">~array()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a38d7ad605f8282e5e49d0c09e0555c78"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a45b1c9763fe921fe5880ca28316ae98c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a45b1c9763fe921fe5880ca28316ae98c">mlx::core::array::make_arrays</a></div><div class="ttdeci">static std::vector&lt; array &gt; make_arrays(std::vector&lt; Shape &gt; shapes, const std::vector&lt; Dtype &gt; &amp;dtypes, const std::shared_ptr&lt; Primitive &gt; &amp;primitive, const std::vector&lt; array &gt; &amp;inputs)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a46642301da11e3eb4312c37349fbc9d7"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7">mlx::core::array::array</a></div><div class="ttdeci">array(std::initializer_list&lt; float &gt; data)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:271</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:283</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a485399a6680a370cabb08470306b63d4"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a485399a6680a370cabb08470306b63d4">mlx::core::array::array</a></div><div class="ttdeci">array(allocator::Buffer data, Shape shape, Dtype dtype, Deleter deleter=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5119cd616ec3c05d65878944b8889469"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">mlx::core::array::primitive_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Primitive &gt; &amp; primitive_ptr() const</div><div class="ttdoc">A shared pointer to the array&#39;s primitive.</div><div class="ttdef"><b>Definition</b> array.h:252</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5119cd616ec3c05d65878944b8889469"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">mlx::core::array::primitive_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Primitive &gt; &amp; primitive_ptr() const</div><div class="ttdoc">A shared pointer to the array&#39;s primitive.</div><div class="ttdef"><b>Definition</b> array.h:264</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a53006e77d13d9d88b525ef577748939f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">mlx::core::array::ndim</a></div><div class="ttdeci">size_t ndim() const</div><div class="ttdoc">The number of dimensions of the array.</div><div class="ttdef"><b>Definition</b> array.h:98</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:88</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5c89c2406a610b32943955f9a5060fbd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(array &amp;&amp;other) &amp;&amp;=delete</div></div>
@ -817,45 +830,45 @@ $(function(){initNavTree('array_8h_source.html',''); initResizable(true); });
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5daf64552fb450825c9b382f3a5fa2d4"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">mlx::core::array::end</a></div><div class="ttdeci">ArrayIterator end() const</div><div class="ttdef"><b>Definition</b> array.h:180</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5e1812029394bfb1a706c83611286f49"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49">mlx::core::array::array</a></div><div class="ttdeci">array(std::initializer_list&lt; int &gt; data, Dtype dtype)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a5f338202a39d37fa3f4241e851a15838"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, size_t data_size, Strides strides, Flags flags, Deleter d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a634466ce661485394f2fdc3bd6796bcd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">mlx::core::array::buffer</a></div><div class="ttdeci">const allocator::Buffer &amp; buffer() const</div><div class="ttdef"><b>Definition</b> array.h:327</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a63598018999b49f1340b183cb303f05c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">mlx::core::array::set_status</a></div><div class="ttdeci">void set_status(Status s) const</div><div class="ttdef"><b>Definition</b> array.h:383</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a634466ce661485394f2fdc3bd6796bcd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">mlx::core::array::buffer</a></div><div class="ttdeci">const allocator::Buffer &amp; buffer() const</div><div class="ttdef"><b>Definition</b> array.h:339</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a63598018999b49f1340b183cb303f05c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">mlx::core::array::set_status</a></div><div class="ttdeci">void set_status(Status s) const</div><div class="ttdef"><b>Definition</b> array.h:395</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a648592006f1c92287734ba2428eaa45e"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">mlx::core::array::wait</a></div><div class="ttdeci">void wait()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a6db4b8c28c767cc16ad2785ece496dca"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca">mlx::core::array::array</a></div><div class="ttdeci">array(const std::complex&lt; float &gt; &amp;val, Dtype dtype=complex64)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7102659be87e9ef62966696ab9b07dad"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">mlx::core::array::status</a></div><div class="ttdeci">Status status() const</div><div class="ttdef"><b>Definition</b> array.h:379</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7263f23e70a580a9bc2129fbcde36e6c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">mlx::core::array::siblings</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; siblings()</div><div class="ttdoc">The array&#39;s siblings.</div><div class="ttdef"><b>Definition</b> array.h:281</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:342</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a75fac72da3ce214fa3737df92a64b232"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">mlx::core::array::array</a></div><div class="ttdeci">array(T val, Dtype dtype=TypeToDtype&lt; T &gt;())</div><div class="ttdoc">Construct a scalar array with zero dimensions.</div><div class="ttdef"><b>Definition</b> array.h:501</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7102659be87e9ef62966696ab9b07dad"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">mlx::core::array::status</a></div><div class="ttdeci">Status status() const</div><div class="ttdef"><b>Definition</b> array.h:391</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a7263f23e70a580a9bc2129fbcde36e6c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">mlx::core::array::siblings</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; siblings()</div><div class="ttdoc">The array&#39;s siblings.</div><div class="ttdef"><b>Definition</b> array.h:293</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:354</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a75fac72da3ce214fa3737df92a64b232"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232">mlx::core::array::array</a></div><div class="ttdeci">array(T val, Dtype dtype=TypeToDtype&lt; T &gt;())</div><div class="ttdoc">Construct a scalar array with zero dimensions.</div><div class="ttdef"><b>Definition</b> array.h:513</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a76b258b169d7d73419ebbf85340fb914"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">mlx::core::array::begin</a></div><div class="ttdeci">ArrayIterator begin() const</div><div class="ttdef"><b>Definition</b> array.h:177</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a790548666511d8c6d9f92ee79d2ce14c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">mlx::core::array::primitive</a></div><div class="ttdeci">Primitive &amp; primitive() const</div><div class="ttdoc">The array&#39;s primitive.</div><div class="ttdef"><b>Definition</b> array.h:247</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a790548666511d8c6d9f92ee79d2ce14c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">mlx::core::array::primitive</a></div><div class="ttdeci">Primitive &amp; primitive() const</div><div class="ttdoc">The array&#39;s primitive.</div><div class="ttdef"><b>Definition</b> array.h:259</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a84948c29df8c957904919c8602692bd2"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">mlx::core::array::detach</a></div><div class="ttdeci">void detach()</div><div class="ttdoc">Detach the array from the graph.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a8acf2b4c75f9b7f79da6675dbc36cf36"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(const array &amp;other) &amp;&amp;=delete</div><div class="ttdoc">Assignment to rvalue does not compile.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a8fccbe7a4edfd8cca168161124e263b1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">mlx::core::array::set_siblings</a></div><div class="ttdeci">void set_siblings(std::vector&lt; array &gt; siblings, uint16_t position)</div><div class="ttdef"><b>Definition</b> array.h:285</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a90c5afddc2fa3028c0f8099bd64c8a99"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">mlx::core::array::item</a></div><div class="ttdeci">T item()</div><div class="ttdoc">Get the value from a scalar array.</div><div class="ttdef"><b>Definition</b> array.h:539</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:331</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a8fccbe7a4edfd8cca168161124e263b1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">mlx::core::array::set_siblings</a></div><div class="ttdeci">void set_siblings(std::vector&lt; array &gt; siblings, uint16_t position)</div><div class="ttdef"><b>Definition</b> array.h:297</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a90c5afddc2fa3028c0f8099bd64c8a99"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">mlx::core::array::item</a></div><div class="ttdeci">T item()</div><div class="ttdoc">Get the value from a scalar array.</div><div class="ttdef"><b>Definition</b> array.h:551</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:343</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a92974c656c35a972ad241f80584bbd29"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a95e6b156c8e05439f076b85c05079387"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">mlx::core::array::overwrite_descriptor</a></div><div class="ttdeci">void overwrite_descriptor(const array &amp;other)</div><div class="ttdef"><b>Definition</b> array.h:431</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a99fb28eeab39b9f429373f8bd7557676"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">mlx::core::array::data</a></div><div class="ttdeci">const T * data() const</div><div class="ttdef"><b>Definition</b> array.h:347</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_aa5aceab15241e7826cbaf8b8a41440c1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">mlx::core::array::has_primitive</a></div><div class="ttdeci">bool has_primitive() const</div><div class="ttdoc">Check if the array has an attached primitive or is a leaf node.</div><div class="ttdef"><b>Definition</b> array.h:257</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab3daf04c27c4593d9d73c397b8484a08"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">mlx::core::array::buffer</a></div><div class="ttdeci">allocator::Buffer &amp; buffer()</div><div class="ttdef"><b>Definition</b> array.h:324</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a95e6b156c8e05439f076b85c05079387"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">mlx::core::array::overwrite_descriptor</a></div><div class="ttdeci">void overwrite_descriptor(const array &amp;other)</div><div class="ttdef"><b>Definition</b> array.h:443</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a99fb28eeab39b9f429373f8bd7557676"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">mlx::core::array::data</a></div><div class="ttdeci">const T * data() const</div><div class="ttdef"><b>Definition</b> array.h:359</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_aa5aceab15241e7826cbaf8b8a41440c1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">mlx::core::array::has_primitive</a></div><div class="ttdeci">bool has_primitive() const</div><div class="ttdoc">Check if the array has an attached primitive or is a leaf node.</div><div class="ttdef"><b>Definition</b> array.h:269</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab3daf04c27c4593d9d73c397b8484a08"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">mlx::core::array::buffer</a></div><div class="ttdeci">allocator::Buffer &amp; buffer()</div><div class="ttdef"><b>Definition</b> array.h:336</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab6cbccbba66cc54acda4390b19f0397c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c">mlx::core::array::array</a></div><div class="ttdeci">array(array &amp;&amp;other)=default</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab84c792117e29cdf90ef3433303f6141"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">mlx::core::array::data_shared_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Data &gt; data_shared_ptr() const</div><div class="ttdef"><b>Definition</b> array.h:337</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab84c792117e29cdf90ef3433303f6141"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">mlx::core::array::data_shared_ptr</a></div><div class="ttdeci">std::shared_ptr&lt; Data &gt; data_shared_ptr() const</div><div class="ttdef"><b>Definition</b> array.h:349</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_abc26528271076510822e374d1668a94b"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#abc26528271076510822e374d1668a94b">mlx::core::array::array</a></div><div class="ttdeci">array(Shape shape, Dtype dtype, std::shared_ptr&lt; Primitive &gt; primitive, std::vector&lt; array &gt; inputs)</div><div class="ttdoc">The following methods should be used with caution.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ac50382b652f6e8fbd50d42b7ff595810"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ac50382b652f6e8fbd50d42b7ff595810">mlx::core::array::shape</a></div><div class="ttdeci">auto shape(int dim) const</div><div class="ttdoc">Get the size of the corresponding dimension.</div><div class="ttdef"><b>Definition</b> array.h:112</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ac9bfc251a9937eaefbe7f8c5ffd304d1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ac9bfc251a9937eaefbe7f8c5ffd304d1">mlx::core::array::strides</a></div><div class="ttdeci">auto strides(int dim) const</div><div class="ttdoc">Get the stride of the corresponding dimension.</div><div class="ttdef"><b>Definition</b> array.h:126</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acf80fde8f743f65ad5b4be69fcb7a74d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">mlx::core::array::siblings</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; siblings() const</div><div class="ttdoc">The array&#39;s siblings.</div><div class="ttdef"><b>Definition</b> array.h:276</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acffb082177f9b78f0c52e406adff972f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">mlx::core::array::inputs</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; inputs()</div><div class="ttdef"><b>Definition</b> array.h:266</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acf80fde8f743f65ad5b4be69fcb7a74d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">mlx::core::array::siblings</a></div><div class="ttdeci">const std::vector&lt; array &gt; &amp; siblings() const</div><div class="ttdoc">The array&#39;s siblings.</div><div class="ttdef"><b>Definition</b> array.h:288</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_acffb082177f9b78f0c52e406adff972f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">mlx::core::array::inputs</a></div><div class="ttdeci">std::vector&lt; array &gt; &amp; inputs()</div><div class="ttdef"><b>Definition</b> array.h:278</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad2814dbffa5ad174d9c97a10bf4cf26b"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad3277ff68f1336aa217f9cbe40181479"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479">mlx::core::array::operator=</a></div><div class="ttdeci">array &amp; operator=(array &amp;&amp;other) &amp;=default</div><div class="ttdoc">Default copy and move constructors otherwise.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad41cc5e7aebfcad849ad15d697584cf8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_adfa53f3f26bb0f942fb1c67ec8cd5380"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">mlx::core::array::id</a></div><div class="ttdeci">std::uintptr_t id() const</div><div class="ttdoc">A unique identifier for an array.</div><div class="ttdef"><b>Definition</b> array.h:203</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:131</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_aebed1f37c19197be76105161102a8a40"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">mlx::core::array::is_available</a></div><div class="ttdeci">bool is_available() const</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af26e6be1a9e6239471a4c24310c0c7c8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">mlx::core::array::set_tracer</a></div><div class="ttdeci">void set_tracer(bool is_tracer)</div><div class="ttdef"><b>Definition</b> array.h:398</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af26e6be1a9e6239471a4c24310c0c7c8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">mlx::core::array::set_tracer</a></div><div class="ttdeci">void set_tracer(bool is_tracer)</div><div class="ttdef"><b>Definition</b> array.h:410</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array&#39;s datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af5ad83605d4eea81561246873bee1d7c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c">mlx::core::array::primitive_id</a></div><div class="ttdeci">std::uintptr_t primitive_id() const</div><div class="ttdoc">A unique identifier for an arrays primitive.</div><div class="ttdef"><b>Definition</b> array.h:208</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9acb115019b995354d366c4ac6b968c"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">mlx::core::array::is_tracer</a></div><div class="ttdeci">bool is_tracer() const</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9e3a02b4c0023c36248dc75c887214f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, Deleter d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="adtype_8h_html"><div class="ttname"><a href="dtype_8h.html">dtype.h</a></div></div>
<div class="ttc" id="aevent_8h_html"><div class="ttname"><a href="event_8h.html">event.h</a></div></div>
<div class="ttc" id="agroup__ops_html_ga2a466024f8061febc0a64be557644cb0"><div class="ttname"><a href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a></div><div class="ttdeci">array std(const array &amp;a, bool keepdims, int ddof=0, StreamOrDevice s={})</div><div class="ttdoc">Computes the standard deviation of the elements of an array.</div></div>
@ -863,29 +876,30 @@ $(function(){initNavTree('array_8h_source.html',''); initResizable(true); });
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a77f0a1215be242db6485612bcb273af5"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">mlx::core::allocator::free</a></div><div class="ttdeci">void free(Buffer buffer)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_aa23e2f20a336d0b159c097087194634e"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">mlx::core::allocator::allocator</a></div><div class="ttdeci">Allocator &amp; allocator()</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a01b0d64a75dfa2e95d6c7b5c53d708af"><div class="ttname"><a href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">mlx::core::is_array_v</a></div><div class="ttdeci">constexpr bool is_array_v</div><div class="ttdef"><b>Definition</b> array.h:608</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a01b0d64a75dfa2e95d6c7b5c53d708af"><div class="ttname"><a href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">mlx::core::is_array_v</a></div><div class="ttdeci">constexpr bool is_array_v</div><div class="ttdef"><b>Definition</b> array.h:623</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a167cdec84c0ae62b5b299c617384346e"><div class="ttname"><a href="namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e">mlx::core::ShapeElem</a></div><div class="ttdeci">int32_t ShapeElem</div><div class="ttdef"><b>Definition</b> array.h:20</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector&lt; ShapeElem &gt; Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a79939016d0972ded7db37130da2a8b5c"><div class="ttname"><a href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a></div><div class="ttdeci">std::vector&lt; int64_t &gt; Strides</div><div class="ttdef"><b>Definition</b> array.h:22</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a94c1057929b390e5613304afa16dfbda"><div class="ttname"><a href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">mlx::core::is_arrays_v</a></div><div class="ttdeci">constexpr bool is_arrays_v</div><div class="ttdef"><b>Definition</b> array.h:612</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a94c1057929b390e5613304afa16dfbda"><div class="ttname"><a href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">mlx::core::is_arrays_v</a></div><div class="ttdeci">constexpr bool is_arrays_v</div><div class="ttdef"><b>Definition</b> array.h:627</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:104</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af834c1e18d6f11c4f233a2e1ce814a4b"><div class="ttname"><a href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">mlx::core::Deleter</a></div><div class="ttdeci">std::function&lt; void(allocator::Buffer)&gt; Deleter</div><div class="ttdef"><b>Definition</b> array.h:19</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:615</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:630</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html">mlx::core::Dtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:13</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_type_to_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_type_to_dtype.html">mlx::core::TypeToDtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:109</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_type_to_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_type_to_dtype.html">mlx::core::TypeToDtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:111</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html">mlx::core::array::ArrayIterator</a></div><div class="ttdef"><b>Definition</b> array.h:145</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a153756072fda6d3e53bcca11b46a1238"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238">mlx::core::array::ArrayIterator::operator*</a></div><div class="ttdeci">reference operator*() const</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_array_iterator_html_a1afd6d2a19a2b0d712063f221ab4eba7"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7">mlx::core::array::ArrayIterator::operator==</a></div><div class="ttdeci">friend bool operator==(const ArrayIterator &amp;a, const ArrayIterator &amp;b)</div><div class="ttdef"><b>Definition</b> array.h:165</div></div>

View File

@ -310,12 +310,12 @@ $(function(){initNavTree('backend_2common_2utils_8h_source.html',''); initResiza
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:271</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:331</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:283</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:343</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array&#39;s datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a449ef1148816a37bbc7ffd43d3c586a0"><div class="ttname"><a href="namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0">mlx::core::make_contiguous_strides</a></div><div class="ttdeci">Strides make_contiguous_strides(const Shape &amp;shape)</div><div class="ttdef"><b>Definition</b> utils.h:29</div></div>
@ -328,7 +328,7 @@ $(function(){initNavTree('backend_2common_2utils_8h_source.html',''); initResiza
<div class="ttc" id="anamespacemlx_1_1core_html_a88d88987bd8bf3ca46bf3b5e8aacce9d"><div class="ttname"><a href="namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d">mlx::core::shared_buffer_reshape</a></div><div class="ttdeci">void shared_buffer_reshape(const array &amp;in, const Strides &amp;out_strides, array &amp;out)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ab2b50a44a9d3a06282be4611f5fc7447"><div class="ttname"><a href="namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447">mlx::core::check_contiguity</a></div><div class="ttdeci">auto check_contiguity(const Shape &amp;shape, const Strides &amp;strides)</div><div class="ttdef"><b>Definition</b> utils.h:134</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af650e831ce21759da1ac103037d08d84"><div class="ttname"><a href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">mlx::core::is_donatable</a></div><div class="ttdeci">bool is_donatable(const array &amp;in, const array &amp;out)</div><div class="ttdef"><b>Definition</b> utils.h:155</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:615</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:630</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a5ea4f0e40900e8c7e0830e1fb561af1a"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">mlx::core::ContiguousIterator::loc</a></div><div class="ttdeci">int64_t loc</div><div class="ttdef"><b>Definition</b> utils.h:126</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a727442ddff5fd3c3ebe09b000a01c9d3"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a727442ddff5fd3c3ebe09b000a01c9d3">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator()</div><div class="ttdef"><b>Definition</b> utils.h:104</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a8760380bff7462a886e7a4edd2955375"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a8760380bff7462a886e7a4edd2955375">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator(const Shape &amp;shape, const Strides &amp;strides, int dims)</div><div class="ttdef"><b>Definition</b> utils.h:114</div></div>

View File

@ -147,303 +147,306 @@ $(function(){initNavTree('backend_2metal_2device_8h_source.html',''); initResiza
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54"> 38</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a> =</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::vector&lt;std::tuple&lt;const void*, MTL::DataType, NS::UInteger&gt;&gt;;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="foldopen" id="foldopen00041" data-start="{" data-end="};">
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_command_encoder.html"> 41</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"> 42</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>(MTL::CommandBuffer* cbuf);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14"> 43</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14">CommandEncoder</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"> 44</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&amp; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html"> 46</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a> {</div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 47</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a>(<a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&amp; enc) : enc(enc) {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> enc.concurrent_ = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="foldopen" id="foldopen00043" data-start="{" data-end="};">
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_command_encoder.html"> 43</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186"> 44</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a>&amp; stream);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14"> 45</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14">CommandEncoder</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"> 46</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>&amp; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="foldopen" id="foldopen00048" data-start="{" data-end="};">
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html"> 48</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a> {</div>
<div class="foldopen" id="foldopen00049" data-start="{" data-end="}">
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 49</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a>(<a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>&amp; enc) : enc(enc) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> enc.concurrent_ = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
</div>
<div class="foldopen" id="foldopen00050" data-start="{" data-end="}">
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1"> 50</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1">~ConcurrentContext</a>() {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> enc.concurrent_ = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> enc.prev_outputs_.insert(</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> enc.concurrent_outputs_.begin(), enc.concurrent_outputs_.end());</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> enc.concurrent_outputs_.clear();</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="foldopen" id="foldopen00052" data-start="{" data-end="}">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1"> 52</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1">~ConcurrentContext</a>() {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> enc.concurrent_ = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> enc.prev_outputs_.insert(</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> enc.concurrent_outputs_.begin(), enc.concurrent_outputs_.end());</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> enc.concurrent_outputs_.clear();</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&amp; enc;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> };</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">CommandEncoder</a>&amp; enc;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> };</div>
</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4"> 61</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4">set_input_array</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"> 62</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522">set_output_array</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ada20558738968ca2ecdcd95f228e028a"> 63</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ada20558738968ca2ecdcd95f228e028a">register_output_array</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d"> 64</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d">dispatch_threadgroups</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05"> 65</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05">dispatch_threads</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991"> 66</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991">maybeInsertBarrier</a>();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ae890f5cefa4ae24ae0f5d8e46a313a92"> 67</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ae890f5cefa4ae24ae0f5d8e46a313a92">set_buffer</a>(<span class="keyword">const</span> MTL::Buffer* buf, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="}">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef"> 69</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef">set_compute_pipeline_state</a>(MTL::ComputePipelineState* kernel) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> enc_-&gt;setComputePipelineState(kernel);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4"> 63</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4">set_input_array</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"> 64</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522">set_output_array</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ada20558738968ca2ecdcd95f228e028a"> 65</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ada20558738968ca2ecdcd95f228e028a">register_output_array</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d"> 66</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d">dispatch_threadgroups</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05"> 67</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05">dispatch_threads</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991"> 68</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991">maybeInsertBarrier</a>();</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ae890f5cefa4ae24ae0f5d8e46a313a92"> 69</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ae890f5cefa4ae24ae0f5d8e46a313a92">set_buffer</a>(<span class="keyword">const</span> MTL::Buffer* buf, <span class="keywordtype">int</span> idx, int64_t offset = 0);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="}">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef"> 71</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef">set_compute_pipeline_state</a>(MTL::ComputePipelineState* kernel) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> enc_-&gt;setComputePipelineState(kernel);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="foldopen" id="foldopen00073" data-start="{" data-end="}">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088"> 73</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088">wait_for_fence</a>(MTL::Fence* fence) {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> enc_-&gt;waitForFence(fence);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088"> 75</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088">wait_for_fence</a>(MTL::Fence* fence) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> enc_-&gt;waitForFence(fence);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="foldopen" id="foldopen00077" data-start="{" data-end="}">
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2"> 77</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2">update_fence</a>(MTL::Fence* fence) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> enc_-&gt;updateFence(fence);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="}">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2"> 79</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2">update_fence</a>(MTL::Fence* fence) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> enc_-&gt;updateFence(fence);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00082" data-start="{" data-end="}">
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b"> 82</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">set_vector_bytes</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">size_t</span> nelems, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> enc_-&gt;setBytes(vec.data(), nelems * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="}">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b"> 84</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">set_vector_bytes</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">size_t</span> nelems, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> enc_-&gt;setBytes(vec.data(), nelems * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00086" data-start="{" data-end="}">
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115"> 86</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115">set_vector_bytes</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">set_vector_bytes</a>(vec, vec.size(), idx);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00088" data-start="{" data-end="}">
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115"> 88</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115">set_vector_bytes</a>(<span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">set_vector_bytes</a>(vec, vec.size(), idx);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> }</div>
</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00091" data-start="{" data-end="}">
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5"> 91</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5">set_bytes</a>(<span class="keyword">const</span> T* v, <span class="keywordtype">int</span> n, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> enc_-&gt;setBytes(v, n * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5"> 93</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5">set_bytes</a>(<span class="keyword">const</span> T* v, <span class="keywordtype">int</span> n, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> enc_-&gt;setBytes(v, n * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00096" data-start="{" data-end="}">
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849"> 96</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849">set_bytes</a>(<span class="keyword">const</span> T&amp; v, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> enc_-&gt;setBytes(&amp;v, <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849"> 98</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849">set_bytes</a>(<span class="keyword">const</span> T&amp; v, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> enc_-&gt;setBytes(&amp;v, <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="foldopen" id="foldopen00100" data-start="{" data-end="}">
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034"> 100</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034">start_concurrent</a>() {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a>(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> }</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034"> 102</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034">start_concurrent</a>() {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a>(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198"> 103</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198">~CommandEncoder</a>();</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// Inputs to all kernels in the encoder including temporaries</span></div>
<div class="foldopen" id="foldopen00106" data-start="{" data-end="}">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509"> 106</a></span> std::unordered_set&lt;const void*&gt;&amp; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509">inputs</a>() {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> all_inputs_;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> };</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198"> 105</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198">~CommandEncoder</a>();</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// Inputs to all kernels in the encoder including temporaries</span></div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509"> 108</a></span> std::unordered_set&lt;const void*&gt;&amp; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509">inputs</a>() {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> all_inputs_;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> };</div>
</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Outputs of all kernels in the encoder including temporaries</span></div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="}">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f"> 111</a></span> std::unordered_set&lt;const void*&gt; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f">outputs</a>() {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> all_outputs_;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> };</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Outputs of all kernels in the encoder including temporaries</span></div>
<div class="foldopen" id="foldopen00113" data-start="{" data-end="}">
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f"> 113</a></span> std::unordered_set&lt;const void*&gt; <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f">outputs</a>() {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> all_outputs_;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> };</div>
</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e"> 115</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e">barrier</a>();</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> MTL::ComputeCommandEncoder* enc_;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">bool</span> needs_barrier_{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">bool</span> concurrent_{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> std::unordered_set&lt;MTL::Resource*&gt; prev_outputs_;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> std::unordered_set&lt;MTL::Resource*&gt; next_outputs_;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> std::unordered_set&lt;MTL::Resource*&gt; concurrent_outputs_;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> std::unordered_set&lt;const void*&gt; all_inputs_;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> std::unordered_set&lt;const void*&gt; all_outputs_;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>};</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e"> 117</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e">barrier</a>();</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a>&amp; stream_;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> MTL::ComputeCommandEncoder* enc_;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">bool</span> needs_barrier_{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">bool</span> concurrent_{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> std::unordered_set&lt;MTL::Resource*&gt; prev_outputs_;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> std::unordered_set&lt;MTL::Resource*&gt; next_outputs_;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> std::unordered_set&lt;MTL::Resource*&gt; concurrent_outputs_;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> std::unordered_set&lt;const void*&gt; all_inputs_;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> std::unordered_set&lt;const void*&gt; all_outputs_;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span>};</div>
</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="foldopen" id="foldopen00128" data-start="{" data-end="};">
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html"> 128</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a> {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79"> 129</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a>(MTL::Fence* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) {}</div>
<div class="foldopen" id="foldopen00130" data-start="{" data-end="}">
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2"> 130</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">~Fence</a>() {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>-&gt;release();</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> }</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="foldopen" id="foldopen00131" data-start="{" data-end="};">
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html"> 131</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79"> 132</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a>(MTL::Fence* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) {}</div>
<div class="foldopen" id="foldopen00133" data-start="{" data-end="}">
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2"> 133</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">~Fence</a>() {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>-&gt;release();</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> }</div>
</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87"> 133</a></span> MTL::Fence* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>};</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87"> 136</a></span> MTL::Fence* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>};</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="foldopen" id="foldopen00136" data-start="{" data-end="};">
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html"> 136</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a> {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7"> 137</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a>(MTL::CommandQueue* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) {};</div>
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e"> 138</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e">~DeviceStream</a>() {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>-&gt;release();</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a> != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a>-&gt;release();</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> };</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="foldopen" id="foldopen00139" data-start="{" data-end="};">
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html"> 139</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a> {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7"> 140</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a>(MTL::CommandQueue* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) {};</div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="}">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e"> 141</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e">~DeviceStream</a>() {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>-&gt;release();</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a> != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a>-&gt;release();</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> };</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d"> 144</a></span> MTL::CommandQueue* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// A map of prior command encoder outputs to their corresponding fence</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9"> 146</a></span> std::unordered_map&lt;const void*, std::shared_ptr&lt;Fence&gt;&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9">outputs</a>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Used to allow thread-safe access to the outputs map</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd"> 148</a></span> std::mutex <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd">fence_mtx</a>;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// The buffer and buffer op count are updated</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// between command buffers</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb"> 152</a></span> MTL::CommandBuffer* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a>{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782"> 153</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">buffer_ops</a>{0};</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// The command encoder, fence, and temporaries are updated between command</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// encoders</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd"> 157</a></span> std::unique_ptr&lt;CommandEncoder&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd">encoder</a>{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499"> 158</a></span> std::shared_ptr&lt;Fence&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499">fence</a>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de"> 159</a></span> std::vector&lt;array&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de">temporaries</a>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>};</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d"> 147</a></span> MTL::CommandQueue* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// A map of prior command encoder outputs to their corresponding fence</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9"> 149</a></span> std::unordered_map&lt;const void*, std::shared_ptr&lt;Fence&gt;&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9">outputs</a>;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// Used to allow thread-safe access to the outputs map</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd"> 151</a></span> std::mutex <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd">fence_mtx</a>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// Data updated between command buffers</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb"> 154</a></span> MTL::CommandBuffer* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">buffer</a>{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782"> 155</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">buffer_ops</a>{0};</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459"> 156</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459">buffer_sizes</a>{0};</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// The command encoder, fence, and temporaries are updated between command</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// encoders</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd"> 160</a></span> std::unique_ptr&lt;CommandEncoder&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd">encoder</a>{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499"> 161</a></span> std::shared_ptr&lt;Fence&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499">fence</a>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de"> 162</a></span> std::vector&lt;array&gt; <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de">temporaries</a>;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span>};</div>
</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="foldopen" id="foldopen00162" data-start="{" data-end="};">
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html"> 162</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a> {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6"> 164</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>();</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 165</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 166</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"> 167</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">~Device</a>();</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="foldopen" id="foldopen00169" data-start="{" data-end="}">
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653"> 169</a></span> MTL::Device* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mtl_device</a>() {</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> device_;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> };</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="foldopen" id="foldopen00165" data-start="{" data-end="};">
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html"> 165</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a> {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6"> 167</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>();</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 168</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 169</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"> 170</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">~Device</a>();</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="foldopen" id="foldopen00172" data-start="{" data-end="}">
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653"> 172</a></span> MTL::Device* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mtl_device</a>() {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> device_;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> };</div>
</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="foldopen" id="foldopen00173" data-start="{" data-end="}">
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b"> 173</a></span> <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">get_architecture</a>() {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">return</span> arch_;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="foldopen" id="foldopen00176" data-start="{" data-end="}">
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b"> 176</a></span> <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">get_architecture</a>() {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> arch_;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67"> 177</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">new_queue</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210"> 178</a></span> MTL::CommandBuffer* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">get_command_buffer</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8"> 179</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">get_command_buffer_ops</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6"> 180</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6">increment_command_buffer_ops</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c"> 181</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">commit_command_buffer</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6"> 182</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">get_command_encoder</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf"> 183</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf">end_encoding</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d"> 185</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">const</span> std::string&amp; lib_name,</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">const</span> std::string&amp; lib_path);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Note, this should remain in the header so that it is not dynamically</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// linked</span></div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf"> 191</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">register_library</a>(<span class="keyword">const</span> std::string&amp; lib_name) {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> it = library_map_.find(lib_name); it == library_map_.end()) {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(lib_name, <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>(lib_name));</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67"> 180</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">new_queue</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210"> 181</a></span> MTL::CommandBuffer* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">get_command_buffer</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e"> 182</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e">command_buffer_needs_commit</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c"> 183</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">commit_command_buffer</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6"> 184</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">get_command_encoder</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf"> 185</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf">end_encoding</a>(<span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d"> 187</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">const</span> std::string&amp; lib_name,</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">const</span> std::string&amp; lib_path);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// Note, this should remain in the header so that it is not dynamically</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// linked</span></div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf"> 193</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">register_library</a>(<span class="keyword">const</span> std::string&amp; lib_name) {</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> it = library_map_.find(lib_name); it == library_map_.end()) {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(lib_name, <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>(lib_name));</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> }</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> }</div>
</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0"> 197</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0">get_library</a>(</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">const</span> std::function&lt;std::string(<span class="keywordtype">void</span>)&gt;&amp; builder);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a"> 201</a></span> MTL::ComputePipelineState* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a">get_kernel</a>(</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf"> 208</a></span> MTL::ComputePipelineState* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf">get_kernel</a>(</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881"> 215</a></span> MTL::ArgumentEncoder* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881">argument_encoder</a>(</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">const</span> std::vector&lt;MTL::ArgumentDescriptor*&gt;&amp; arg_descs) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// Record temporary arrays for the given stream index</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576"> 219</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576">add_temporary</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> arr, <span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901"> 220</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901">add_temporaries</a>(std::vector&lt;array&gt; arrays, <span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f"> 222</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">set_residency_set</a>(<span class="keyword">const</span> MTL::ResidencySet* residency_set);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0"> 199</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0">get_library</a>(</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">const</span> std::function&lt;std::string(<span class="keywordtype">void</span>)&gt;&amp; builder);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a"> 203</a></span> MTL::ComputePipelineState* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a">get_kernel</a>(</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf"> 210</a></span> MTL::ComputePipelineState* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf">get_kernel</a>(</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881"> 217</a></span> MTL::ArgumentEncoder* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881">argument_encoder</a>(</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">const</span> std::vector&lt;MTL::ArgumentDescriptor*&gt;&amp; arg_descs) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// Record temporary arrays for the given stream index</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576"> 221</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576">add_temporary</a>(<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> arr, <span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901"> 222</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901">add_temporaries</a>(std::vector&lt;array&gt; arrays, <span class="keywordtype">int</span> index);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a>&amp; get_stream_(<span class="keywordtype">int</span> index) {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">return</span> stream_map_.find(index)-&gt;second;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> }</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> MTL::Library* get_library_cache_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> MTL::Library* get_library_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> MTL::Library* build_library_(<span class="keyword">const</span> std::string&amp; source_string);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> MTL::Function* get_function_(<span class="keyword">const</span> std::string&amp; name, MTL::Library* mtl_lib);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f"> 224</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">set_residency_set</a>(<span class="keyword">const</span> MTL::ResidencySet* residency_set);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a>&amp; get_stream_(<span class="keywordtype">int</span> index) {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">return</span> stream_map_.find(index)-&gt;second;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> }</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> MTL::Library* get_library_cache_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> MTL::Library* get_library_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> MTL::Library* build_library_(<span class="keyword">const</span> std::string&amp; source_string);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> MTL::Function* get_function_(</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">const</span> std::string&amp; specialized_name,</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts,</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> MTL::Library* mtl_lib);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> MTL::LinkedFunctions* get_linked_functions_(</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; funcs);</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">const</span> MTL::Function* mtl_function);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">const</span> MTL::Function* mtl_function,</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">const</span> MTL::LinkedFunctions* linked_functions);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">const</span> std::string&amp; hash_name,</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> MTL::Device* device_;</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> std::unordered_map&lt;int32_t, DeviceStream&gt; stream_map_;</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> std::shared_mutex kernel_mtx_;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> std::unordered_map&lt;std::string, MTL::ComputePipelineState*&gt; kernel_map_;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> std::shared_mutex library_mtx_;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> std::unordered_map&lt;std::string, MTL::Library*&gt; library_map_;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">const</span> MTL::ResidencySet* residency_set_{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> std::string arch_;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span>};</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> MTL::Function* get_function_(<span class="keyword">const</span> std::string&amp; name, MTL::Library* mtl_lib);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> MTL::Function* get_function_(</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">const</span> std::string&amp; specialized_name,</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts,</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> MTL::Library* mtl_lib);</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> MTL::LinkedFunctions* get_linked_functions_(</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; funcs);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">const</span> MTL::Function* mtl_function);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">const</span> MTL::Function* mtl_function,</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">const</span> MTL::LinkedFunctions* linked_functions);</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">const</span> std::string&amp; hash_name,</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">MTLFCList</a>&amp; func_consts = {},</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> MTL::Device* device_;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> std::unordered_map&lt;int32_t, DeviceStream&gt; stream_map_;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> std::shared_mutex kernel_mtx_;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> std::unordered_map&lt;std::string, MTL::ComputePipelineState*&gt; kernel_map_;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> </div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> std::shared_mutex library_mtx_;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> std::unordered_map&lt;std::string, MTL::Library*&gt; library_map_;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">const</span> MTL::ResidencySet* residency_set_{<span class="keyword">nullptr</span>};</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> std::string arch_;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordtype">int</span> max_ops_per_buffer_;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordtype">int</span> max_mb_per_buffer_;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span>};</div>
</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57"> 272</a></span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp; <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57">device</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_device.html">mlx::core::Device</a>);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span>} <span class="comment">// namespace mlx::core::metal</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57"> 276</a></span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp; <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57">device</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_device.html">mlx::core::Device</a>);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span>} <span class="comment">// namespace mlx::core::metal</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></div><div class="ttdef"><b>Definition</b> device.h:162</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></div><div class="ttdef"><b>Definition</b> device.h:165</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a03a2f0c712660a1bd437cb16e4aba79f"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">mlx::core::metal::Device::set_residency_set</a></div><div class="ttdeci">void set_residency_set(const MTL::ResidencySet *residency_set)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a064e1cb6a16de7a0619f6447622350f8"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">mlx::core::metal::Device::get_command_buffer_ops</a></div><div class="ttdeci">int get_command_buffer_ops(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a31dba377f2be44a746db10d1b9367653"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mlx::core::metal::Device::mtl_device</a></div><div class="ttdeci">MTL::Device * mtl_device()</div><div class="ttdef"><b>Definition</b> device.h:169</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a2580a395419fa6735e8ca5a67495700e"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e">mlx::core::metal::Device::command_buffer_needs_commit</a></div><div class="ttdeci">bool command_buffer_needs_commit(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a31dba377f2be44a746db10d1b9367653"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mlx::core::metal::Device::mtl_device</a></div><div class="ttdeci">MTL::Device * mtl_device()</div><div class="ttdef"><b>Definition</b> device.h:172</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a45945f2efcd242d915ffa2171e92bf9d"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">mlx::core::metal::Device::register_library</a></div><div class="ttdeci">void register_library(const std::string &amp;lib_name, const std::string &amp;lib_path)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a4f39c28c6cdd1d2da1918f5871bcba6e"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">mlx::core::metal::Device::~Device</a></div><div class="ttdeci">~Device()</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a5fe3970fbe92ccc55fce4241ffbe5210"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">mlx::core::metal::Device::get_command_buffer</a></div><div class="ttdeci">MTL::CommandBuffer * get_command_buffer(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a60689f97347811b27e8c5ca23e0372bf"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf">mlx::core::metal::Device::end_encoding</a></div><div class="ttdeci">void end_encoding(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a65f64dd8bafdc704d871fc5be5e7bc0b"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">mlx::core::metal::Device::get_architecture</a></div><div class="ttdeci">const std::string &amp; get_architecture()</div><div class="ttdef"><b>Definition</b> device.h:173</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a65f64dd8bafdc704d871fc5be5e7bc0b"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">mlx::core::metal::Device::get_architecture</a></div><div class="ttdeci">const std::string &amp; get_architecture()</div><div class="ttdef"><b>Definition</b> device.h:176</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a6810c4dcbcfbf93fc51d42aa5ff0fc3a"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a">mlx::core::metal::Device::get_kernel</a></div><div class="ttdeci">MTL::ComputePipelineState * get_kernel(const std::string &amp;base_name, MTL::Library *mtl_lib, const std::string &amp;hash_name=&quot;&quot;, const MTLFCList &amp;func_consts={}, const std::vector&lt; MTL::Function * &gt; &amp;linked_functions={})</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a6e33e2b1287324fb4a6575e0da5e5881"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881">mlx::core::metal::Device::argument_encoder</a></div><div class="ttdeci">MTL::ArgumentEncoder * argument_encoder(const std::vector&lt; MTL::ArgumentDescriptor * &gt; &amp;arg_descs) const</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a72ad17c96fc6ce825bc77f0bed657901"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901">mlx::core::metal::Device::add_temporaries</a></div><div class="ttdeci">void add_temporaries(std::vector&lt; array &gt; arrays, int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a75ed55e73baf48013028796518723ff0"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0">mlx::core::metal::Device::get_library</a></div><div class="ttdeci">MTL::Library * get_library(const std::string &amp;name, const std::function&lt; std::string(void)&gt; &amp;builder)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a7a33d4d601423a3d3c23d5ad7072abb6"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6">mlx::core::metal::Device::increment_command_buffer_ops</a></div><div class="ttdeci">void increment_command_buffer_ops(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a8135ae2a8c1e6f3861e84d4e60c28b67"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">mlx::core::metal::Device::new_queue</a></div><div class="ttdeci">void new_queue(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a95248f1387824067fd4fed23ace5ac0c"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">mlx::core::metal::Device::commit_command_buffer</a></div><div class="ttdeci">void commit_command_buffer(int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a99ff72689b7beb65ad4541391b0eeabf"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">mlx::core::metal::Device::register_library</a></div><div class="ttdeci">void register_library(const std::string &amp;lib_name)</div><div class="ttdef"><b>Definition</b> device.h:191</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a99ff72689b7beb65ad4541391b0eeabf"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">mlx::core::metal::Device::register_library</a></div><div class="ttdeci">void register_library(const std::string &amp;lib_name)</div><div class="ttdef"><b>Definition</b> device.h:193</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_abf59a4addb5473f9e814e3651ba85f06"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">mlx::core::metal::Device::Device</a></div><div class="ttdeci">Device(const Device &amp;)=delete</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_acb90010af0cffe27fd8cc6c253d3a576"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576">mlx::core::metal::Device::add_temporary</a></div><div class="ttdeci">void add_temporary(array arr, int index)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_ad1d6382fd18a46b1906e1b43e0bd2e73"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">mlx::core::metal::Device::operator=</a></div><div class="ttdeci">Device &amp; operator=(const Device &amp;)=delete</div></div>
@ -455,49 +458,50 @@ $(function(){initNavTree('backend_2metal_2device_8h_source.html',''); initResiza
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html_a5fd6ba2040e53a254b9d71ae7ebd315f"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">mlx::core::metal::get_colocated_mtllib_path</a></div><div class="ttdeci">std::string get_colocated_mtllib_path(const std::string &amp;lib_name)</div><div class="ttdef"><b>Definition</b> device.h:24</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html_a616e09a1ef321d527770721cef264c54"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">mlx::core::metal::MTLFCList</a></div><div class="ttdeci">std::vector&lt; std::tuple&lt; const void *, MTL::DataType, NS::UInteger &gt; &gt; MTLFCList</div><div class="ttdef"><b>Definition</b> device.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html_a910797b74824e6ee576fbb533dee8b57"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57">mlx::core::metal::device</a></div><div class="ttdeci">Device &amp; device(mlx::core::Device)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_command_encoder_1_1_concurrent_context_html_aee044d7729739c96e845823f9ecc5174"><div class="ttname"><a href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">mlx::core::CommandEncoder::ConcurrentContext::ConcurrentContext</a></div><div class="ttdeci">ConcurrentContext(CommandEncoder &amp;enc)</div><div class="ttdef"><b>Definition</b> device.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_command_encoder_html_a2334774486f447213ee997e55c2e52a3"><div class="ttname"><a href="structmlx_1_1core_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::CommandEncoder::CommandEncoder</a></div><div class="ttdeci">CommandEncoder(MTL::CommandBuffer *cbuf)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_command_encoder_1_1_concurrent_context_html_aee044d7729739c96e845823f9ecc5174"><div class="ttname"><a href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">mlx::core::CommandEncoder::ConcurrentContext::ConcurrentContext</a></div><div class="ttdeci">ConcurrentContext(CommandEncoder &amp;enc)</div><div class="ttdef"><b>Definition</b> device.h:49</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_command_encoder_html_a7320b3acfa075ffdce5ea38fe107f186"><div class="ttname"><a href="structmlx_1_1core_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::CommandEncoder::CommandEncoder</a></div><div class="ttdeci">CommandEncoder(DeviceStream &amp;stream)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_device_html"><div class="ttname"><a href="structmlx_1_1core_1_1_device.html">mlx::core::Device</a></div><div class="ttdef"><b>Definition</b> device.h:7</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">mlx::core::metal::CommandEncoder::ConcurrentContext</a></div><div class="ttdef"><b>Definition</b> device.h:46</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html_a28bafec56edec3091e8716d8ccfb6ee1"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1">mlx::core::metal::CommandEncoder::ConcurrentContext::~ConcurrentContext</a></div><div class="ttdeci">~ConcurrentContext()</div><div class="ttdef"><b>Definition</b> device.h:50</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html_aee044d7729739c96e845823f9ecc5174"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">mlx::core::metal::CommandEncoder::ConcurrentContext::ConcurrentContext</a></div><div class="ttdeci">ConcurrentContext(CommandEncoder &amp;enc)</div><div class="ttdef"><b>Definition</b> device.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">mlx::core::metal::CommandEncoder</a></div><div class="ttdef"><b>Definition</b> device.h:41</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">mlx::core::metal::CommandEncoder::ConcurrentContext</a></div><div class="ttdef"><b>Definition</b> device.h:48</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html_a28bafec56edec3091e8716d8ccfb6ee1"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1">mlx::core::metal::CommandEncoder::ConcurrentContext::~ConcurrentContext</a></div><div class="ttdeci">~ConcurrentContext()</div><div class="ttdef"><b>Definition</b> device.h:52</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context_html_aee044d7729739c96e845823f9ecc5174"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">mlx::core::metal::CommandEncoder::ConcurrentContext::ConcurrentContext</a></div><div class="ttdeci">ConcurrentContext(CommandEncoder &amp;enc)</div><div class="ttdef"><b>Definition</b> device.h:49</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">mlx::core::metal::CommandEncoder</a></div><div class="ttdef"><b>Definition</b> device.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a0a8501b940e5a347475fa4bc38fb4c05"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05">mlx::core::metal::CommandEncoder::dispatch_threads</a></div><div class="ttdeci">void dispatch_threads(MTL::Size grid_dims, MTL::Size group_dims)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a2334774486f447213ee997e55c2e52a3"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::metal::CommandEncoder::CommandEncoder</a></div><div class="ttdeci">CommandEncoder(MTL::CommandBuffer *cbuf)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a27ded7e54bc1712063c874646b445509"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509">mlx::core::metal::CommandEncoder::inputs</a></div><div class="ttdeci">std::unordered_set&lt; const void * &gt; &amp; inputs()</div><div class="ttdef"><b>Definition</b> device.h:106</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a27ded7e54bc1712063c874646b445509"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509">mlx::core::metal::CommandEncoder::inputs</a></div><div class="ttdeci">std::unordered_set&lt; const void * &gt; &amp; inputs()</div><div class="ttdef"><b>Definition</b> device.h:108</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a3f42a1362b4a513fa89e7b3dcc570a8e"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">mlx::core::metal::CommandEncoder::operator=</a></div><div class="ttdeci">CommandEncoder &amp; operator=(const CommandEncoder &amp;)=delete</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a48b548a0b15f9d1279c938a1c6167034"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034">mlx::core::metal::CommandEncoder::start_concurrent</a></div><div class="ttdeci">ConcurrentContext start_concurrent()</div><div class="ttdef"><b>Definition</b> device.h:100</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a68c3c6a036e11ec40211c09811bbed1b"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">mlx::core::metal::CommandEncoder::set_vector_bytes</a></div><div class="ttdeci">void set_vector_bytes(const std::vector&lt; T &gt; &amp;vec, size_t nelems, int idx)</div><div class="ttdef"><b>Definition</b> device.h:82</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a48b548a0b15f9d1279c938a1c6167034"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034">mlx::core::metal::CommandEncoder::start_concurrent</a></div><div class="ttdeci">ConcurrentContext start_concurrent()</div><div class="ttdef"><b>Definition</b> device.h:102</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a68c3c6a036e11ec40211c09811bbed1b"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b">mlx::core::metal::CommandEncoder::set_vector_bytes</a></div><div class="ttdeci">void set_vector_bytes(const std::vector&lt; T &gt; &amp;vec, size_t nelems, int idx)</div><div class="ttdef"><b>Definition</b> device.h:84</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a6a2e28e542eaa2886041bddd51ff6522"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522">mlx::core::metal::CommandEncoder::set_output_array</a></div><div class="ttdeci">void set_output_array(array &amp;a, int idx, int64_t offset=0)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a6d4c03a6585deedb5ccd1a1057d0c6ef"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef">mlx::core::metal::CommandEncoder::set_compute_pipeline_state</a></div><div class="ttdeci">void set_compute_pipeline_state(MTL::ComputePipelineState *kernel)</div><div class="ttdef"><b>Definition</b> device.h:69</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a7375adf9ee5355bcf4b7f5f210efd115"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115">mlx::core::metal::CommandEncoder::set_vector_bytes</a></div><div class="ttdeci">void set_vector_bytes(const std::vector&lt; T &gt; &amp;vec, int idx)</div><div class="ttdef"><b>Definition</b> device.h:86</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a6d4c03a6585deedb5ccd1a1057d0c6ef"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef">mlx::core::metal::CommandEncoder::set_compute_pipeline_state</a></div><div class="ttdeci">void set_compute_pipeline_state(MTL::ComputePipelineState *kernel)</div><div class="ttdef"><b>Definition</b> device.h:71</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a7320b3acfa075ffdce5ea38fe107f186"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::metal::CommandEncoder::CommandEncoder</a></div><div class="ttdeci">CommandEncoder(DeviceStream &amp;stream)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a7375adf9ee5355bcf4b7f5f210efd115"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115">mlx::core::metal::CommandEncoder::set_vector_bytes</a></div><div class="ttdeci">void set_vector_bytes(const std::vector&lt; T &gt; &amp;vec, int idx)</div><div class="ttdef"><b>Definition</b> device.h:88</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a7f028c6ca48e75bf2c1806b5b8cfc90e"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e">mlx::core::metal::CommandEncoder::barrier</a></div><div class="ttdeci">void barrier()</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a85796b2bf41dbf347ae0978d4660600d"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d">mlx::core::metal::CommandEncoder::dispatch_threadgroups</a></div><div class="ttdeci">void dispatch_threadgroups(MTL::Size grid_dims, MTL::Size group_dims)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a9b6dd221ccd2d939d544004cb6279198"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198">mlx::core::metal::CommandEncoder::~CommandEncoder</a></div><div class="ttdeci">~CommandEncoder()</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a9c343f791812a45c6c03a5c9f27f74d5"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5">mlx::core::metal::CommandEncoder::set_bytes</a></div><div class="ttdeci">void set_bytes(const T *v, int n, int idx)</div><div class="ttdef"><b>Definition</b> device.h:91</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a9c343f791812a45c6c03a5c9f27f74d5"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9c343f791812a45c6c03a5c9f27f74d5">mlx::core::metal::CommandEncoder::set_bytes</a></div><div class="ttdeci">void set_bytes(const T *v, int n, int idx)</div><div class="ttdef"><b>Definition</b> device.h:93</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_ab69ff0d7f14b9b59db4df0608193dce4"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4">mlx::core::metal::CommandEncoder::set_input_array</a></div><div class="ttdeci">void set_input_array(const array &amp;a, int idx, int64_t offset=0)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_abc52d18ea87d213c47fd26062c829849"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849">mlx::core::metal::CommandEncoder::set_bytes</a></div><div class="ttdeci">void set_bytes(const T &amp;v, int idx)</div><div class="ttdef"><b>Definition</b> device.h:96</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_abc52d18ea87d213c47fd26062c829849"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#abc52d18ea87d213c47fd26062c829849">mlx::core::metal::CommandEncoder::set_bytes</a></div><div class="ttdeci">void set_bytes(const T &amp;v, int idx)</div><div class="ttdef"><b>Definition</b> device.h:98</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_ac68ca977b5bde5434284ce7979647f14"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14">mlx::core::metal::CommandEncoder::CommandEncoder</a></div><div class="ttdeci">CommandEncoder(const CommandEncoder &amp;)=delete</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_ad538ae88f90560063f9ba502e2795991"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ad538ae88f90560063f9ba502e2795991">mlx::core::metal::CommandEncoder::maybeInsertBarrier</a></div><div class="ttdeci">void maybeInsertBarrier()</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_ada20558738968ca2ecdcd95f228e028a"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ada20558738968ca2ecdcd95f228e028a">mlx::core::metal::CommandEncoder::register_output_array</a></div><div class="ttdeci">void register_output_array(array &amp;a)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_ae890f5cefa4ae24ae0f5d8e46a313a92"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ae890f5cefa4ae24ae0f5d8e46a313a92">mlx::core::metal::CommandEncoder::set_buffer</a></div><div class="ttdeci">void set_buffer(const MTL::Buffer *buf, int idx, int64_t offset=0)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aeef08f5f3c015578d40de756a6465aa2"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2">mlx::core::metal::CommandEncoder::update_fence</a></div><div class="ttdeci">void update_fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:77</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aefa48740fdee884f02e2d379bca4e78f"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f">mlx::core::metal::CommandEncoder::outputs</a></div><div class="ttdeci">std::unordered_set&lt; const void * &gt; outputs()</div><div class="ttdef"><b>Definition</b> device.h:111</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aefdadbff4e003dc6f77506840babc088"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088">mlx::core::metal::CommandEncoder::wait_for_fence</a></div><div class="ttdeci">void wait_for_fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:73</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html">mlx::core::metal::DeviceStream</a></div><div class="ttdef"><b>Definition</b> device.h:136</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a1c4397732f64f5811381dd01e30e020e"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e">mlx::core::metal::DeviceStream::~DeviceStream</a></div><div class="ttdeci">~DeviceStream()</div><div class="ttdef"><b>Definition</b> device.h:138</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a55a7a92c6abad369c99a5ede7a2521b9"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9">mlx::core::metal::DeviceStream::outputs</a></div><div class="ttdeci">std::unordered_map&lt; const void *, std::shared_ptr&lt; Fence &gt; &gt; outputs</div><div class="ttdef"><b>Definition</b> device.h:146</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a573326bc8b48e39076850c7bf52ad0d7"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">mlx::core::metal::DeviceStream::DeviceStream</a></div><div class="ttdeci">DeviceStream(MTL::CommandQueue *queue)</div><div class="ttdef"><b>Definition</b> device.h:137</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a58e435217b9922f882507ebf48bfbbdd"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd">mlx::core::metal::DeviceStream::encoder</a></div><div class="ttdeci">std::unique_ptr&lt; CommandEncoder &gt; encoder</div><div class="ttdef"><b>Definition</b> device.h:157</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a6fa08cca881fc3798ae45994a11a4fcd"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd">mlx::core::metal::DeviceStream::fence_mtx</a></div><div class="ttdeci">std::mutex fence_mtx</div><div class="ttdef"><b>Definition</b> device.h:148</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a77c75a63c51ea56815a86bd882ed190d"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">mlx::core::metal::DeviceStream::queue</a></div><div class="ttdeci">MTL::CommandQueue * queue</div><div class="ttdef"><b>Definition</b> device.h:144</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a876199de8da1efa9a362451029638499"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499">mlx::core::metal::DeviceStream::fence</a></div><div class="ttdeci">std::shared_ptr&lt; Fence &gt; fence</div><div class="ttdef"><b>Definition</b> device.h:158</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a99183c92599edfeb75f7fa0f37e1d9eb"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">mlx::core::metal::DeviceStream::buffer</a></div><div class="ttdeci">MTL::CommandBuffer * buffer</div><div class="ttdef"><b>Definition</b> device.h:152</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_ab6048b329e65a59033834f3bdd351782"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">mlx::core::metal::DeviceStream::buffer_ops</a></div><div class="ttdeci">int buffer_ops</div><div class="ttdef"><b>Definition</b> device.h:153</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_aee88009117dfff1ad121eabe28d5f3de"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de">mlx::core::metal::DeviceStream::temporaries</a></div><div class="ttdeci">std::vector&lt; array &gt; temporaries</div><div class="ttdef"><b>Definition</b> device.h:159</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a30bee4957ae595e04922952a8010fc79"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">mlx::core::metal::Fence::Fence</a></div><div class="ttdeci">Fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:129</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a4940c1aece13814af7727de9abb511f2"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">mlx::core::metal::Fence::~Fence</a></div><div class="ttdeci">~Fence()</div><div class="ttdef"><b>Definition</b> device.h:130</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_aeccd8f2b81418ae9fc446ae2b6e15b87"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">mlx::core::metal::Fence::fence</a></div><div class="ttdeci">MTL::Fence * fence</div><div class="ttdef"><b>Definition</b> device.h:133</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aeef08f5f3c015578d40de756a6465aa2"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aeef08f5f3c015578d40de756a6465aa2">mlx::core::metal::CommandEncoder::update_fence</a></div><div class="ttdeci">void update_fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:79</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aefa48740fdee884f02e2d379bca4e78f"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f">mlx::core::metal::CommandEncoder::outputs</a></div><div class="ttdeci">std::unordered_set&lt; const void * &gt; outputs()</div><div class="ttdef"><b>Definition</b> device.h:113</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aefdadbff4e003dc6f77506840babc088"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefdadbff4e003dc6f77506840babc088">mlx::core::metal::CommandEncoder::wait_for_fence</a></div><div class="ttdeci">void wait_for_fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:75</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html">mlx::core::metal::DeviceStream</a></div><div class="ttdef"><b>Definition</b> device.h:139</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a1c4397732f64f5811381dd01e30e020e"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e">mlx::core::metal::DeviceStream::~DeviceStream</a></div><div class="ttdeci">~DeviceStream()</div><div class="ttdef"><b>Definition</b> device.h:141</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a55a7a92c6abad369c99a5ede7a2521b9"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9">mlx::core::metal::DeviceStream::outputs</a></div><div class="ttdeci">std::unordered_map&lt; const void *, std::shared_ptr&lt; Fence &gt; &gt; outputs</div><div class="ttdef"><b>Definition</b> device.h:149</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a573326bc8b48e39076850c7bf52ad0d7"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">mlx::core::metal::DeviceStream::DeviceStream</a></div><div class="ttdeci">DeviceStream(MTL::CommandQueue *queue)</div><div class="ttdef"><b>Definition</b> device.h:140</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a58e435217b9922f882507ebf48bfbbdd"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd">mlx::core::metal::DeviceStream::encoder</a></div><div class="ttdeci">std::unique_ptr&lt; CommandEncoder &gt; encoder</div><div class="ttdef"><b>Definition</b> device.h:160</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a6fa08cca881fc3798ae45994a11a4fcd"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd">mlx::core::metal::DeviceStream::fence_mtx</a></div><div class="ttdeci">std::mutex fence_mtx</div><div class="ttdef"><b>Definition</b> device.h:151</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a77c75a63c51ea56815a86bd882ed190d"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">mlx::core::metal::DeviceStream::queue</a></div><div class="ttdeci">MTL::CommandQueue * queue</div><div class="ttdef"><b>Definition</b> device.h:147</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a876199de8da1efa9a362451029638499"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499">mlx::core::metal::DeviceStream::fence</a></div><div class="ttdeci">std::shared_ptr&lt; Fence &gt; fence</div><div class="ttdef"><b>Definition</b> device.h:161</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a99183c92599edfeb75f7fa0f37e1d9eb"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">mlx::core::metal::DeviceStream::buffer</a></div><div class="ttdeci">MTL::CommandBuffer * buffer</div><div class="ttdef"><b>Definition</b> device.h:154</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_ab6048b329e65a59033834f3bdd351782"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">mlx::core::metal::DeviceStream::buffer_ops</a></div><div class="ttdeci">int buffer_ops</div><div class="ttdef"><b>Definition</b> device.h:155</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_ae7054233303b06329c67177382ded459"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459">mlx::core::metal::DeviceStream::buffer_sizes</a></div><div class="ttdeci">size_t buffer_sizes</div><div class="ttdef"><b>Definition</b> device.h:156</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_aee88009117dfff1ad121eabe28d5f3de"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de">mlx::core::metal::DeviceStream::temporaries</a></div><div class="ttdeci">std::vector&lt; array &gt; temporaries</div><div class="ttdef"><b>Definition</b> device.h:162</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a30bee4957ae595e04922952a8010fc79"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">mlx::core::metal::Fence::Fence</a></div><div class="ttdeci">Fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:132</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a4940c1aece13814af7727de9abb511f2"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">mlx::core::metal::Fence::~Fence</a></div><div class="ttdeci">~Fence()</div><div class="ttdef"><b>Definition</b> device.h:133</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_aeccd8f2b81418ae9fc446ae2b6e15b87"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">mlx::core::metal::Fence::fence</a></div><div class="ttdeci">MTL::Fence * fence</div><div class="ttdef"><b>Definition</b> device.h:136</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@ -643,7 +643,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2fft_8h_source.html',''); init
<div class="ttc" id="ametal_2kernels_2hadamard_8h_html_a590e5366adc78bab4fe44e37885d413f"><div class="ttname"><a href="metal_2kernels_2hadamard_8h.html#a590e5366adc78bab4fe44e37885d413f">radix_func</a></div><div class="ttdeci">METAL_FUNC void radix_func(thread float *x)</div><div class="ttdef"><b>Definition</b> hadamard.h:11</div></div>
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:98</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:104</div></div>
<div class="ttc" id="aradix_8h_html"><div class="ttname"><a href="radix_8h.html">radix.h</a></div></div>
<div class="ttc" id="aradix_8h_html_a026e6779e6d2ecdef39ff4aad186091e"><div class="ttname"><a href="radix_8h.html#a026e6779e6d2ecdef39ff4aad186091e">radix5</a></div><div class="ttdeci">METAL_FUNC void radix5(thread float2 *x, thread float2 *y)</div><div class="ttdef"><b>Definition</b> radix.h:69</div></div>
<div class="ttc" id="aradix_8h_html_a12cb26bd3ad635d16a195ccea750256d"><div class="ttname"><a href="radix_8h.html#a12cb26bd3ad635d16a195ccea750256d">radix4</a></div><div class="ttdeci">METAL_FUNC void radix4(thread float2 *x, thread float2 *y)</div><div class="ttdef"><b>Definition</b> radix.h:56</div></div>

View File

@ -147,6 +147,9 @@ Functions</h2></td></tr>
<tr class="memitem:aaf51544472fa87fa974686eacdd2a4a6" id="r_aaf51544472fa87fa974686eacdd2a4a6"><td class="memTemplParams" colspan="2">template&lt;typename T, typename... Args&gt; </td></tr>
<tr class="memitem:aaf51544472fa87fa974686eacdd2a4a6"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aaf51544472fa87fa974686eacdd2a4a6">mlx::core::concatenate</a> (std::string &amp;acc, T first, Args... args)</td></tr>
<tr class="separator:aaf51544472fa87fa974686eacdd2a4a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a357f4172305d2021bde8cf07d99adb7d" id="r_a357f4172305d2021bde8cf07d99adb7d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d">mlx::core::unsafe_weak_copy</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;x)</td></tr>
<tr class="memdesc:a357f4172305d2021bde8cf07d99adb7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a new array that refers to the same data but has a non-owning pointer to them. <br /></td></tr>
<tr class="separator:a357f4172305d2021bde8cf07d99adb7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@ -10,5 +10,6 @@ var backend_2metal_2utils_8h =
[ "mlx::core::get_primitive_string", "namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60", null ],
[ "mlx::core::make_string", "namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27", null ],
[ "mlx::core::type_to_name", "namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae", null ],
[ "mlx::core::type_to_name", "namespacemlx_1_1core.html#aef60e3a8d9c987c9c338b193673d2164", null ]
[ "mlx::core::type_to_name", "namespacemlx_1_1core.html#aef60e3a8d9c987c9c338b193673d2164", null ],
[ "mlx::core::unsafe_weak_copy", "namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d", null ]
];

View File

@ -185,15 +185,35 @@ $(function(){initNavTree('backend_2metal_2utils_8h_source.html',''); initResizab
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a76a2e310857f60f5ea6f1388d45b964d">concatenate</a>(acc, args...);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>}</div>
</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span></div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="}">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d"> 76</a></span><span class="keyword">inline</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> <a class="code hl_function" href="namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d">unsafe_weak_copy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; x) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>(</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>(),</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>(),</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>(),</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>(),</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>(),</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> x.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>(),</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> [](<span class="keyword">auto</span> b) {});</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>}</div>
</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="abackend_2metal_2device_8h_html"><div class="ttname"><a href="backend_2metal_2device_8h.html">device.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_ae1aff91354ce036596088a3e19474ecb"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">mlx::core::Primitive::print</a></div><div class="ttdeci">virtual void print(std::ostream &amp;os)=0</div><div class="ttdoc">Print the primitive.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ab3daf04c27c4593d9d73c397b8484a08"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">mlx::core::array::buffer</a></div><div class="ttdeci">allocator::Buffer &amp; buffer()</div><div class="ttdef"><b>Definition</b> array.h:336</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:131</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a0f0f59d3ffe2d16a684e5fc093302e15"><div class="ttname"><a href="namespacemlx_1_1core.html#a0f0f59d3ffe2d16a684e5fc093302e15">mlx::core::get_block_dims</a></div><div class="ttdeci">MTL::Size get_block_dims(int dim0, int dim1, int dim2, int pow2=10)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a357f4172305d2021bde8cf07d99adb7d"><div class="ttname"><a href="namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d">mlx::core::unsafe_weak_copy</a></div><div class="ttdeci">array unsafe_weak_copy(const array &amp;x)</div><div class="ttdoc">Get a new array that refers to the same data but has a non-owning pointer to them.</div><div class="ttdef"><b>Definition</b> utils.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a489e45b3a5cd8b46e8ea56b9132eb230"><div class="ttname"><a href="namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230">mlx::core::debug_set_primitive_buffer_label</a></div><div class="ttdeci">void debug_set_primitive_buffer_label(MTL::CommandBuffer *command_buffer, Primitive &amp;primitive)</div><div class="ttdef"><b>Definition</b> utils.h:46</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector&lt; ShapeElem &gt; Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a76a2e310857f60f5ea6f1388d45b964d"><div class="ttname"><a href="namespacemlx_1_1core.html#a76a2e310857f60f5ea6f1388d45b964d">mlx::core::concatenate</a></div><div class="ttdeci">void concatenate(std::string &amp;acc, T first)</div><div class="ttdef"><b>Definition</b> utils.h:62</div></div>

View File

@ -115,6 +115,7 @@ $(function(){initNavTree('base__simd_8h.html',''); initResizable(true); });
<code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
</div>
<p><a href="base__simd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -226,6 +227,9 @@ Functions</h2></td></tr>
<tr class="memitem:ab80a7db8d99e3f4032e761c60216027d" id="r_ab80a7db8d99e3f4032e761c60216027d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ab80a7db8d99e3f4032e761c60216027d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d">mlx::core::simd::tanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:ab80a7db8d99e3f4032e761c60216027d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c6ed06d523db05f99df7ef21b374c41" id="r_a4c6ed06d523db05f99df7ef21b374c41"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a4c6ed06d523db05f99df7ef21b374c41"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4c6ed06d523db05f99df7ef21b374c41">mlx::core::simd::operator~</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a4c6ed06d523db05f99df7ef21b374c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf822b7626bbab6a495552aea3457b5" id="r_acdf822b7626bbab6a495552aea3457b5"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:acdf822b7626bbab6a495552aea3457b5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(std::real(in.value)), 1 &gt;</td></tr>
<tr class="separator:acdf822b7626bbab6a495552aea3457b5"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@ -86,6 +86,7 @@ var base__simd_8h =
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#aad2d440fbb9e5478b5ed24400a859942", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#a0c8bd67982681ecd53cd8d739be3a5a9", null ],
[ "mlx::core::simd::operator~", "namespacemlx_1_1core_1_1simd.html#a4c6ed06d523db05f99df7ef21b374c41", null ],
[ "mlx::core::simd::pow", "namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d", null ],
[ "mlx::core::simd::prod", "namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274", null ],
[ "mlx::core::simd::real", "namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5", null ],

View File

@ -111,356 +111,364 @@ $(function(){initNavTree('base__simd_8h_source.html',''); initResizable(true); }
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;complex&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>;</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887"> 13</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size</a> = 1;</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00016" data-start="{" data-end="};">
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html"> 16</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>&lt;T, 1&gt; {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f"> 17</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">size</a> = 1;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df"> 18</a></span> T <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a"> 19</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>() {}</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc"> 21</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">Simd</a>(<a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd&lt;U, 1&gt;</a> v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>) {}</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2"> 23</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">Simd</a>(U v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v) {}</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>};</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a> {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>;</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887"> 14</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size</a> = 1;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00017" data-start="{" data-end="};">
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html"> 17</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>&lt;T, 1&gt; {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f"> 18</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">size</a> = 1;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df"> 19</a></span> T <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a"> 20</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>() {}</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc"> 22</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">Simd</a>(<a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd&lt;U, 1&gt;</a> v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>) {}</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2"> 24</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">Simd</a>(U v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v) {}</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>};</div>
</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00027" data-start="{" data-end="}">
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4"> 27</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>(<span class="keyword">const</span> T* x) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)x;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00028" data-start="{" data-end="}">
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4"> 28</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>(<span class="keyword">const</span> T* x) {</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)x;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div>
</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a"> 32</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">store</a>(T* dst, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Maintain invariant that bool is either 0 or 1 as</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// simd comparison ops set all bits in the result to 1</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_same_v&lt;T, bool&gt; &amp;&amp; <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; 1) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> x = x &amp; 1;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)dst = x;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00033" data-start="{" data-end="}">
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a"> 33</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">store</a>(T* dst, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Maintain invariant that bool is either 0 or 1 as</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// simd comparison ops set all bits in the result to 1</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_same_v&lt;T, bool&gt; &amp;&amp; <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; 1) {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> x = x &amp; 1;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)dst = x;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>}</div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7"> 42</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54"> 45</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T, std::void_t&lt;decltype(std::declval&lt;T&gt;</a>().real())&gt;&gt; =</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00049" data-start="{" data-end="}">
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a797196eccc3690aac5c45e5f9c804ceb"> 49</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T&gt;</a>) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> T{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.real()), std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.imag())}};</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)};</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7"> 43</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54"> 46</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T, std::void_t&lt;decltype(std::declval&lt;T&gt;</a>().real())&gt;&gt; =</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00050" data-start="{" data-end="}">
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a797196eccc3690aac5c45e5f9c804ceb"> 50</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T&gt;</a>) {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> T{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.real()), std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.imag())}};</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)};</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a74ac0fd799967b0f303bfd26fc6a17cf"> 59</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> T(1.0) / <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>(in);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="}">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a74ac0fd799967b0f303bfd26fc6a17cf"> 60</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> T(1.0) / <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>(in);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="}">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afc915aed256295475ac88fde3a736f1f"> 64</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">recip</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> T(1.0) / in;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>}</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00065" data-start="{" data-end="}">
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afc915aed256295475ac88fde3a736f1f"> 65</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">recip</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> T(1.0) / in;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>}</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="foldopen" id="foldopen00068" data-start="" data-end="">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124"> 68</a></span><span class="preprocessor">#define DEFAULT_UNARY(name, op) \</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor"> Simd&lt;T, 1&gt; name(Simd&lt;T, 1&gt; in) { \</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> return op(in.value); \</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="foldopen" id="foldopen00069" data-start="" data-end="">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124"> 69</a></span><span class="preprocessor">#define DEFAULT_UNARY(name, op) \</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> Simd&lt;T, 1&gt; name(Simd&lt;T, 1&gt; in) { \</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor"> return op(in.value); \</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a70563bcd6c28802d11199812ffef38c8"> 74</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>-, std::negate{})</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afaa6ce61de4d80a4b7e9b2ab7454fff4"> 75</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>!, std::logical_not{})</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1958f026f26f313d17155ac87ea6eca3"> 76</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">abs</a>, std::abs)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3d4f9d08d1902e3d62c6f63d39329dbd"> 77</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>, std::acos)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a51071c8104494b5bd8097990da3bf943"> 78</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>)</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a75349994f899aecb68553c2247580163"> 79</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9323e370f6740651ebfd51367985d0e2"> 80</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a421845a6f68f88c58f520d2c1fa15914"> 81</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5ebae2e6cce1889513f15be3adb265ea"> 82</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713"> 83</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300"> 84</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>)</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae1265896d855818d20f2de2a9ebb684a"> 85</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8f73d1dac82177e0aeadaeda349c4f96"> 86</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa396efa6e9c94f4ac1f8381d5e07f069"> 87</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#abd09d3f5989558ce5156549a94d0fb04"> 88</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af9eafa15692dec783860ddae3dd8c072"> 89</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#adf754ade6cc1dd0e0bae0e31c7b513a2"> 90</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>)</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a92fcc8037ddb767bff517814ab55c259"> 91</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a40879bf874309c0a5abef783aea2057d"> 92</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859"> 93</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5abc381a85fe8b0e9cb472f874704652"> 94</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d"> 95</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5"> 98</a></span>auto <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;decltype(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a>(in.value)), 1&gt; {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> std::real(in.value);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>}</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a70563bcd6c28802d11199812ffef38c8"> 75</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>-, std::negate{})</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afaa6ce61de4d80a4b7e9b2ab7454fff4"> 76</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>!, std::logical_not{})</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1958f026f26f313d17155ac87ea6eca3"> 77</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">abs</a>, std::abs)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3d4f9d08d1902e3d62c6f63d39329dbd"> 78</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>, std::acos)</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a51071c8104494b5bd8097990da3bf943"> 79</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a75349994f899aecb68553c2247580163"> 80</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9323e370f6740651ebfd51367985d0e2"> 81</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a421845a6f68f88c58f520d2c1fa15914"> 82</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5ebae2e6cce1889513f15be3adb265ea"> 83</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713"> 84</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300"> 85</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae1265896d855818d20f2de2a9ebb684a"> 86</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8f73d1dac82177e0aeadaeda349c4f96"> 87</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa396efa6e9c94f4ac1f8381d5e07f069"> 88</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#abd09d3f5989558ce5156549a94d0fb04"> 89</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af9eafa15692dec783860ddae3dd8c072"> 90</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>)</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#adf754ade6cc1dd0e0bae0e31c7b513a2"> 91</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a92fcc8037ddb767bff517814ab55c259"> 92</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a40879bf874309c0a5abef783aea2057d"> 93</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859"> 94</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5abc381a85fe8b0e9cb472f874704652"> 95</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d"> 96</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00099" data-start="{" data-end="}">
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4c6ed06d523db05f99df7ef21b374c41"> 99</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; operator~(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; in) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> ~in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}</div>
</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20"> 102</a></span><span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">imag</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;<span class="keyword">decltype</span>(std::imag(in.value)), 1&gt; {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> std::imag(in.value);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00104" data-start="{" data-end="}">
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5"> 104</a></span><span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;<span class="keyword">decltype</span>(std::real(in.value)), 1&gt; {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> std::real(in.value);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>}</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00106" data-start="{" data-end="}">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac1c6c9b8bc7f3cd32ae39fa84975194d"> 106</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> std::isnan(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>}</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20"> 108</a></span><span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">imag</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;<span class="keyword">decltype</span>(std::imag(in.value)), 1&gt; {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> std::imag(in.value);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span>}</div>
</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="foldopen" id="foldopen00110" data-start="" data-end="">
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047"> 110</a></span><span class="preprocessor">#define DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) \</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor"> -&gt;Simd&lt;decltype(a.value OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> auto operator OP(T1 a, Simd&lt;T2, 1&gt; b)-&gt;Simd&lt;decltype(a OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, T2 b)-&gt;Simd&lt;decltype(a.value OP b), 1&gt; { \</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00112" data-start="{" data-end="}">
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac1c6c9b8bc7f3cd32ae39fa84975194d"> 112</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> std::isnan(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59"> 125</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab1f7f553d3a9176a70404a29cad06619"> 126</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab6a73491bcb185cd91ae4db6b0f21e49"> 127</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1d45c3b97cecfff86a2e43ae1f7fa185"> 128</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a33232e2342d5a3e542c9428924a25830"> 129</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1108d186d57c2010c743d3f9297befc7"> 130</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a60805b5f57ddbbf74f700b54cd3fc4f8"> 131</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a369178519e0e91fa936c0fd4aa9ee109"> 132</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3c42ac1dc74f6c0bb934dfa45986875b"> 133</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a82676bd32059d1172296f8074a841de6"> 134</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde"> 135</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a54c7f2f2b995eb767462b1228982967f"> 138</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; b_) {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> T r;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> r = a % b;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> r = std::remainder(a, b);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0)) {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> r += b;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> }</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> }</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="foldopen" id="foldopen00116" data-start="" data-end="">
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047"> 116</a></span><span class="preprocessor">#define DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) \</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor"> -&gt;Simd&lt;decltype(a.value OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor"> auto operator OP(T1 a, Simd&lt;T2, 1&gt; b)-&gt;Simd&lt;decltype(a OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, T2 b)-&gt;Simd&lt;decltype(a.value OP b), 1&gt; { \</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00156" data-start="{" data-end="}">
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab54ff0f073be504e8428912f8e21effd"> 156</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">return</span> (a &gt; b) ? a : b;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>}</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59"> 131</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab1f7f553d3a9176a70404a29cad06619"> 132</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab6a73491bcb185cd91ae4db6b0f21e49"> 133</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1d45c3b97cecfff86a2e43ae1f7fa185"> 134</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a33232e2342d5a3e542c9428924a25830"> 135</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1108d186d57c2010c743d3f9297befc7"> 136</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a60805b5f57ddbbf74f700b54cd3fc4f8"> 137</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a369178519e0e91fa936c0fd4aa9ee109"> 138</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3c42ac1dc74f6c0bb934dfa45986875b"> 139</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a82676bd32059d1172296f8074a841de6"> 140</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde"> 141</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00144" data-start="{" data-end="}">
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a54c7f2f2b995eb767462b1228982967f"> 144</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; b_) {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> T r;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> r = a % b;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> r = std::remainder(a, b);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> }</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">if</span> (r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0)) {</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> r += b;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> }</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> }</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span>}</div>
</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00168" data-start="{" data-end="}">
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac836568622a3e5957c275e115e2fcaf3"> 168</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> (a &lt; b) ? a : b;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>}</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00162" data-start="{" data-end="}">
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab54ff0f073be504e8428912f8e21effd"> 162</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> (a &gt; b) ? a : b;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span>}</div>
</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d"> 180</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> T base = a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> T res = 1;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1) {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> res *= base;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt;= 1;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> base *= base;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> }</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>}</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00174" data-start="{" data-end="}">
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac836568622a3e5957c275e115e2fcaf3"> 174</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">return</span> (a &lt; b) ? a : b;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00199" data-start="{" data-end="}">
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af5e8e8230c7d7af8201a3aaa7f491a2d"> 199</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> std::atan2(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00186" data-start="{" data-end="}">
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d"> 186</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> T base = a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> T res = 1;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1) {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> res *= base;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> }</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt;= 1;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> base *= base;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span>}</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="foldopen" id="foldopen00203" data-start="" data-end="">
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366"> 203</a></span><span class="preprocessor">#define DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(T1 a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, T2 b) { \</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> </div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00205" data-start="{" data-end="}">
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af5e8e8230c7d7af8201a3aaa7f491a2d"> 205</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">return</span> std::atan2(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span>}</div>
</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a23b59272b0760326844fffe20db9b3e2"> 217</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;)</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="foldopen" id="foldopen00209" data-start="" data-end="">
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366"> 209</a></span><span class="preprocessor">#define DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(T1 a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, T2 b) { \</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="preprocessor"> }</span></div>
</div>
<div class="foldopen" id="foldopen00219" data-start="{" data-end="}">
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aec6783f79ca181d6782a810ffb267482"> 219</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;=)</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
<div class="foldopen" id="foldopen00223" data-start="{" data-end="}">
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a23b59272b0760326844fffe20db9b3e2"> 223</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;)</div>
</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7928482ed5d25932be80413c7239125c"> 221</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a757838b9d56e132e797a381d3bb0dc86"> 222</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>template &lt;typename MaskT, typename T&gt;</div>
<div class="foldopen" id="foldopen00225" data-start="{" data-end="}">
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9e3e7b35d564c70de8fa0b6150570ed8"> 225</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;MaskT, 1&gt; mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; y) {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">return</span> mask.value ? x.value : y.value;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span>}</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aec6783f79ca181d6782a810ffb267482"> 225</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;=)</div>
</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00230" data-start="{" data-end="}">
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a567c06bf988af03988478679055a6c45"> 230</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">return</span> std::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span>}</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7928482ed5d25932be80413c7239125c"> 227</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a757838b9d56e132e797a381d3bb0dc86"> 228</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span>template &lt;typename MaskT, typename T&gt;</div>
<div class="foldopen" id="foldopen00231" data-start="{" data-end="}">
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9e3e7b35d564c70de8fa0b6150570ed8"> 231</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;MaskT, 1&gt; mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; y) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">return</span> mask.value ? x.value : y.value;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span>}</div>
</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="foldopen" id="foldopen00235" data-start="{" data-end="}">
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8aa81ebff4c26f21cae2253d885fd87a"> 235</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> y, U z) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> std::fma(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span>}</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00236" data-start="{" data-end="}">
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a567c06bf988af03988478679055a6c45"> 236</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> std::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>}</div>
</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">// Reductions</span></div>
<div class="foldopen" id="foldopen00240" data-start="" data-end="">
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e"> 240</a></span><span class="preprocessor">#define DEFAULT_REDUCTION(name, type) \</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor"> type name(Simd&lt;T, 1&gt; x) { \</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="preprocessor"> return x.value; \</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="preprocessor"> }</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="foldopen" id="foldopen00241" data-start="{" data-end="}">
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8aa81ebff4c26f21cae2253d885fd87a"> 241</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> y, U z) {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">return</span> std::fma(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>}</div>
</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a312ecd0ae1c38d32147cee71fd8539d7"> 246</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>, T)</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96db878d780a8da6abad19ac772d08ca"> 247</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, T)</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96ce7d90b3b8b6dddab36ef5b49fffc2"> 248</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>, T)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274"> 249</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>, T)</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae3b138b4bbcee0ca70b58a3e2ebd818c"> 250</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c"> 251</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="ttc" id="abase__simd_8h_html_a0adf6d25084019eff671abc59031573e"><div class="ttname"><a href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a></div><div class="ttdeci">#define DEFAULT_REDUCTION(name, type)</div><div class="ttdef"><b>Definition</b> base_simd.h:240</div></div>
<div class="ttc" id="abase__simd_8h_html_a122d6a2fa4dcfe78b221e52155419124"><div class="ttname"><a href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a></div><div class="ttdeci">#define DEFAULT_UNARY(name, op)</div><div class="ttdef"><b>Definition</b> base_simd.h:68</div></div>
<div class="ttc" id="abase__simd_8h_html_a1d01fad7230543d56f4facf17dcc4047"><div class="ttname"><a href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a></div><div class="ttdeci">#define DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:110</div></div>
<div class="ttc" id="abase__simd_8h_html_af5153f51cdd18d56d1de24b5da9f4366"><div class="ttname"><a href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:203</div></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment">// Reductions</span></div>
<div class="foldopen" id="foldopen00246" data-start="" data-end="">
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e"> 246</a></span><span class="preprocessor">#define DEFAULT_REDUCTION(name, type) \</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="preprocessor"> type name(Simd&lt;T, 1&gt; x) { \</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="preprocessor"> return x.value; \</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a312ecd0ae1c38d32147cee71fd8539d7"> 252</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>, T)</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96db878d780a8da6abad19ac772d08ca"> 253</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, T)</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96ce7d90b3b8b6dddab36ef5b49fffc2"> 254</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>, T)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274"> 255</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>, T)</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae3b138b4bbcee0ca70b58a3e2ebd818c"> 256</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c"> 257</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="ttc" id="abase__simd_8h_html_a0adf6d25084019eff671abc59031573e"><div class="ttname"><a href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a></div><div class="ttdeci">#define DEFAULT_REDUCTION(name, type)</div><div class="ttdef"><b>Definition</b> base_simd.h:246</div></div>
<div class="ttc" id="abase__simd_8h_html_a122d6a2fa4dcfe78b221e52155419124"><div class="ttname"><a href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a></div><div class="ttdeci">#define DEFAULT_UNARY(name, op)</div><div class="ttdef"><b>Definition</b> base_simd.h:69</div></div>
<div class="ttc" id="abase__simd_8h_html_a1d01fad7230543d56f4facf17dcc4047"><div class="ttname"><a href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a></div><div class="ttdeci">#define DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:116</div></div>
<div class="ttc" id="abase__simd_8h_html_af5153f51cdd18d56d1de24b5da9f4366"><div class="ttname"><a href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:209</div></div>
<div class="ttc" id="agroup__ops_html_ga2a466024f8061febc0a64be557644cb0"><div class="ttname"><a href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a></div><div class="ttdeci">array std(const array &amp;a, bool keepdims, int ddof=0, StreamOrDevice s={})</div><div class="ttdoc">Computes the standard deviation of the elements of an array.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:146</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a09a2f3f2bc999c16babf3d8d90994d6e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; sinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:41</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a18d330fd2c7360b2890a722232ba35b7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:34</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:210</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:215</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:297</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a3cb6ea94836e999c07329b34c501ed85"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log10(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:39</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a400d89d040f43d471b306a8e8bdb3974"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">mlx::core::simd::rint</a></div><div class="ttdeci">Simd&lt; T, N &gt; rint(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:127</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a445ddc4ed928656df64d889942588cfd"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f3cc8b2493586e83fd65640df3b60ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a></div><div class="ttdeci">Simd&lt; T, N &gt; abs(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:112</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:271</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:279</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a64e80f096a8baf99ba8d396414473cc7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">mlx::core::simd::is_complex</a></div><div class="ttdeci">constexpr bool is_complex</div><div class="ttdef"><b>Definition</b> base_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a660b79a51fb439f4aba91e2aea276300"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a></div><div class="ttdeci">Simd&lt; T, 1 &gt; conj(Simd&lt; T, 1 &gt; in)</div><div class="ttdef"><b>Definition</b> base_simd.h:84</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:276</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:284</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a64e80f096a8baf99ba8d396414473cc7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">mlx::core::simd::is_complex</a></div><div class="ttdeci">constexpr bool is_complex</div><div class="ttdef"><b>Definition</b> base_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a660b79a51fb439f4aba91e2aea276300"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a></div><div class="ttdeci">Simd&lt; T, 1 &gt; conj(Simd&lt; T, 1 &gt; in)</div><div class="ttdef"><b>Definition</b> base_simd.h:85</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:283</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:204</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:288</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:209</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8e22c484298d9af10b6604c835e52052"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a></div><div class="ttdeci">Simd&lt; T, N &gt; floor(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:113</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a97c69b04852ccba242f1348fda17ca20"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a></div><div class="ttdeci">auto imag(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::imag(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a97c69b04852ccba242f1348fda17ca20"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a></div><div class="ttdeci">auto imag(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::imag(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:108</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:275</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:280</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:269</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:287</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:98</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:104</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae1d5460c58c507a0104d8dfa90343f12"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a></div><div class="ttdeci">Simd&lt; T, N &gt; ceil(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae344abefc91c7d9c0a9506c868a84d61"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">mlx::core::simd::recip</a></div><div class="ttdeci">Simd&lt; T, N &gt; recip(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:131</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae39b8e1d1fff94947406eeb8ec6e0414"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; sqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:129</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:259</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aea75ddf8c696efc2e5e924667ed48e70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; rsqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:130</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a14e16c6e2ef5e89135cf8e85dc9f1f1f"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">mlx::core::simd::Simd&lt; T, 1 &gt;::size</a></div><div class="ttdeci">static constexpr int size</div><div class="ttdef"><b>Definition</b> base_simd.h:17</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a3f6e4a83ecf897465f44160b6fad5a7a"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd()</div><div class="ttdef"><b>Definition</b> base_simd.h:19</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a585bc4768c4f7e1313d7e8756fbb00cc"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(Simd&lt; U, 1 &gt; v)</div><div class="ttdef"><b>Definition</b> base_simd.h:21</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_ac348445fd44bce2b6ee77adeac7d82df"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">mlx::core::simd::Simd&lt; T, 1 &gt;::value</a></div><div class="ttdeci">T value</div><div class="ttdef"><b>Definition</b> base_simd.h:18</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_acf948f7c5e8829432c0ac17fc9f911e2"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(U v)</div><div class="ttdef"><b>Definition</b> base_simd.h:23</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:236</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a14e16c6e2ef5e89135cf8e85dc9f1f1f"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">mlx::core::simd::Simd&lt; T, 1 &gt;::size</a></div><div class="ttdeci">static constexpr int size</div><div class="ttdef"><b>Definition</b> base_simd.h:18</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a3f6e4a83ecf897465f44160b6fad5a7a"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd()</div><div class="ttdef"><b>Definition</b> base_simd.h:20</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a585bc4768c4f7e1313d7e8756fbb00cc"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(Simd&lt; U, 1 &gt; v)</div><div class="ttdef"><b>Definition</b> base_simd.h:22</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_ac348445fd44bce2b6ee77adeac7d82df"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">mlx::core::simd::Simd&lt; T, 1 &gt;::value</a></div><div class="ttdeci">T value</div><div class="ttdef"><b>Definition</b> base_simd.h:19</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_acf948f7c5e8829432c0ac17fc9f911e2"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(U v)</div><div class="ttdef"><b>Definition</b> base_simd.h:24</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html">mlx::core::simd::Simd</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a36e2b7db5ce6eb4dd456e99a4cd2c2cf"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">mlx::core::simd::Simd::value</a></div><div class="ttdeci">asd::Vector&lt; scalar_t, N &gt;::packed_t value</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:80</div></div>
</div><!-- fragment --></div><!-- contents -->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,145 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classmlx_1_1core_1_1_bitwise_invert.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">mlx::core::BitwiseInvert Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#aaa0180570a82e93988b982b93cd91623">BitwiseInvert</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#af7de39edef13cf483a6140f2dad4187e">eval_cpu</a>(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db">mlx::core::UnaryPrimitive::eval_cpu</a>(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#a09162c49334380f5a04433e00427abfa">eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447">mlx::core::UnaryPrimitive::eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#a22457fe46135c2df426b89cc15b1f940">is_equivalent</a>(const Primitive &amp;other) const override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a>(const std::vector&lt; array &gt; &amp;primals, const std::vector&lt; array &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22">operator=</a>(const UnaryPrimitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5">operator=</a>(UnaryPrimitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">mlx::core::Primitive::operator=</a>(const Primitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e">mlx::core::Primitive::operator=</a>(Primitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#a36558873262f1353f1575590e68ef8bf">output_shapes</a>(const std::vector&lt; array &gt; &amp;inputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">Primitive</a>(const Primitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">Primitive</a>(Primitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#a7a122900d844f1e57a0faa7ad8b47a5c">print</a>(std::ostream &amp;os) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2">UnaryPrimitive</a>(const UnaryPrimitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3">UnaryPrimitive</a>(UnaryPrimitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">vjp</a>(const std::vector&lt; array &gt; &amp;primals, const std::vector&lt; array &gt; &amp;cotangents, const std::vector&lt; int &gt; &amp;argnums, const std::vector&lt; array &gt; &amp;outputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#a2213ba033d215cca411edca552ac634e">vmap</a>(const std::vector&lt; array &gt; &amp;inputs, const std::vector&lt; int &gt; &amp;axes) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">mlx::core::BitwiseInvert</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">~Primitive</a>()=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de">~UnaryPrimitive</a>()=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,413 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::BitwiseInvert Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classmlx_1_1core_1_1_bitwise_invert.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classmlx_1_1core_1_1_bitwise_invert-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">mlx::core::BitwiseInvert Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="primitives_8h_source.html">primitives.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mlx::core::BitwiseInvert:</div>
<div class="dyncontent">
<div class="center">
<img src="classmlx_1_1core_1_1_bitwise_invert.png" usemap="#mlx::core::BitwiseInvert_map" alt=""/>
<map id="mlx::core::BitwiseInvert_map" name="mlx::core::BitwiseInvert_map">
<area href="classmlx_1_1core_1_1_unary_primitive.html" alt="mlx::core::UnaryPrimitive" shape="rect" coords="0,56,150,80"/>
<area href="classmlx_1_1core_1_1_primitive.html" alt="mlx::core::Primitive" shape="rect" coords="0,0,150,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaa0180570a82e93988b982b93cd91623" id="r_aaa0180570a82e93988b982b93cd91623"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaa0180570a82e93988b982b93cd91623">BitwiseInvert</a> (<a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>)</td></tr>
<tr class="separator:aaa0180570a82e93988b982b93cd91623"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7de39edef13cf483a6140f2dad4187e" id="r_af7de39edef13cf483a6140f2dad4187e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af7de39edef13cf483a6140f2dad4187e">eval_cpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out) override</td></tr>
<tr class="separator:af7de39edef13cf483a6140f2dad4187e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09162c49334380f5a04433e00427abfa" id="r_a09162c49334380f5a04433e00427abfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a09162c49334380f5a04433e00427abfa">eval_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out) override</td></tr>
<tr class="separator:a09162c49334380f5a04433e00427abfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2213ba033d215cca411edca552ac634e" id="r_a2213ba033d215cca411edca552ac634e"><td class="memItemLeft" align="right" valign="top">virtual std::pair&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;, std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2213ba033d215cca411edca552ac634e">vmap</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, const std::vector&lt; int &gt; &amp;axes) override</td></tr>
<tr class="memdesc:a2213ba033d215cca411edca552ac634e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The primitive must know how to vectorize itself across the given axes. <br /></td></tr>
<tr class="separator:a2213ba033d215cca411edca552ac634e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a122900d844f1e57a0faa7ad8b47a5c" id="r_a7a122900d844f1e57a0faa7ad8b47a5c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7a122900d844f1e57a0faa7ad8b47a5c">print</a> (std::ostream &amp;os) override</td></tr>
<tr class="memdesc:a7a122900d844f1e57a0faa7ad8b47a5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the primitive. <br /></td></tr>
<tr class="separator:a7a122900d844f1e57a0faa7ad8b47a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22457fe46135c2df426b89cc15b1f940" id="r_a22457fe46135c2df426b89cc15b1f940"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a22457fe46135c2df426b89cc15b1f940">is_equivalent</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other) const override</td></tr>
<tr class="memdesc:a22457fe46135c2df426b89cc15b1f940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalence check defaults to false unless overridden by the primitive. <br /></td></tr>
<tr class="separator:a22457fe46135c2df426b89cc15b1f940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36558873262f1353f1575590e68ef8bf" id="r_a36558873262f1353f1575590e68ef8bf"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a36558873262f1353f1575590e68ef8bf">output_shapes</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs) override</td></tr>
<tr class="memdesc:a36558873262f1353f1575590e68ef8bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output shapes of the primitive. <br /></td></tr>
<tr class="separator:a36558873262f1353f1575590e68ef8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmlx_1_1core_1_1_unary_primitive"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classmlx_1_1core_1_1_unary_primitive')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td></tr>
<tr class="memitem:a189f6d4ed369f82a4b724a29eb056d4e inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_a189f6d4ed369f82a4b724a29eb056d4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a> (<a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>)</td></tr>
<tr class="memdesc:a189f6d4ed369f82a4b724a29eb056d4e inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract base class for a primitive with a single output. <br /></td></tr>
<tr class="separator:a189f6d4ed369f82a4b724a29eb056d4e inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ed6e32c36200a3ff9bc592c9b300db inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_aa0ed6e32c36200a3ff9bc592c9b300db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db">eval_cpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs) override</td></tr>
<tr class="memdesc:aa0ed6e32c36200a3ff9bc592c9b300db inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the output arrays. <br /></td></tr>
<tr class="separator:aa0ed6e32c36200a3ff9bc592c9b300db inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a971fe9ad47f6569118879ce1d0f41447 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_a971fe9ad47f6569118879ce1d0f41447"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447">eval_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs) override</td></tr>
<tr class="separator:a971fe9ad47f6569118879ce1d0f41447 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0677ab99a5ca660ed6ab7902ea364de inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_ac0677ab99a5ca660ed6ab7902ea364de"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de">~UnaryPrimitive</a> ()=default</td></tr>
<tr class="separator:ac0677ab99a5ca660ed6ab7902ea364de inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9935cffc4f246d3d883bc3d26c5163f2 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_a9935cffc4f246d3d883bc3d26c5163f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2">UnaryPrimitive</a> (const <a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a9935cffc4f246d3d883bc3d26c5163f2 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780281fb04e2daf1be630c124bd605e3 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_a780281fb04e2daf1be630c124bd605e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3">UnaryPrimitive</a> (<a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:a780281fb04e2daf1be630c124bd605e3 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a859309a4f192f2679e07f2e4ff4d22 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_a0a859309a4f192f2679e07f2e4ff4d22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22">operator=</a> (const <a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a0a859309a4f192f2679e07f2e4ff4d22 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab90b2ea80f1d914be03cf44def5db5a5 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive" id="r_ab90b2ea80f1d914be03cf44def5db5a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5">operator=</a> (<a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:ab90b2ea80f1d914be03cf44def5db5a5 inherit pub_methods_classmlx_1_1core_1_1_unary_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmlx_1_1core_1_1_primitive"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classmlx_1_1core_1_1_primitive')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td></tr>
<tr class="memitem:afc69f22ee1f6e8a9ecc2c3a8f43b8fdb inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_afc69f22ee1f6e8a9ecc2c3a8f43b8fdb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> (<a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>)</td></tr>
<tr class="separator:afc69f22ee1f6e8a9ecc2c3a8f43b8fdb inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a8ae61e3289c4134232a69295268f8261"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmlx_1_1core_1_1_device.html">Device</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">device</a> ()</td></tr>
<tr class="memdesc:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The device the primitive will run on. <br /></td></tr>
<tr class="separator:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a46e6257397a662528f9f831842ac456a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a> ()</td></tr>
<tr class="memdesc:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream the primitive will run on. <br /></td></tr>
<tr class="separator:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a9fecf38f53da08ba1947543c2b3158c2"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;primals, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td></tr>
<tr class="memdesc:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a1dcb6807326eeab62474c6a0e3836d42"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">vjp</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;primals, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;cotangents, const std::vector&lt; int &gt; &amp;argnums, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs)</td></tr>
<tr class="memdesc:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vector-Jacobian product. <br /></td></tr>
<tr class="separator:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f70eb2d3b7e6c5fe52779c03f03777 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a29f70eb2d3b7e6c5fe52779c03f03777"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">~Primitive</a> ()=default</td></tr>
<tr class="separator:a29f70eb2d3b7e6c5fe52779c03f03777 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3349f745fae50ca7627f79a731a19e32 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a3349f745fae50ca7627f79a731a19e32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">Primitive</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a3349f745fae50ca7627f79a731a19e32 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a342da891b9882bdee9a0e0c1ac826eda inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a342da891b9882bdee9a0e0c1ac826eda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">Primitive</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:a342da891b9882bdee9a0e0c1ac826eda inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b1be7ea92f3a7bb19875c70259dad6b inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a6b1be7ea92f3a7bb19875c70259dad6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">operator=</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a6b1be7ea92f3a7bb19875c70259dad6b inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50bbddd43e1ba0cf5f127cd7aa756a9e inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a50bbddd43e1ba0cf5f127cd7aa756a9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e">operator=</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:a50bbddd43e1ba0cf5f127cd7aa756a9e inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aaa0180570a82e93988b982b93cd91623" name="aaa0180570a82e93988b982b93cd91623"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa0180570a82e93988b982b93cd91623">&#9670;&#160;</a></span>BitwiseInvert()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">mlx::core::BitwiseInvert::BitwiseInvert </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a></td> <td class="paramname"><span class="paramname"><em>stream</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel explicit">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af7de39edef13cf483a6140f2dad4187e" name="af7de39edef13cf483a6140f2dad4187e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7de39edef13cf483a6140f2dad4187e">&#9670;&#160;</a></span>eval_cpu()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::BitwiseInvert::eval_cpu </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>out</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132">mlx::core::UnaryPrimitive</a>.</p>
</div>
</div>
<a id="a09162c49334380f5a04433e00427abfa" name="a09162c49334380f5a04433e00427abfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09162c49334380f5a04433e00427abfa">&#9670;&#160;</a></span>eval_gpu()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::BitwiseInvert::eval_gpu </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>out</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb">mlx::core::UnaryPrimitive</a>.</p>
</div>
</div>
<a id="a22457fe46135c2df426b89cc15b1f940" name="a22457fe46135c2df426b89cc15b1f940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22457fe46135c2df426b89cc15b1f940">&#9670;&#160;</a></span>is_equivalent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mlx::core::BitwiseInvert::is_equivalent </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Equivalence check defaults to false unless overridden by the primitive. </p>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a36558873262f1353f1575590e68ef8bf" name="a36558873262f1353f1575590e68ef8bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36558873262f1353f1575590e68ef8bf">&#9670;&#160;</a></span>output_shapes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &gt; mlx::core::BitwiseInvert::output_shapes </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the output shapes of the primitive. </p>
<p>This is not required to be implemented by derived classes, in which case it will throw. </p>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a7a122900d844f1e57a0faa7ad8b47a5c" name="a7a122900d844f1e57a0faa7ad8b47a5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a122900d844f1e57a0faa7ad8b47a5c">&#9670;&#160;</a></span>print()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::BitwiseInvert::print </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;</td> <td class="paramname"><span class="paramname"><em>os</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Print the primitive. </p>
<p>Implements <a class="el" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a2213ba033d215cca411edca552ac634e" name="a2213ba033d215cca411edca552ac634e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2213ba033d215cca411edca552ac634e">&#9670;&#160;</a></span>vmap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::pair&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;, std::vector&lt; int &gt; &gt; mlx::core::BitwiseInvert::vmap </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The primitive must know how to vectorize itself across the given axes. </p>
<p>The output is a pair containing the output arrays representing the vectorized computation and the axes which corresponds to the vectorized dimensions of each output. </p>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103">mlx::core::Primitive</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/<a class="el" href="primitives_8h_source.html">primitives.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html">BitwiseInvert</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
var classmlx_1_1core_1_1_bitwise_invert =
[
[ "BitwiseInvert", "classmlx_1_1core_1_1_bitwise_invert.html#aaa0180570a82e93988b982b93cd91623", null ],
[ "eval_cpu", "classmlx_1_1core_1_1_bitwise_invert.html#af7de39edef13cf483a6140f2dad4187e", null ],
[ "eval_gpu", "classmlx_1_1core_1_1_bitwise_invert.html#a09162c49334380f5a04433e00427abfa", null ],
[ "is_equivalent", "classmlx_1_1core_1_1_bitwise_invert.html#a22457fe46135c2df426b89cc15b1f940", null ],
[ "output_shapes", "classmlx_1_1core_1_1_bitwise_invert.html#a36558873262f1353f1575590e68ef8bf", null ],
[ "print", "classmlx_1_1core_1_1_bitwise_invert.html#a7a122900d844f1e57a0faa7ad8b47a5c", null ],
[ "vmap", "classmlx_1_1core_1_1_bitwise_invert.html#a2213ba033d215cca411edca552ac634e", null ]
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

View File

@ -0,0 +1,137 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classmlx_1_1core_1_1_l_u_f.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">mlx::core::LUF Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classmlx_1_1core_1_1_l_u_f.html">mlx::core::LUF</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913">eval_cpu</a>(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html">mlx::core::LUF</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf">eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html">mlx::core::LUF</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">is_equivalent</a>(const Primitive &amp;other) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a>(const std::vector&lt; array &gt; &amp;primals, const std::vector&lt; array &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html">mlx::core::LUF</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">operator=</a>(const Primitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e">operator=</a>(Primitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">output_shapes</a>(const std::vector&lt; array &gt; &amp;inputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">Primitive</a>(const Primitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">Primitive</a>(Primitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html#a7e71d966d49e473f4bf0524c18425a07">print</a>(std::ostream &amp;os) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html">mlx::core::LUF</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">vjp</a>(const std::vector&lt; array &gt; &amp;primals, const std::vector&lt; array &gt; &amp;cotangents, const std::vector&lt; int &gt; &amp;argnums, const std::vector&lt; array &gt; &amp;outputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103">vmap</a>(const std::vector&lt; array &gt; &amp;inputs, const std::vector&lt; int &gt; &amp;axes)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">~Primitive</a>()=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,304 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::LUF Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classmlx_1_1core_1_1_l_u_f.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classmlx_1_1core_1_1_l_u_f-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">mlx::core::LUF Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="primitives_8h_source.html">primitives.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mlx::core::LUF:</div>
<div class="dyncontent">
<div class="center">
<img src="classmlx_1_1core_1_1_l_u_f.png" usemap="#mlx::core::LUF_map" alt=""/>
<map id="mlx::core::LUF_map" name="mlx::core::LUF_map">
<area href="classmlx_1_1core_1_1_primitive.html" alt="mlx::core::Primitive" shape="rect" coords="0,0,116,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0d8687ad3af3ff5b74881f1a4b312051" id="r_a0d8687ad3af3ff5b74881f1a4b312051"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a> (<a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>)</td></tr>
<tr class="separator:a0d8687ad3af3ff5b74881f1a4b312051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb497d6b011210a8090bdc8fdf14913" id="r_a6cb497d6b011210a8090bdc8fdf14913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6cb497d6b011210a8090bdc8fdf14913">eval_cpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs) override</td></tr>
<tr class="memdesc:a6cb497d6b011210a8090bdc8fdf14913"><td class="mdescLeft">&#160;</td><td class="mdescRight">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the output arrays. <br /></td></tr>
<tr class="separator:a6cb497d6b011210a8090bdc8fdf14913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2e955a6ca2ffbfab463a3e9c69beabf" id="r_aa2e955a6ca2ffbfab463a3e9c69beabf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa2e955a6ca2ffbfab463a3e9c69beabf">eval_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs) override</td></tr>
<tr class="separator:aa2e955a6ca2ffbfab463a3e9c69beabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e71d966d49e473f4bf0524c18425a07" id="r_a7e71d966d49e473f4bf0524c18425a07"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e71d966d49e473f4bf0524c18425a07">print</a> (std::ostream &amp;os) override</td></tr>
<tr class="memdesc:a7e71d966d49e473f4bf0524c18425a07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the primitive. <br /></td></tr>
<tr class="separator:a7e71d966d49e473f4bf0524c18425a07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmlx_1_1core_1_1_primitive"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classmlx_1_1core_1_1_primitive')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td></tr>
<tr class="memitem:afc69f22ee1f6e8a9ecc2c3a8f43b8fdb inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_afc69f22ee1f6e8a9ecc2c3a8f43b8fdb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> (<a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>)</td></tr>
<tr class="separator:afc69f22ee1f6e8a9ecc2c3a8f43b8fdb inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a8ae61e3289c4134232a69295268f8261"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmlx_1_1core_1_1_device.html">Device</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">device</a> ()</td></tr>
<tr class="memdesc:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The device the primitive will run on. <br /></td></tr>
<tr class="separator:a8ae61e3289c4134232a69295268f8261 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a46e6257397a662528f9f831842ac456a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a> ()</td></tr>
<tr class="memdesc:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream the primitive will run on. <br /></td></tr>
<tr class="separator:a46e6257397a662528f9f831842ac456a inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a9fecf38f53da08ba1947543c2b3158c2"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;primals, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td></tr>
<tr class="memdesc:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a1dcb6807326eeab62474c6a0e3836d42"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">vjp</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;primals, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;cotangents, const std::vector&lt; int &gt; &amp;argnums, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs)</td></tr>
<tr class="memdesc:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vector-Jacobian product. <br /></td></tr>
<tr class="separator:a1dcb6807326eeab62474c6a0e3836d42 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac632b9619dd7a6a0f177bd36202e8103 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_ac632b9619dd7a6a0f177bd36202e8103"><td class="memItemLeft" align="right" valign="top">virtual std::pair&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;, std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103">vmap</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, const std::vector&lt; int &gt; &amp;axes)</td></tr>
<tr class="memdesc:ac632b9619dd7a6a0f177bd36202e8103 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The primitive must know how to vectorize itself across the given axes. <br /></td></tr>
<tr class="separator:ac632b9619dd7a6a0f177bd36202e8103 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6140a502af4c2bbbc776ab26e9afebcd inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a6140a502af4c2bbbc776ab26e9afebcd"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">is_equivalent</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other) const</td></tr>
<tr class="memdesc:a6140a502af4c2bbbc776ab26e9afebcd inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalence check defaults to false unless overridden by the primitive. <br /></td></tr>
<tr class="separator:a6140a502af4c2bbbc776ab26e9afebcd inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_aa5b443d71db1c7ed31a5ae6e31b7fe29"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">output_shapes</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs)</td></tr>
<tr class="memdesc:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output shapes of the primitive. <br /></td></tr>
<tr class="separator:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f70eb2d3b7e6c5fe52779c03f03777 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a29f70eb2d3b7e6c5fe52779c03f03777"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">~Primitive</a> ()=default</td></tr>
<tr class="separator:a29f70eb2d3b7e6c5fe52779c03f03777 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3349f745fae50ca7627f79a731a19e32 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a3349f745fae50ca7627f79a731a19e32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">Primitive</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a3349f745fae50ca7627f79a731a19e32 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a342da891b9882bdee9a0e0c1ac826eda inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a342da891b9882bdee9a0e0c1ac826eda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">Primitive</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:a342da891b9882bdee9a0e0c1ac826eda inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b1be7ea92f3a7bb19875c70259dad6b inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a6b1be7ea92f3a7bb19875c70259dad6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">operator=</a> (const <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;other)=delete</td></tr>
<tr class="separator:a6b1be7ea92f3a7bb19875c70259dad6b inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50bbddd43e1ba0cf5f127cd7aa756a9e inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a50bbddd43e1ba0cf5f127cd7aa756a9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e">operator=</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&amp;other)=delete</td></tr>
<tr class="separator:a50bbddd43e1ba0cf5f127cd7aa756a9e inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a0d8687ad3af3ff5b74881f1a4b312051" name="a0d8687ad3af3ff5b74881f1a4b312051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d8687ad3af3ff5b74881f1a4b312051">&#9670;&#160;</a></span>LUF()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">mlx::core::LUF::LUF </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a></td> <td class="paramname"><span class="paramname"><em>stream</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel explicit">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6cb497d6b011210a8090bdc8fdf14913" name="a6cb497d6b011210a8090bdc8fdf14913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cb497d6b011210a8090bdc8fdf14913">&#9670;&#160;</a></span>eval_cpu()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::LUF::eval_cpu </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>outputs</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the output arrays. </p>
<p>To avoid unnecessary allocations, the evaluation function is responsible for allocating space for the array. </p>
<p>Implements <a class="el" href="classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="aa2e955a6ca2ffbfab463a3e9c69beabf" name="aa2e955a6ca2ffbfab463a3e9c69beabf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2e955a6ca2ffbfab463a3e9c69beabf">&#9670;&#160;</a></span>eval_gpu()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::LUF::eval_gpu </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>outputs</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a7e71d966d49e473f4bf0524c18425a07" name="a7e71d966d49e473f4bf0524c18425a07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e71d966d49e473f4bf0524c18425a07">&#9670;&#160;</a></span>print()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::LUF::print </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;</td> <td class="paramname"><span class="paramname"><em>os</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Print the primitive. </p>
<p>Implements <a class="el" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">mlx::core::Primitive</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/<a class="el" href="primitives_8h_source.html">primitives.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_l_u_f.html">LUF</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var classmlx_1_1core_1_1_l_u_f =
[
[ "LUF", "classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051", null ],
[ "eval_cpu", "classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913", null ],
[ "eval_gpu", "classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf", null ],
[ "print", "classmlx_1_1core_1_1_l_u_f.html#a7e71d966d49e473f4bf0524c18425a07", null ]
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -119,67 +119,68 @@ $(function(){initNavTree('classmlx_1_1core_1_1array.html',''); initResizable(tru
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187">array</a>(const array &amp;other)=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c">array</a>(array &amp;&amp;other)=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#abc26528271076510822e374d1668a94b">array</a>(Shape shape, Dtype dtype, std::shared_ptr&lt; Primitive &gt; primitive, std::vector&lt; array &gt; inputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">attach_event</a>(Event e) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">available</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">buffer</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">copy_shared_buffer</a>(const array &amp;other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">copy_shared_buffer</a>(const array &amp;other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">data</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">data_shared_ptr</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">detach</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">evaluated</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">has_primitive</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">id</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">inputs</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">is_available</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">item</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7">item</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a45b1c9763fe921fe5880ca28316ae98c">make_arrays</a>(std::vector&lt; Shape &gt; shapes, const std::vector&lt; Dtype &gt; &amp;dtypes, const std::shared_ptr&lt; Primitive &gt; &amp;primitive, const std::vector&lt; array &gt; &amp;inputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">move_shared_buffer</a>(array other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">move_shared_buffer</a>(array other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">nbytes</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">ndim</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36">operator=</a>(const array &amp;other) &amp;&amp;=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd">operator=</a>(array &amp;&amp;other) &amp;&amp;=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479">operator=</a>(array &amp;&amp;other) &amp;=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147">operator=</a>(const array &amp;other) &amp;</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">overwrite_descriptor</a>(const array &amp;other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c">primitive_id</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">primitive_ptr</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">scheduled</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(allocator::Buffer buffer, Deleter d=allocator::free)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838">set_data</a>(allocator::Buffer buffer, size_t data_size, Strides strides, Flags flags, Deleter d=allocator::free)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">set_siblings</a>(std::vector&lt; array &gt; siblings, uint16_t position)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">set_status</a>(Status s) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">set_tracer</a>(bool is_tracer)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ac50382b652f6e8fbd50d42b7ff595810">shape</a>(int dim) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">siblings</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> enum name</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ac9bfc251a9937eaefbe7f8c5ffd304d1">strides</a>(int dim) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">unscheduled</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">wait</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">~array</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2">array</a>(allocator::Buffer data, Shape shape, Dtype dtype, Strides strides, size_t data_size, Flags flags, Deleter deleter=allocator::free)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da">attach_event</a>(Event e) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae">available</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">begin</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd">buffer</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">copy_shared_buffer</a>(const array &amp;other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a92974c656c35a972ad241f80584bbd29">copy_shared_buffer</a>(const array &amp;other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a99fb28eeab39b9f429373f8bd7557676">data</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ab84c792117e29cdf90ef3433303f6141">data_shared_ptr</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">detach</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4">end</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a">eval</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268">evaluated</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf">event</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">has_primitive</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#adfa53f3f26bb0f942fb1c67ec8cd5380">id</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">inputs</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f">inputs</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">is_available</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c">is_tracer</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">item</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7">item</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a45b1c9763fe921fe5880ca28316ae98c">make_arrays</a>(std::vector&lt; Shape &gt; shapes, const std::vector&lt; Dtype &gt; &amp;dtypes, const std::shared_ptr&lt; Primitive &gt; &amp;primitive, const std::vector&lt; array &gt; &amp;inputs)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">move_shared_buffer</a>(array other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a38d7ad605f8282e5e49d0c09e0555c78">move_shared_buffer</a>(array other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">nbytes</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">ndim</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36">operator=</a>(const array &amp;other) &amp;&amp;=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd">operator=</a>(array &amp;&amp;other) &amp;&amp;=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479">operator=</a>(array &amp;&amp;other) &amp;=default</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147">operator=</a>(const array &amp;other) &amp;</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289">outputs</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387">overwrite_descriptor</a>(const array &amp;other)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c">primitive</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c">primitive_id</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469">primitive_ptr</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae">scheduled</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">set_data</a>(allocator::Buffer buffer, Deleter d=allocator::free)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a5f338202a39d37fa3f4241e851a15838">set_data</a>(allocator::Buffer buffer, size_t data_size, Strides strides, Flags flags, Deleter d=allocator::free)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1">set_siblings</a>(std::vector&lt; array &gt; siblings, uint16_t position)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">set_status</a>(Status s) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">set_tracer</a>(bool is_tracer)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ac50382b652f6e8fbd50d42b7ff595810">shape</a>(int dim) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">siblings</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c">siblings</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078">Status</a> enum name</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad">status</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>() const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#ac9bfc251a9937eaefbe7f8c5ffd304d1">strides</a>(int dim) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb">unscheduled</a> enum value</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a648592006f1c92287734ba2428eaa45e">wait</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2">~array</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1array.html">mlx::core::array</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@ -219,6 +219,9 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:af5ad83605d4eea81561246873bee1d7c" id="r_af5ad83605d4eea81561246873bee1d7c"><td class="memItemLeft" align="right" valign="top">std::uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af5ad83605d4eea81561246873bee1d7c">primitive_id</a> () const</td></tr>
<tr class="memdesc:af5ad83605d4eea81561246873bee1d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique identifier for an arrays primitive. <br /></td></tr>
<tr class="separator:af5ad83605d4eea81561246873bee1d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2476f987ec7a5afb7665d3b3974db0b2" id="r_a2476f987ec7a5afb7665d3b3974db0b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2476f987ec7a5afb7665d3b3974db0b2">array</a> (<a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a> <a class="el" href="#a72e3ce6c03fefe272cadf214bd127b95">data</a>, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="el" href="#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="el" href="#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>, <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="el" href="#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>, size_t <a class="el" href="#afaf2a370fa35d96af1b27a4b814e3bfd">data_size</a>, <a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a> <a class="el" href="#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>, <a class="el" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a> deleter=<a class="el" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a>)</td></tr>
<tr class="memdesc:a2476f987ec7a5afb7665d3b3974db0b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build an array from all the info held by the array description. <br /></td></tr>
<tr class="separator:a2476f987ec7a5afb7665d3b3974db0b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a790548666511d8c6d9f92ee79d2ce14c" id="r_a790548666511d8c6d9f92ee79d2ce14c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a790548666511d8c6d9f92ee79d2ce14c">primitive</a> () const</td></tr>
<tr class="memdesc:a790548666511d8c6d9f92ee79d2ce14c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The array's primitive. <br /></td></tr>
<tr class="separator:a790548666511d8c6d9f92ee79d2ce14c"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -331,7 +334,7 @@ Static Public Member Functions</h2></td></tr>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a75fac72da3ce214fa3737df92a64b232" name="a75fac72da3ce214fa3737df92a64b232"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75fac72da3ce214fa3737df92a64b232">&#9670;&#160;</a></span>array() <span class="overload">[1/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a75fac72da3ce214fa3737df92a64b232">&#9670;&#160;</a></span>array() <span class="overload">[1/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -364,7 +367,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a6db4b8c28c767cc16ad2785ece496dca" name="a6db4b8c28c767cc16ad2785ece496dca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6db4b8c28c767cc16ad2785ece496dca">&#9670;&#160;</a></span>array() <span class="overload">[2/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a6db4b8c28c767cc16ad2785ece496dca">&#9670;&#160;</a></span>array() <span class="overload">[2/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -393,7 +396,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="abcc030a1c2434ec75ad9425751bffdc7" name="abcc030a1c2434ec75ad9425751bffdc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcc030a1c2434ec75ad9425751bffdc7">&#9670;&#160;</a></span>array() <span class="overload">[3/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#abcc030a1c2434ec75ad9425751bffdc7">&#9670;&#160;</a></span>array() <span class="overload">[3/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -429,7 +432,7 @@ template&lt;typename It&gt; </div>
</div>
</div>
<a id="a87f170384f4fb93decf2b80ae7280f00" name="a87f170384f4fb93decf2b80ae7280f00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87f170384f4fb93decf2b80ae7280f00">&#9670;&#160;</a></span>array() <span class="overload">[4/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a87f170384f4fb93decf2b80ae7280f00">&#9670;&#160;</a></span>array() <span class="overload">[4/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -460,7 +463,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a46642301da11e3eb4312c37349fbc9d7" name="a46642301da11e3eb4312c37349fbc9d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46642301da11e3eb4312c37349fbc9d7">&#9670;&#160;</a></span>array() <span class="overload">[5/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a46642301da11e3eb4312c37349fbc9d7">&#9670;&#160;</a></span>array() <span class="overload">[5/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -485,7 +488,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a5e1812029394bfb1a706c83611286f49" name="a5e1812029394bfb1a706c83611286f49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e1812029394bfb1a706c83611286f49">&#9670;&#160;</a></span>array() <span class="overload">[6/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a5e1812029394bfb1a706c83611286f49">&#9670;&#160;</a></span>array() <span class="overload">[6/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -514,7 +517,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a89a7b0c02366ca456232d347ebb11507" name="a89a7b0c02366ca456232d347ebb11507"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89a7b0c02366ca456232d347ebb11507">&#9670;&#160;</a></span>array() <span class="overload">[7/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a89a7b0c02366ca456232d347ebb11507">&#9670;&#160;</a></span>array() <span class="overload">[7/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -550,7 +553,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a485399a6680a370cabb08470306b63d4" name="a485399a6680a370cabb08470306b63d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a485399a6680a370cabb08470306b63d4">&#9670;&#160;</a></span>array() <span class="overload">[8/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a485399a6680a370cabb08470306b63d4">&#9670;&#160;</a></span>array() <span class="overload">[8/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -589,7 +592,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="a297df274e2da5cb884257bbeffd6b187" name="a297df274e2da5cb884257bbeffd6b187"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a297df274e2da5cb884257bbeffd6b187">&#9670;&#160;</a></span>array() <span class="overload">[9/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a297df274e2da5cb884257bbeffd6b187">&#9670;&#160;</a></span>array() <span class="overload">[9/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -614,7 +617,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="ab6cbccbba66cc54acda4390b19f0397c" name="ab6cbccbba66cc54acda4390b19f0397c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6cbccbba66cc54acda4390b19f0397c">&#9670;&#160;</a></span>array() <span class="overload">[10/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#ab6cbccbba66cc54acda4390b19f0397c">&#9670;&#160;</a></span>array() <span class="overload">[10/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -639,7 +642,7 @@ template&lt;typename T&gt; </div>
</div>
</div>
<a id="abc26528271076510822e374d1668a94b" name="abc26528271076510822e374d1668a94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc26528271076510822e374d1668a94b">&#9670;&#160;</a></span>array() <span class="overload">[11/11]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#abc26528271076510822e374d1668a94b">&#9670;&#160;</a></span>array() <span class="overload">[11/12]</span></h2>
<div class="memitem">
<div class="memproto">
@ -670,6 +673,63 @@ template&lt;typename T&gt; </div>
<p>The following methods should be used with caution. </p>
<p>They are intended for use by the backend implementation and the API may change. </p>
</div>
</div>
<a id="a2476f987ec7a5afb7665d3b3974db0b2" name="a2476f987ec7a5afb7665d3b3974db0b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2476f987ec7a5afb7665d3b3974db0b2">&#9670;&#160;</a></span>array() <span class="overload">[12/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">mlx::core::array::array </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a></td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a></td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>data_size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html">Flags</a></td> <td class="paramname"><span class="paramname"><em>flags</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">Deleter</a></td> <td class="paramname"><span class="paramname"><em>deleter</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5">allocator::free</a></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel explicit">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Build an array from all the info held by the array description. </p>
<p>Including the buffer, strides, flags. </p>
</div>
</div>
<a id="a2f16c1ef8ee248d2fba95520c86dfad2" name="a2f16c1ef8ee248d2fba95520c86dfad2"></a>

View File

@ -20,6 +20,7 @@ var classmlx_1_1core_1_1array =
[ "array", "classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187", null ],
[ "array", "classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c", null ],
[ "array", "classmlx_1_1core_1_1array.html#abc26528271076510822e374d1668a94b", null ],
[ "array", "classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2", null ],
[ "~array", "classmlx_1_1core_1_1array.html#a2f16c1ef8ee248d2fba95520c86dfad2", null ],
[ "attach_event", "classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da", null ],
[ "begin", "classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914", null ],

View File

@ -111,25 +111,24 @@ $(function(){initNavTree('classmlx_1_1core_1_1metal_1_1_device.html',''); initRe
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901">add_temporaries</a>(std::vector&lt; array &gt; arrays, int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576">add_temporary</a>(array arr, int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881">argument_encoder</a>(const std::vector&lt; MTL::ArgumentDescriptor * &gt; &amp;arg_descs) const</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">commit_command_buffer</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(const Device &amp;)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf">end_encoding</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">get_architecture</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">get_command_buffer</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">get_command_buffer_ops</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e">command_buffer_needs_commit</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">commit_command_buffer</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(const Device &amp;)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf">end_encoding</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">get_architecture</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">get_command_buffer</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">get_command_encoder</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a">get_kernel</a>(const std::string &amp;base_name, MTL::Library *mtl_lib, const std::string &amp;hash_name=&quot;&quot;, const MTLFCList &amp;func_consts={}, const std::vector&lt; MTL::Function * &gt; &amp;linked_functions={})</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf">get_kernel</a>(const std::string &amp;base_name, const std::string &amp;lib_name=&quot;mlx&quot;, const std::string &amp;hash_name=&quot;&quot;, const MTLFCList &amp;func_consts={}, const std::vector&lt; MTL::Function * &gt; &amp;linked_functions={})</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0">get_library</a>(const std::string &amp;name, const std::function&lt; std::string(void)&gt; &amp;builder)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6">increment_command_buffer_ops</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mtl_device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">new_queue</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(const Device &amp;)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(const std::string &amp;lib_name, const std::string &amp;lib_path)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">register_library</a>(const std::string &amp;lib_name)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">set_residency_set</a>(const MTL::ResidencySet *residency_set)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">~Device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653">mtl_device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">new_queue</a>(int index)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(const Device &amp;)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d">register_library</a>(const std::string &amp;lib_name, const std::string &amp;lib_path)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf">register_library</a>(const std::string &amp;lib_name)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">set_residency_set</a>(const MTL::ResidencySet *residency_set)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">~Device</a>()</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@ -129,10 +129,8 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a8135ae2a8c1e6f3861e84d4e60c28b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fe3970fbe92ccc55fce4241ffbe5210" id="r_a5fe3970fbe92ccc55fce4241ffbe5210"><td class="memItemLeft" align="right" valign="top">MTL::CommandBuffer *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5fe3970fbe92ccc55fce4241ffbe5210">get_command_buffer</a> (int index)</td></tr>
<tr class="separator:a5fe3970fbe92ccc55fce4241ffbe5210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a064e1cb6a16de7a0619f6447622350f8" id="r_a064e1cb6a16de7a0619f6447622350f8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a064e1cb6a16de7a0619f6447622350f8">get_command_buffer_ops</a> (int index)</td></tr>
<tr class="separator:a064e1cb6a16de7a0619f6447622350f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a33d4d601423a3d3c23d5ad7072abb6" id="r_a7a33d4d601423a3d3c23d5ad7072abb6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7a33d4d601423a3d3c23d5ad7072abb6">increment_command_buffer_ops</a> (int index)</td></tr>
<tr class="separator:a7a33d4d601423a3d3c23d5ad7072abb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2580a395419fa6735e8ca5a67495700e" id="r_a2580a395419fa6735e8ca5a67495700e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2580a395419fa6735e8ca5a67495700e">command_buffer_needs_commit</a> (int index)</td></tr>
<tr class="separator:a2580a395419fa6735e8ca5a67495700e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95248f1387824067fd4fed23ace5ac0c" id="r_a95248f1387824067fd4fed23ace5ac0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a95248f1387824067fd4fed23ace5ac0c">commit_command_buffer</a> (int index)</td></tr>
<tr class="separator:a95248f1387824067fd4fed23ace5ac0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa682ef612def4890f5152f81ffb7e6" id="r_affa682ef612def4890f5152f81ffb7e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#affa682ef612def4890f5152f81ffb7e6">get_command_encoder</a> (int index)</td></tr>
@ -276,6 +274,23 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2580a395419fa6735e8ca5a67495700e" name="a2580a395419fa6735e8ca5a67495700e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2580a395419fa6735e8ca5a67495700e">&#9670;&#160;</a></span>command_buffer_needs_commit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool mlx::core::metal::Device::command_buffer_needs_commit </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a95248f1387824067fd4fed23ace5ac0c" name="a95248f1387824067fd4fed23ace5ac0c"></a>
@ -352,23 +367,6 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a064e1cb6a16de7a0619f6447622350f8" name="a064e1cb6a16de7a0619f6447622350f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a064e1cb6a16de7a0619f6447622350f8">&#9670;&#160;</a></span>get_command_buffer_ops()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mlx::core::metal::Device::get_command_buffer_ops </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="affa682ef612def4890f5152f81ffb7e6" name="affa682ef612def4890f5152f81ffb7e6"></a>
@ -479,23 +477,6 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7a33d4d601423a3d3c23d5ad7072abb6" name="a7a33d4d601423a3d3c23d5ad7072abb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a33d4d601423a3d3c23d5ad7072abb6">&#9670;&#160;</a></span>increment_command_buffer_ops()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mlx::core::metal::Device::increment_command_buffer_ops </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a31dba377f2be44a746db10d1b9367653" name="a31dba377f2be44a746db10d1b9367653"></a>

View File

@ -6,16 +6,15 @@ var classmlx_1_1core_1_1metal_1_1_device =
[ "add_temporaries", "classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901", null ],
[ "add_temporary", "classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576", null ],
[ "argument_encoder", "classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881", null ],
[ "command_buffer_needs_commit", "classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e", null ],
[ "commit_command_buffer", "classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c", null ],
[ "end_encoding", "classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf", null ],
[ "get_architecture", "classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b", null ],
[ "get_command_buffer", "classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210", null ],
[ "get_command_buffer_ops", "classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8", null ],
[ "get_command_encoder", "classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6", null ],
[ "get_kernel", "classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf", null ],
[ "get_kernel", "classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a", null ],
[ "get_library", "classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0", null ],
[ "increment_command_buffer_ops", "classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6", null ],
[ "mtl_device", "classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653", null ],
[ "new_queue", "classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67", null ],
[ "operator=", "classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73", null ],

View File

@ -237,7 +237,7 @@ $(function(){initNavTree('common_2binary_8h_source.html',''); initResizable(true
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="abackend_2common_2utils_8h_html"><div class="ttname"><a href="backend_2common_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:88</div></div>
@ -245,7 +245,7 @@ $(function(){initNavTree('common_2binary_8h_source.html',''); initResizable(true
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad41cc5e7aebfcad849ad15d697584cf8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array&#39;s datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9e3a02b4c0023c36248dc75c887214f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, Deleter d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a24eef9908f164adeece3be7c6924919a"><div class="ttname"><a href="namespacemlx_1_1core.html#a24eef9908f164adeece3be7c6924919a">mlx::core::get_binary_op_type</a></div><div class="ttdeci">BinaryOpType get_binary_op_type(const array &amp;a, const array &amp;b)</div><div class="ttdef"><b>Definition</b> binary.h:19</div></div>

View File

@ -220,7 +220,7 @@ $(function(){initNavTree('common_2hadamard_8h_source.html',''); initResizable(tr
<div class="ttc" id="anamespacemlx_1_1core_html_a50214cf406957fab27c8bef32046f030"><div class="ttname"><a href="namespacemlx_1_1core.html#a50214cf406957fab27c8bef32046f030">mlx::core::hadamard_matrices</a></div><div class="ttdeci">const std::map&lt; int, std::string_view &gt; hadamard_matrices()</div><div class="ttdef"><b>Definition</b> hadamard.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a862c6b94fec384c34a699ced64d01404"><div class="ttname"><a href="namespacemlx_1_1core.html#a862c6b94fec384c34a699ced64d01404">mlx::core::h20</a></div><div class="ttdeci">constexpr std::string_view h20</div><div class="ttdef"><b>Definition</b> hadamard.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac447ad59592dd06435adca7df37e33ad"><div class="ttname"><a href="namespacemlx_1_1core.html#ac447ad59592dd06435adca7df37e33ad">mlx::core::h28</a></div><div class="ttdeci">constexpr std::string_view h28</div><div class="ttdef"><b>Definition</b> hadamard.h:50</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_adacbc4526e8964b267a8ec3eb1bc1a32"><div class="ttname"><a href="namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32">mlx::core::is_power_of_2</a></div><div class="ttdeci">bool is_power_of_2(int n)</div><div class="ttdef"><b>Definition</b> utils.h:104</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_adacbc4526e8964b267a8ec3eb1bc1a32"><div class="ttname"><a href="namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32">mlx::core::is_power_of_2</a></div><div class="ttdeci">bool is_power_of_2(int n)</div><div class="ttdef"><b>Definition</b> utils.h:105</div></div>
<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -193,14 +193,14 @@ $(function(){initNavTree('common_2ternary_8h_source.html',''); initResizable(tru
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="abackend_2common_2utils_8h_html"><div class="ttname"><a href="backend_2common_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad2814dbffa5ad174d9c97a10bf4cf26b"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad41cc5e7aebfcad849ad15d697584cf8"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad41cc5e7aebfcad849ad15d697584cf8">mlx::core::array::move_shared_buffer</a></div><div class="ttdeci">void move_shared_buffer(array other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array&#39;s datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9e3a02b4c0023c36248dc75c887214f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, Deleter d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f">mlx::core::BinaryOpType::General</a></div><div class="ttdeci">@ General</div><div class="ttdef"><b>Definition</b> binary.h:16</div></div>

View File

@ -134,8 +134,8 @@ Functions</h2></td></tr>
<tr class="memitem:a55933c6665de9f81059120d6b0de1c87" id="r_a55933c6665de9f81059120d6b0de1c87"><td class="memItemLeft" align="right" valign="top">std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a55933c6665de9f81059120d6b0de1c87">mlx::core::compile</a> (std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;)&gt; fun, bool shapeless=false)</td></tr>
<tr class="memdesc:a55933c6665de9f81059120d6b0de1c87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile takes a function and returns a compiled function. <br /></td></tr>
<tr class="separator:a55933c6665de9f81059120d6b0de1c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56de948c2dffbf35c88035bc1561db53" id="r_a56de948c2dffbf35c88035bc1561db53"><td class="memItemLeft" align="right" valign="top">std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a56de948c2dffbf35c88035bc1561db53">mlx::core::compile</a> (std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(fun)(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;), bool shapeless=false)</td></tr>
<tr class="separator:a56de948c2dffbf35c88035bc1561db53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf57076f6d2351ba9f1e0cbe478f8afa" id="r_abf57076f6d2351ba9f1e0cbe478f8afa"><td class="memItemLeft" align="right" valign="top">std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#abf57076f6d2351ba9f1e0cbe478f8afa">mlx::core::compile</a> (std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(*fun)(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;), bool shapeless=false)</td></tr>
<tr class="separator:abf57076f6d2351ba9f1e0cbe478f8afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace67713d269595f5f2265e46728a6f9c" id="r_ace67713d269595f5f2265e46728a6f9c"><td class="memTemplParams" colspan="2">template&lt;typename F&gt; </td></tr>
<tr class="memitem:ace67713d269595f5f2265e46728a6f9c"><td class="memTemplItemLeft" align="right" valign="top">std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;)&gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ace67713d269595f5f2265e46728a6f9c">mlx::core::compile</a> (F &amp;&amp;f, bool shapeless=false)</td></tr>
<tr class="separator:ace67713d269595f5f2265e46728a6f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@ -8,7 +8,7 @@ var compile_8h =
] ],
[ "mlx::core::compile", "namespacemlx_1_1core.html#ace67713d269595f5f2265e46728a6f9c", null ],
[ "mlx::core::compile", "namespacemlx_1_1core.html#a55933c6665de9f81059120d6b0de1c87", null ],
[ "mlx::core::compile", "namespacemlx_1_1core.html#a56de948c2dffbf35c88035bc1561db53", null ],
[ "mlx::core::compile", "namespacemlx_1_1core.html#abf57076f6d2351ba9f1e0cbe478f8afa", null ],
[ "mlx::core::disable_compile", "namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66", null ],
[ "mlx::core::enable_compile", "namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9", null ],
[ "mlx::core::set_compile_mode", "namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef", null ]

View File

@ -119,8 +119,8 @@ $(function(){initNavTree('compile_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> std::function&lt;std::vector&lt;array&gt;(<span class="keyword">const</span> std::vector&lt;array&gt;&amp;)&gt; fun,</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">bool</span> shapeless = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a56de948c2dffbf35c88035bc1561db53"> 16</a></span>std::function&lt;std::vector&lt;array&gt;(<span class="keyword">const</span> std::vector&lt;array&gt;&amp;)&gt; <a class="code hl_function" href="namespacemlx_1_1core.html#a55933c6665de9f81059120d6b0de1c87">compile</a>(</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> std::vector&lt;array&gt;(fun)(<span class="keyword">const</span> std::vector&lt;array&gt;&amp;),</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#abf57076f6d2351ba9f1e0cbe478f8afa"> 16</a></span>std::function&lt;std::vector&lt;array&gt;(<span class="keyword">const</span> std::vector&lt;array&gt;&amp;)&gt; <a class="code hl_function" href="namespacemlx_1_1core.html#a55933c6665de9f81059120d6b0de1c87">compile</a>(</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> std::vector&lt;array&gt; (*fun)(<span class="keyword">const</span> std::vector&lt;array&gt;&amp;),</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">bool</span> shapeless = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">// Convert capture-less lambdas to function pointers.</span></div>

View File

@ -185,11 +185,11 @@ $(function(){initNavTree('compiled_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html">mlx::core::AsType</a></div><div class="ttdef"><b>Definition</b> primitives.h:392</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html">mlx::core::Broadcast</a></div><div class="ttdef"><b>Definition</b> primitives.h:528</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html">mlx::core::Broadcast</a></div><div class="ttdef"><b>Definition</b> primitives.h:541</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a53006e77d13d9d88b525ef577748939f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">mlx::core::array::ndim</a></div><div class="ttdeci">size_t ndim() const</div><div class="ttdoc">The number of dimensions of the array.</div><div class="ttdef"><b>Definition</b> array.h:98</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a90c5afddc2fa3028c0f8099bd64c8a99"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">mlx::core::array::item</a></div><div class="ttdeci">T item()</div><div class="ttdoc">Get the value from a scalar array.</div><div class="ttdef"><b>Definition</b> array.h:539</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a90c5afddc2fa3028c0f8099bd64c8a99"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99">mlx::core::array::item</a></div><div class="ttdeci">T item()</div><div class="ttdoc">Get the value from a scalar array.</div><div class="ttdef"><b>Definition</b> array.h:551</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:131</div></div>
<div class="ttc" id="agroup__ops_html_ga8ab10aa6c41416d739791164a52b25d5"><div class="ttname"><a href="group__ops.html#ga8ab10aa6c41416d739791164a52b25d5">mlx::core::contiguous</a></div><div class="ttdeci">array contiguous(const array &amp;a, bool allow_col_major=false, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Operations &#8212; MLX 0.22.1 documentation</title>
<title>Operations &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="mlx.utils.tree_reduce" href="../python/_autosummary/mlx.utils.tree_reduce.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
@ -1174,6 +1179,8 @@
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4lsRK5arrayRK5array"><code class="docutils literal notranslate"><span class="pre">operator&lt;&lt;()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">right_shift()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4rsRK5arrayRK5array"><code class="docutils literal notranslate"><span class="pre">operator&gt;&gt;()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv414bitwise_invertRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">bitwise_invert()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4coRK5array"><code class="docutils literal notranslate"><span class="pre">operator~()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">view()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44rollRK5arrayi14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">roll()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44rollRK5arrayRK5Shape14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">roll()</span></code></a></li>
@ -2982,6 +2989,17 @@
<span id="_CPPv3rsRK5arrayRK5array"></span><span id="_CPPv2rsRK5arrayRK5array"></span><span id="rshift-operator__arrayCR.arrayCR"></span><span class="target" id="group__ops_1ga498b61f7e8f056ae00297fa0dc17303a"></span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="o"><span class="pre">&gt;&gt;</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">a</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">b</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4rsRK5arrayRK5array" title="Link to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414bitwise_invertRK5array14StreamOrDevice">
<span id="_CPPv314bitwise_invertRK5array14StreamOrDevice"></span><span id="_CPPv214bitwise_invertRK5array14StreamOrDevice"></span><span id="bitwise_invert__arrayCR.StreamOrDevice"></span><span class="target" id="group__ops_1gaf1182ae7c049fbc9ee190f3e0fffbf83"></span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">bitwise_invert</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">a</span></span>, <span class="n"><span class="pre">StreamOrDevice</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">s</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414bitwise_invertRK5array14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dd><p>Invert the bits. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4coRK5array">
<span id="_CPPv3coRK5array"></span><span id="_CPPv2coRK5array"></span><span id="inv-operator__arrayCR"></span><span class="target" id="group__ops_1ga849365a62878579a33b3d3ad09bbc7be"></span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="sig-name descname"><span class="k"><span class="pre">operator</span></span><span class="o"><span class="pre">~</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">a</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4coRK5array" title="Link to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice">
<span id="_CPPv34viewRK5arrayRK5Dtype14StreamOrDevice"></span><span id="_CPPv24viewRK5arrayRK5Dtype14StreamOrDevice"></span><span id="view__arrayCR.DtypeCR.StreamOrDevice"></span><span class="target" id="group__ops_1ga3602aa91b7b124a0b41ec1b2137a1b02"></span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">view</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">a</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">Dtype</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dtype</span></span>, <span class="n"><span class="pre">StreamOrDevice</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">s</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
@ -3386,6 +3404,8 @@
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4lsRK5arrayRK5array"><code class="docutils literal notranslate"><span class="pre">operator&lt;&lt;()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">right_shift()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4rsRK5arrayRK5array"><code class="docutils literal notranslate"><span class="pre">operator&gt;&gt;()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv414bitwise_invertRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">bitwise_invert()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv4coRK5array"><code class="docutils literal notranslate"><span class="pre">operator~()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">view()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44rollRK5arrayi14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">roll()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv44rollRK5arrayRK5Shape14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">roll()</span></code></a></li>

View File

@ -170,17 +170,20 @@ $(function(){initNavTree('cpu_2arange_8h_source.html',''); initResizable(true);
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;float&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;bfloat16_t&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;double&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;complex64_t&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;bfloat16_t&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange&lt;complex64_t&gt;</a>(start, start + step, out, out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">size</a>());</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>}</div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
@ -190,20 +193,21 @@ $(function(){initNavTree('cpu_2arange_8h_source.html',''); initResizable(true);
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9e3a02b4c0023c36248dc75c887214f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, Deleter d=allocator::free)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a369aa886219b83cf219e7a7862ce260b"><div class="ttname"><a href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">mlx::core::arange</a></div><div class="ttdeci">void arange(const std::vector&lt; array &gt; &amp;inputs, array &amp;out, double start, double step)</div><div class="ttdef"><b>Definition</b> arange.h:24</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@ -486,58 +486,62 @@ $(function(){initNavTree('cpu_2binary_8h_source.html',''); initResizable(true);
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;float&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;bfloat16_t&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;double&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;complex64_t&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;bfloat16_t&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> }</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span>}</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;complex64_t&gt;</a>(a, b, out, op);</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> }</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span>}</div>
</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="abackend_2common_2utils_8h_html"><div class="ttname"><a href="backend_2common_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:88</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:342</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:354</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:131</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="acommon_2binary_8h_html"><div class="ttname"><a href="common_2binary_8h.html">binary.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a24eef9908f164adeece3be7c6924919a"><div class="ttname"><a href="namespacemlx_1_1core.html#a24eef9908f164adeece3be7c6924919a">mlx::core::get_binary_op_type</a></div><div class="ttdeci">BinaryOpType get_binary_op_type(const array &amp;a, const array &amp;b)</div><div class="ttdef"><b>Definition</b> binary.h:19</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4d594bb84abeff4619d1abb77b20123e"><div class="ttname"><a href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">mlx::core::collapse_contiguous_dims</a></div><div class="ttdeci">std::tuple&lt; Shape, std::vector&lt; Strides &gt; &gt; collapse_contiguous_dims(const Shape &amp;shape, const std::vector&lt; Strides &gt; &amp;strides, int64_t size_cap=std::numeric_limits&lt; int32_t &gt;::max())</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f">mlx::core::BinaryOpType::General</a></div><div class="ttdeci">@ General</div><div class="ttdef"><b>Definition</b> binary.h:16</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a4d8269410dcd9cadc9722e9a118bddfb"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a4d8269410dcd9cadc9722e9a118bddfb">mlx::core::BinaryOpType::VectorVector</a></div><div class="ttdeci">@ VectorVector</div><div class="ttdef"><b>Definition</b> binary.h:15</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a7b15cb76e0535ea81a5b6af9c96dcde4"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a7b15cb76e0535ea81a5b6af9c96dcde4">mlx::core::BinaryOpType::ScalarScalar</a></div><div class="ttdeci">@ ScalarScalar</div><div class="ttdef"><b>Definition</b> binary.h:12</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a8a94416459b638cebf3bfbce26a6ce78"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a8a94416459b638cebf3bfbce26a6ce78">mlx::core::BinaryOpType::VectorScalar</a></div><div class="ttdeci">@ VectorScalar</div><div class="ttdef"><b>Definition</b> binary.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6aabac63719294588466e3c2f00cccb0a6"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6aabac63719294588466e3c2f00cccb0a6">mlx::core::BinaryOpType::ScalarVector</a></div><div class="ttdeci">@ ScalarVector</div><div class="ttdef"><b>Definition</b> binary.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a66c9ee5018168b9101de52e0122d9755"><div class="ttname"><a href="namespacemlx_1_1core.html#a66c9ee5018168b9101de52e0122d9755">mlx::core::binary_op_dispatch_dims</a></div><div class="ttdeci">void binary_op_dispatch_dims(const array &amp;a, const array &amp;b, array &amp;out, Op op, int dim, const Shape &amp;shape, const Strides &amp;a_strides, const Strides &amp;b_strides, const Strides &amp;out_strides)</div><div class="ttdef"><b>Definition</b> binary.h:122</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector&lt; ShapeElem &gt; Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6a52856325c2eb031d3983eba2108d59"><div class="ttname"><a href="namespacemlx_1_1core.html#a6a52856325c2eb031d3983eba2108d59">mlx::core::set_binary_op_output_data</a></div><div class="ttdeci">void set_binary_op_output_data(const array &amp;a, const array &amp;b, array &amp;out, BinaryOpType bopt, bool donate_with_move=false)</div><div class="ttdef"><b>Definition</b> binary.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a79939016d0972ded7db37130da2a8b5c"><div class="ttname"><a href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a></div><div class="ttdeci">std::vector&lt; int64_t &gt; Strides</div><div class="ttdef"><b>Definition</b> array.h:22</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a7ca09ebf776fe32db580f9038587ec31"><div class="ttname"><a href="namespacemlx_1_1core.html#a7ca09ebf776fe32db580f9038587ec31">mlx::core::binary_op_dims</a></div><div class="ttdeci">void binary_op_dims(const T *a, const T *b, U *out, Op op, const Shape &amp;shape, const Strides &amp;a_strides, const Strides &amp;b_strides, const Strides &amp;out_strides, int axis)</div><div class="ttdef"><b>Definition</b> binary.h:89</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9c1c1fdf9a0840a16a4d10a8f74f761d"><div class="ttname"><a href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">mlx::core::binary_op</a></div><div class="ttdeci">void binary_op(const array &amp;a, const array &amp;b, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> binary.h:194</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ae374861abd45cf019c3e6be2026f3798"><div class="ttname"><a href="namespacemlx_1_1core.html#ae374861abd45cf019c3e6be2026f3798">mlx::core::binary</a></div><div class="ttdeci">void binary(const array &amp;a, const array &amp;b, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> binary.h:326</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="asimd_8h_html"><div class="ttname"><a href="simd_8h.html">simd.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator</a></div><div class="ttdef"><b>Definition</b> utils.h:73</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a5ea4f0e40900e8c7e0830e1fb561af1a"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">mlx::core::ContiguousIterator::loc</a></div><div class="ttdeci">int64_t loc</div><div class="ttdef"><b>Definition</b> utils.h:126</div></div>

View File

@ -232,16 +232,16 @@ $(function(){initNavTree('cpu_2binary__ops_8h_source.html',''); initResizable(tr
<div class="ttc" id="acpu_2binary__ops_8h_html_ad606fe7b9586413e760cfe461c9be119"><div class="ttname"><a href="cpu_2binary__ops_8h.html#ad606fe7b9586413e760cfe461c9be119">BINARY_SINGLE</a></div><div class="ttdeci">#define BINARY_SINGLE()</div><div class="ttdef"><b>Definition</b> binary_ops.h:11</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1detail_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1detail.html">mlx::core::detail</a></div><div class="ttdef"><b>Definition</b> binary_ops.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:210</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:146</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:215</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a771b6597803beb800ff5e7560c41e341"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a771b6597803beb800ff5e7560c41e341">mlx::core::simd::inf</a></div><div class="ttdeci">constexpr float inf</div><div class="ttdef"><b>Definition</b> math.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:204</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:209</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:236</div></div>
<div class="ttc" id="asimd_8h_html"><div class="ttname"><a href="simd_8h.html">simd.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_add_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_add.html">mlx::core::detail::Add</a></div><div class="ttdef"><b>Definition</b> binary_ops.h:26</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tan2_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tan2.html">mlx::core::detail::ArcTan2</a></div><div class="ttdef"><b>Definition</b> binary_ops.h:27</div></div>

View File

@ -312,49 +312,53 @@ $(function(){initNavTree('cpu_2binary__two_8h_source.html',''); initResizable(tr
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;float&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;bfloat16_t&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;double&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;complex64_t&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;bfloat16_t&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> }</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span>}</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">binary_op&lt;complex64_t&gt;</a>(a, b, outputs, op);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="abackend_2common_2utils_8h_html"><div class="ttname"><a href="backend_2common_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="acpu_2binary_8h_html"><div class="ttname"><a href="cpu_2binary_8h.html">binary.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a24eef9908f164adeece3be7c6924919a"><div class="ttname"><a href="namespacemlx_1_1core.html#a24eef9908f164adeece3be7c6924919a">mlx::core::get_binary_op_type</a></div><div class="ttdeci">BinaryOpType get_binary_op_type(const array &amp;a, const array &amp;b)</div><div class="ttdef"><b>Definition</b> binary.h:19</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4d594bb84abeff4619d1abb77b20123e"><div class="ttname"><a href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">mlx::core::collapse_contiguous_dims</a></div><div class="ttdeci">std::tuple&lt; Shape, std::vector&lt; Strides &gt; &gt; collapse_contiguous_dims(const Shape &amp;shape, const std::vector&lt; Strides &gt; &amp;strides, int64_t size_cap=std::numeric_limits&lt; int32_t &gt;::max())</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a0db377921f4ce762c62526131097968f">mlx::core::BinaryOpType::General</a></div><div class="ttdeci">@ General</div><div class="ttdef"><b>Definition</b> binary.h:16</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a7b15cb76e0535ea81a5b6af9c96dcde4"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a7b15cb76e0535ea81a5b6af9c96dcde4">mlx::core::BinaryOpType::ScalarScalar</a></div><div class="ttdeci">@ ScalarScalar</div><div class="ttdef"><b>Definition</b> binary.h:12</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6a8a94416459b638cebf3bfbce26a6ce78"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6a8a94416459b638cebf3bfbce26a6ce78">mlx::core::BinaryOpType::VectorScalar</a></div><div class="ttdeci">@ VectorScalar</div><div class="ttdef"><b>Definition</b> binary.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a546e3d3c8957fbf2758f9504f4a2d0b6aabac63719294588466e3c2f00cccb0a6"><div class="ttname"><a href="namespacemlx_1_1core.html#a546e3d3c8957fbf2758f9504f4a2d0b6aabac63719294588466e3c2f00cccb0a6">mlx::core::BinaryOpType::ScalarVector</a></div><div class="ttdeci">@ ScalarVector</div><div class="ttdef"><b>Definition</b> binary.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a66c9ee5018168b9101de52e0122d9755"><div class="ttname"><a href="namespacemlx_1_1core.html#a66c9ee5018168b9101de52e0122d9755">mlx::core::binary_op_dispatch_dims</a></div><div class="ttdeci">void binary_op_dispatch_dims(const array &amp;a, const array &amp;b, array &amp;out, Op op, int dim, const Shape &amp;shape, const Strides &amp;a_strides, const Strides &amp;b_strides, const Strides &amp;out_strides)</div><div class="ttdef"><b>Definition</b> binary.h:122</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector&lt; ShapeElem &gt; Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6a52856325c2eb031d3983eba2108d59"><div class="ttname"><a href="namespacemlx_1_1core.html#a6a52856325c2eb031d3983eba2108d59">mlx::core::set_binary_op_output_data</a></div><div class="ttdeci">void set_binary_op_output_data(const array &amp;a, const array &amp;b, array &amp;out, BinaryOpType bopt, bool donate_with_move=false)</div><div class="ttdef"><b>Definition</b> binary.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a79939016d0972ded7db37130da2a8b5c"><div class="ttname"><a href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a></div><div class="ttdeci">std::vector&lt; int64_t &gt; Strides</div><div class="ttdef"><b>Definition</b> array.h:22</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a7ca09ebf776fe32db580f9038587ec31"><div class="ttname"><a href="namespacemlx_1_1core.html#a7ca09ebf776fe32db580f9038587ec31">mlx::core::binary_op_dims</a></div><div class="ttdeci">void binary_op_dims(const T *a, const T *b, U *out, Op op, const Shape &amp;shape, const Strides &amp;a_strides, const Strides &amp;b_strides, const Strides &amp;out_strides, int axis)</div><div class="ttdef"><b>Definition</b> binary.h:89</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9c1c1fdf9a0840a16a4d10a8f74f761d"><div class="ttname"><a href="namespacemlx_1_1core.html#a9c1c1fdf9a0840a16a4d10a8f74f761d">mlx::core::binary_op</a></div><div class="ttdeci">void binary_op(const array &amp;a, const array &amp;b, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> binary.h:194</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ae374861abd45cf019c3e6be2026f3798"><div class="ttname"><a href="namespacemlx_1_1core.html#ae374861abd45cf019c3e6be2026f3798">mlx::core::binary</a></div><div class="ttdeci">void binary(const array &amp;a, const array &amp;b, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> binary.h:326</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator</a></div><div class="ttdef"><b>Definition</b> utils.h:73</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -274,7 +274,7 @@ $(function(){initNavTree('cpu_2ternary_8h_source.html',''); initResizable(true);
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:88</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:342</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:354</div></div>
<div class="ttc" id="acommon_2ternary_8h_html"><div class="ttname"><a href="common_2ternary_8h.html">ternary.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4d594bb84abeff4619d1abb77b20123e"><div class="ttname"><a href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">mlx::core::collapse_contiguous_dims</a></div><div class="ttdeci">std::tuple&lt; Shape, std::vector&lt; Strides &gt; &gt; collapse_contiguous_dims(const Shape &amp;shape, const std::vector&lt; Strides &gt; &amp;strides, int64_t size_cap=std::numeric_limits&lt; int32_t &gt;::max())</div></div>

View File

@ -139,6 +139,9 @@ Functions</h2></td></tr>
<tr class="memitem:a76a2cb4634f5fd6970a8c3b3753d7a4a" id="r_a76a2cb4634f5fd6970a8c3b3753d7a4a"><td class="memTemplParams" colspan="2">template&lt;typename Op&gt; </td></tr>
<tr class="memitem:a76a2cb4634f5fd6970a8c3b3753d7a4a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a">mlx::core::unary_fp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, Op op)</td></tr>
<tr class="separator:a76a2cb4634f5fd6970a8c3b3753d7a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a078859db0d66ff77f97af6dc9764e8eb" id="r_a078859db0d66ff77f97af6dc9764e8eb"><td class="memTemplParams" colspan="2">template&lt;typename Op&gt; </td></tr>
<tr class="memitem:a078859db0d66ff77f97af6dc9764e8eb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb">mlx::core::unary_int</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, Op op)</td></tr>
<tr class="separator:a078859db0d66ff77f97af6dc9764e8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@ -3,6 +3,7 @@ var cpu_2unary_8h =
[ "mlx::core::set_unary_output_data", "namespacemlx_1_1core.html#a4c6a4241bfcdd7bbf30d0e521b79e5a3", null ],
[ "mlx::core::unary", "namespacemlx_1_1core.html#a6c8fdd03ef891d7f47804bf02e9a8507", null ],
[ "mlx::core::unary_fp", "namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a", null ],
[ "mlx::core::unary_int", "namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb", null ],
[ "mlx::core::unary_op", "namespacemlx_1_1core.html#ae20f207ad1ed3badc17cecf08f118b5e", null ],
[ "mlx::core::unary_op", "namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625", null ]
];

View File

@ -218,80 +218,124 @@ $(function(){initNavTree('cpu_2unary_8h_source.html',''); initResizable(true); }
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;float&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;bfloat16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;double&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;complex64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;bfloat16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;complex64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>}</div>
</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> Op&gt;</div>
<div class="foldopen" id="foldopen00117" data-start="{" data-end="}">
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a"> 117</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a">unary_fp</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out, Op op) {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">switch</span> (out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;bfloat16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>:</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;float16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> Op&gt;</div>
<div class="foldopen" id="foldopen00120" data-start="{" data-end="}">
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a"> 120</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a">unary_fp</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out, Op op) {</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">switch</span> (out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>:</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;bfloat16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;float&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>:</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;float16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;complex64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>:</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;float&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> std::ostringstream err;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> err &lt;&lt; <span class="stringliteral">&quot;[unary_fp] Does not support &quot;</span> &lt;&lt; out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>();</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">throw</span> std::runtime_error(err.str());</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> }</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>}</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>:</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;double&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>:</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;complex64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> std::ostringstream err;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> err &lt;&lt; <span class="stringliteral">&quot;[unary_fp] Does not support &quot;</span> &lt;&lt; out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>();</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">throw</span> std::runtime_error(err.str());</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span>}</div>
</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> Op&gt;</div>
<div class="foldopen" id="foldopen00145" data-start="{" data-end="}">
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb"> 145</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb">unary_int</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out, Op op) {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">switch</span> (out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>()) {</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>:</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;uint8_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>:</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;uint16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>:</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;uint32_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>:</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;uint64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>:</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;int8_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>:</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;int16_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>:</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;int32_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>:</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">unary_op&lt;int64_t&gt;</a>(a, out, op);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> std::ostringstream err;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> err &lt;&lt; <span class="stringliteral">&quot;[unary_int] Does not support &quot;</span> &lt;&lt; out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">dtype</a>();</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">throw</span> std::runtime_error(err.str());</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span>}</div>
</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="abackend_2common_2utils_8h_html"><div class="ttname"><a href="backend_2common_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags &amp; flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:318</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape &amp; shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides &amp; strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a53006e77d13d9d88b525ef577748939f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">mlx::core::array::ndim</a></div><div class="ttdeci">size_t ndim() const</div><div class="ttdoc">The number of dimensions of the array.</div><div class="ttdef"><b>Definition</b> array.h:98</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a598f87161926d9e0b516860f0ea2c8f6"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6">mlx::core::array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">The number of elements in the array.</div><div class="ttdef"><b>Definition</b> array.h:88</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:342</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a72e3ce6c03fefe272cadf214bd127b95"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">mlx::core::array::data</a></div><div class="ttdeci">T * data()</div><div class="ttdef"><b>Definition</b> array.h:354</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ad2814dbffa5ad174d9c97a10bf4cf26b"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ad2814dbffa5ad174d9c97a10bf4cf26b">mlx::core::array::copy_shared_buffer</a></div><div class="ttdeci">void copy_shared_buffer(const array &amp;other, const Strides &amp;strides, Flags flags, size_t data_size, size_t offset=0)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_ae29e7d6fbfbea1e5e321a8d1ea3cfacd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd">mlx::core::array::dtype</a></div><div class="ttdeci">Dtype dtype() const</div><div class="ttdoc">Get the arrays data type.</div><div class="ttdef"><b>Definition</b> array.h:131</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array&#39;s datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af9e3a02b4c0023c36248dc75c887214f"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af9e3a02b4c0023c36248dc75c887214f">mlx::core::array::set_data</a></div><div class="ttdeci">void set_data(allocator::Buffer buffer, Deleter d=allocator::free)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:320</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_afaf2a370fa35d96af1b27a4b814e3bfd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#afaf2a370fa35d96af1b27a4b814e3bfd">mlx::core::array::data_size</a></div><div class="ttdeci">size_t data_size() const</div><div class="ttdoc">The size (in elements) of the underlying buffer the array points to.</div><div class="ttdef"><b>Definition</b> array.h:332</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a078859db0d66ff77f97af6dc9764e8eb"><div class="ttname"><a href="namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb">mlx::core::unary_int</a></div><div class="ttdeci">void unary_int(const array &amp;a, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> unary.h:145</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a27f00519f9756896734fd4d47fec0625"><div class="ttname"><a href="namespacemlx_1_1core.html#a27f00519f9756896734fd4d47fec0625">mlx::core::unary_op</a></div><div class="ttdeci">void unary_op(const T *a, U *out, Op op, size_t shape, size_t stride)</div><div class="ttdef"><b>Definition</b> unary.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4c6a4241bfcdd7bbf30d0e521b79e5a3"><div class="ttname"><a href="namespacemlx_1_1core.html#a4c6a4241bfcdd7bbf30d0e521b79e5a3">mlx::core::set_unary_output_data</a></div><div class="ttdeci">void set_unary_output_data(const array &amp;in, array &amp;out)</div><div class="ttdef"><b>Definition</b> unary.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6c8fdd03ef891d7f47804bf02e9a8507"><div class="ttname"><a href="namespacemlx_1_1core.html#a6c8fdd03ef891d7f47804bf02e9a8507">mlx::core::unary</a></div><div class="ttdeci">void unary(const array &amp;a, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> unary.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a76a2cb4634f5fd6970a8c3b3753d7a4a"><div class="ttname"><a href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a">mlx::core::unary_fp</a></div><div class="ttdeci">void unary_fp(const array &amp;a, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> unary.h:117</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a76a2cb4634f5fd6970a8c3b3753d7a4a"><div class="ttname"><a href="namespacemlx_1_1core.html#a76a2cb4634f5fd6970a8c3b3753d7a4a">mlx::core::unary_fp</a></div><div class="ttdeci">void unary_fp(const array &amp;a, array &amp;out, Op op)</div><div class="ttdef"><b>Definition</b> unary.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af650e831ce21759da1ac103037d08d84"><div class="ttname"><a href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">mlx::core::is_donatable</a></div><div class="ttdeci">bool is_donatable(const array &amp;in, const array &amp;out)</div><div class="ttdef"><b>Definition</b> utils.h:155</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="asimd_8h_html"><div class="ttname"><a href="simd_8h.html">simd.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator</a></div><div class="ttdef"><b>Definition</b> utils.h:73</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a5ea4f0e40900e8c7e0830e1fb561af1a"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">mlx::core::ContiguousIterator::loc</a></div><div class="ttdeci">int64_t loc</div><div class="ttdef"><b>Definition</b> utils.h:126</div></div>

View File

@ -132,6 +132,8 @@ Classes</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">mlx::core::detail::ArcTanh</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html">mlx::core::detail::BitwiseInvert</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1detail_1_1_conjugate.html">mlx::core::detail::Conjugate</a></td></tr>

View File

@ -7,6 +7,7 @@ var cpu_2unary__ops_8h =
[ "mlx::core::detail::ArcSinh", "structmlx_1_1core_1_1detail_1_1_arc_sinh.html", "structmlx_1_1core_1_1detail_1_1_arc_sinh" ],
[ "mlx::core::detail::ArcTan", "structmlx_1_1core_1_1detail_1_1_arc_tan.html", "structmlx_1_1core_1_1detail_1_1_arc_tan" ],
[ "mlx::core::detail::ArcTanh", "structmlx_1_1core_1_1detail_1_1_arc_tanh.html", "structmlx_1_1core_1_1detail_1_1_arc_tanh" ],
[ "mlx::core::detail::BitwiseInvert", "structmlx_1_1core_1_1detail_1_1_bitwise_invert.html", "structmlx_1_1core_1_1detail_1_1_bitwise_invert" ],
[ "mlx::core::detail::Ceil", "structmlx_1_1core_1_1detail_1_1_ceil.html", "structmlx_1_1core_1_1detail_1_1_ceil" ],
[ "mlx::core::detail::Conjugate", "structmlx_1_1core_1_1detail_1_1_conjugate.html", "structmlx_1_1core_1_1detail_1_1_conjugate" ],
[ "mlx::core::detail::Cos", "structmlx_1_1core_1_1detail_1_1_cos.html", "structmlx_1_1core_1_1detail_1_1_cos" ],

View File

@ -145,98 +145,99 @@ $(function(){initNavTree('cpu_2unary__ops_8h_source.html',''); initResizable(tru
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_arc_sinh.html#ac6e45e41f931f556697c060a2a858816"> 34</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_arc_sinh.html">ArcSinh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_arc_tan.html#a697b7f12f30d642ee5f0c54aaf86a8ec"> 35</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_arc_tan.html">ArcTan</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a93a660ea073526e1f75b2d3c4ac6c366"> 36</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">ArcTanh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_ceil.html#a2354e9fa1502d1743834b98cdec17653"> 37</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_ceil.html">Ceil</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_conjugate.html#a33bbfcc195781eb33df0a4efc50569ed"> 38</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_conjugate.html">Conjugate</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_cos.html#a663065fd41e5d85e8f044e9f81070568"> 39</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_cos.html">Cos</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ab179f429e34cd6d5c37050ea7e7c54ad">cos</a>)</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_cosh.html#ae94b6da9ceb47e9d4aaf61451126f58d"> 40</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_cosh.html">Cosh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_erf.html#a4f5986391863d30e0e7b17bd1996a5f6"> 41</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_erf.html">Erf</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a60e33ebb16d9bab375a64aec8015a5c2">erf</a>)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html#a0cdd8d6e71222695d0f148b9ad048429"> 42</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html">ErfInv</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7687f3d14077b51fb421f0efb5b626db">erfinv</a>)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_exp.html#aad7fb8de7561479c7aa3c741322a3101"> 43</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_exp.html">Exp</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_expm1.html#a2c78a15f0dd01d13f3a78ac45347ed3e"> 44</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_expm1.html">Expm1</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_floor.html#a5c41fb72ec3da9289c24b92802e28f2e"> 45</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_floor.html">Floor</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log.html#a0041795bfd063a9769a3747bd7a91d61"> 46</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log.html">Log</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log2.html#a83258d8a3fe12e082d0b317fcfafb28b"> 47</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log2.html">Log2</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log10.html#ade464425f69e5b76bf61b5ba3da75089"> 48</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log10.html">Log10</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log1p.html#abed96d56b07c6a96666b770c9711e52e"> 49</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log1p.html">Log1p</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_not.html#a4978cc3a63e70a1a4fee6470764ae9d9"> 50</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_not.html">LogicalNot</a>, operator!)</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_negative.html#a93a1dfb47eba54aff44b2945d131c97e"> 51</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_negative.html">Negative</a>, operator-)</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_round.html#acd099ba81c8c281e9660cf8c0fed0cd1"> 52</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_round.html">Round</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sin.html#a07c357c49dbf6b0579b1e771c6eb5766"> 53</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sin.html">Sin</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ab4d582d72c0a7ee313e19c906e43cef1">sin</a>)</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sinh.html#a1e299cd64bc0c7aaa1ceeac35dfe7831"> 54</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sinh.html">Sinh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sqrt.html#acac518e8e7cf3dd103f4f72f22b23221"> 55</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sqrt.html">Sqrt</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html#ac6720a6270393152ab2924a77bfb17b2"> 56</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">Rsqrt</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>)</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_tan.html#a9c8d3570a1e4daa054bb41999043d9e9"> 57</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_tan.html">Tan</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_tanh.html#a79eeba686f3dd5dce097ff5b9b27dd7c"> 58</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_tanh.html">Tanh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="};">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html"> 60</a></span>struct <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_imag.html">Imag</a> {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00062" data-start="{" data-end="}">
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8"> 62</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;float, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;complex64_t, N&gt;</a> x) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">simd::imag</a>(x);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html#a82a68523f66008c83dc6ebea184b5fe4"> 37</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html">BitwiseInvert</a>, operator~)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_ceil.html#a2354e9fa1502d1743834b98cdec17653"> 38</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_ceil.html">Ceil</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_conjugate.html#a33bbfcc195781eb33df0a4efc50569ed"> 39</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_conjugate.html">Conjugate</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>)</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_cos.html#a663065fd41e5d85e8f044e9f81070568"> 40</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_cos.html">Cos</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ab179f429e34cd6d5c37050ea7e7c54ad">cos</a>)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_cosh.html#ae94b6da9ceb47e9d4aaf61451126f58d"> 41</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_cosh.html">Cosh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_erf.html#a4f5986391863d30e0e7b17bd1996a5f6"> 42</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_erf.html">Erf</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a60e33ebb16d9bab375a64aec8015a5c2">erf</a>)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html#a0cdd8d6e71222695d0f148b9ad048429"> 43</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_erf_inv.html">ErfInv</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7687f3d14077b51fb421f0efb5b626db">erfinv</a>)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_exp.html#aad7fb8de7561479c7aa3c741322a3101"> 44</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_exp.html">Exp</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_expm1.html#a2c78a15f0dd01d13f3a78ac45347ed3e"> 45</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_expm1.html">Expm1</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_floor.html#a5c41fb72ec3da9289c24b92802e28f2e"> 46</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_floor.html">Floor</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log.html#a0041795bfd063a9769a3747bd7a91d61"> 47</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log.html">Log</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log2.html#a83258d8a3fe12e082d0b317fcfafb28b"> 48</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log2.html">Log2</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log10.html#ade464425f69e5b76bf61b5ba3da75089"> 49</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log10.html">Log10</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log1p.html#abed96d56b07c6a96666b770c9711e52e"> 50</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log1p.html">Log1p</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_not.html#a4978cc3a63e70a1a4fee6470764ae9d9"> 51</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_not.html">LogicalNot</a>, operator!)</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_negative.html#a93a1dfb47eba54aff44b2945d131c97e"> 52</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_negative.html">Negative</a>, operator-)</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_round.html#acd099ba81c8c281e9660cf8c0fed0cd1"> 53</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_round.html">Round</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sin.html#a07c357c49dbf6b0579b1e771c6eb5766"> 54</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sin.html">Sin</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ab4d582d72c0a7ee313e19c906e43cef1">sin</a>)</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sinh.html#a1e299cd64bc0c7aaa1ceeac35dfe7831"> 55</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sinh.html">Sinh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sqrt.html#acac518e8e7cf3dd103f4f72f22b23221"> 56</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sqrt.html">Sqrt</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html#ac6720a6270393152ab2924a77bfb17b2"> 57</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">Rsqrt</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>)</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_tan.html#a9c8d3570a1e4daa054bb41999043d9e9"> 58</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_tan.html">Tan</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_tanh.html#a79eeba686f3dd5dce097ff5b9b27dd7c"> 59</a></span><a class="code hl_define" href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_tanh.html">Tanh</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="foldopen" id="foldopen00061" data-start="{" data-end="};">
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html"> 61</a></span>struct <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_imag.html">Imag</a> {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00063" data-start="{" data-end="}">
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8"> 63</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;float, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;complex64_t, N&gt;</a> x) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">simd::imag</a>(x);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782"> 65</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782"> 66</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>};</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="foldopen" id="foldopen00068" data-start="{" data-end="};">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html"> 68</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_real.html">Real</a> {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00070" data-start="{" data-end="}">
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f"> 70</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;float, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;complex64_t, N&gt;</a> x) {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">simd::real</a>(x);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="};">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html"> 69</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_real.html">Real</a> {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="}">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f"> 71</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;float, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;complex64_t, N&gt;</a> x) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">simd::real</a>(x);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61"> 73</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>};</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61"> 74</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>};</div>
</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="};">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html"> 76</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">Sigmoid</a> {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00078" data-start="{" data-end="}">
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4"> 78</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> 1.0f / (1.0f + <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">simd::exp</a>(-x));</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="foldopen" id="foldopen00077" data-start="{" data-end="};">
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html"> 77</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">Sigmoid</a> {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="}">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4"> 79</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> 1.0f / (1.0f + <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">simd::exp</a>(-x));</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89"> 81</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>};</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89"> 82</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>};</div>
</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html"> 84</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sign.html">Sign</a> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00086" data-start="{" data-end="}">
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606"> 86</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">auto</span> z = <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{0};</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_unsigned_v&lt;T&gt;) {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> x != z;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_same_v&lt;T, complex64_t&gt;) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(x == z, x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>(x / <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">simd::abs</a>(x)));</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> x &lt; z, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{-1}, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(x &gt; z, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{1}, z));</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="foldopen" id="foldopen00085" data-start="{" data-end="};">
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html"> 85</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_sign.html">Sign</a> {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00087" data-start="{" data-end="}">
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606"> 87</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">auto</span> z = <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{0};</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_unsigned_v&lt;T&gt;) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> x != z;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_same_v&lt;T, complex64_t&gt;) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(x == z, x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>(x / <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">simd::abs</a>(x)));</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> x &lt; z, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{-1}, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">simd::select</a>(x &gt; z, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>{1}, z));</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b"> 97</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>};</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b"> 98</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>};</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="foldopen" id="foldopen00100" data-start="{" data-end="};">
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html"> 100</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_square.html">Square</a> {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee"> 102</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> x * x;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="foldopen" id="foldopen00101" data-start="{" data-end="};">
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html"> 101</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_square.html">Square</a> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00103" data-start="{" data-end="}">
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee"> 103</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee">operator()</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> x * x;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099"> 105</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>};</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099"> 106</a></span> <a class="code hl_define" href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a>()</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div>
</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>} <span class="comment">// namespace mlx::core::detail</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>} <span class="comment">// namespace mlx::core::detail</span></div>
<div class="ttc" id="acpu_2unary__ops_8h_html_a602aea95990389a45c255195f849d5de"><div class="ttname"><a href="cpu_2unary__ops_8h.html#a602aea95990389a45c255195f849d5de">SINGLE</a></div><div class="ttdeci">#define SINGLE()</div><div class="ttdef"><b>Definition</b> unary_ops.h:15</div></div>
<div class="ttc" id="acpu_2unary__ops_8h_html_a83702f31e6dbd79c339a6aad67319f64"><div class="ttname"><a href="cpu_2unary__ops_8h.html#a83702f31e6dbd79c339a6aad67319f64">DEFAULT_OP</a></div><div class="ttdeci">#define DEFAULT_OP(Op, op)</div><div class="ttdef"><b>Definition</b> unary_ops.h:21</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1detail_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1detail.html">mlx::core::detail</a></div><div class="ttdef"><b>Definition</b> binary_ops.h:7</div></div>
@ -248,28 +249,28 @@ $(function(){initNavTree('cpu_2unary__ops_8h_source.html',''); initResizable(tru
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f3cc8b2493586e83fd65640df3b60ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a></div><div class="ttdeci">Simd&lt; T, N &gt; abs(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:112</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a60e33ebb16d9bab375a64aec8015a5c2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a60e33ebb16d9bab375a64aec8015a5c2">mlx::core::simd::erf</a></div><div class="ttdeci">Simd&lt; T, N &gt; erf(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> math.h:137</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a660b79a51fb439f4aba91e2aea276300"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a></div><div class="ttdeci">Simd&lt; T, 1 &gt; conj(Simd&lt; T, 1 &gt; in)</div><div class="ttdef"><b>Definition</b> base_simd.h:84</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a660b79a51fb439f4aba91e2aea276300"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a></div><div class="ttdeci">Simd&lt; T, 1 &gt; conj(Simd&lt; T, 1 &gt; in)</div><div class="ttdef"><b>Definition</b> base_simd.h:85</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7687f3d14077b51fb421f0efb5b626db"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7687f3d14077b51fb421f0efb5b626db">mlx::core::simd::erfinv</a></div><div class="ttdeci">Simd&lt; T, N &gt; erfinv(Simd&lt; T, N &gt; a_)</div><div class="ttdef"><b>Definition</b> math.h:151</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8e22c484298d9af10b6604c835e52052"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a></div><div class="ttdeci">Simd&lt; T, N &gt; floor(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:113</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a97c69b04852ccba242f1348fda17ca20"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a></div><div class="ttdeci">auto imag(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::imag(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a97c69b04852ccba242f1348fda17ca20"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a></div><div class="ttdeci">auto imag(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::imag(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:108</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ab179f429e34cd6d5c37050ea7e7c54ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ab179f429e34cd6d5c37050ea7e7c54ad">mlx::core::simd::cos</a></div><div class="ttdeci">Simd&lt; T, N &gt; cos(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> math.h:128</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ab4d582d72c0a7ee313e19c906e43cef1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ab4d582d72c0a7ee313e19c906e43cef1">mlx::core::simd::sin</a></div><div class="ttdeci">Simd&lt; T, N &gt; sin(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> math.h:119</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:98</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:104</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae1d5460c58c507a0104d8dfa90343f12"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a></div><div class="ttdeci">Simd&lt; T, N &gt; ceil(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae39b8e1d1fff94947406eeb8ec6e0414"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; sqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:129</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aea75ddf8c696efc2e5e924667ed48e70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; rsqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:130</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:236</div></div>
<div class="ttc" id="asimd_8h_html"><div class="ttname"><a href="simd_8h.html">simd.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_abs_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_abs.html">mlx::core::detail::Abs</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:30</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_cos_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_cos.html">mlx::core::detail::ArcCos</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:31</div></div>
@ -278,38 +279,39 @@ $(function(){initNavTree('cpu_2unary__ops_8h_source.html',''); initResizable(tru
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_sinh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_sinh.html">mlx::core::detail::ArcSinh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tan_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tan.html">mlx::core::detail::ArcTan</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:35</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">mlx::core::detail::ArcTanh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:36</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:37</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_conjugate_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_conjugate.html">mlx::core::detail::Conjugate</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:38</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_cos_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_cos.html">mlx::core::detail::Cos</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:39</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_cosh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_cosh.html">mlx::core::detail::Cosh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:40</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_erf_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_erf.html">mlx::core::detail::Erf</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:41</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_erf_inv_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_erf_inv.html">mlx::core::detail::ErfInv</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:42</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_exp.html">mlx::core::detail::Exp</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_expm1_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_expm1.html">mlx::core::detail::Expm1</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:44</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html">mlx::core::detail::Floor</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:45</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html">mlx::core::detail::Imag</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:60</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html_a070cf43bc4e30871f8f32d4b84be05c8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8">mlx::core::detail::Imag::operator()</a></div><div class="ttdeci">Simd&lt; float, N &gt; operator()(Simd&lt; complex64_t, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:62</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html">mlx::core::detail::Log10</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:48</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html">mlx::core::detail::Log1p</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:49</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html">mlx::core::detail::Log2</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html">mlx::core::detail::Log</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:46</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html">mlx::core::detail::LogicalNot</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:50</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html">mlx::core::detail::Negative</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:51</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html">mlx::core::detail::Real</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:68</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html_a7c6c6c188d611e2084dba66b7489c21f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f">mlx::core::detail::Real::operator()</a></div><div class="ttdeci">Simd&lt; float, N &gt; operator()(Simd&lt; complex64_t, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:70</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html">mlx::core::detail::Round</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:52</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">mlx::core::detail::Rsqrt</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:56</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">mlx::core::detail::Sigmoid</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:76</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html_a12a3d53f0fd797b5cdd9d04d048ce1a4"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4">mlx::core::detail::Sigmoid::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:78</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html">mlx::core::detail::Sign</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:84</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html_a913c095e25668c8a6bb6e3243e150606"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606">mlx::core::detail::Sign::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:86</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sin_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sin.html">mlx::core::detail::Sin</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:53</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sinh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sinh.html">mlx::core::detail::Sinh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:54</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sqrt.html">mlx::core::detail::Sqrt</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html">mlx::core::detail::Square</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:100</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html_abab2378a94c4c38dffeb06a74b0f81ee"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee">mlx::core::detail::Square::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:102</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html">mlx::core::detail::Tan</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:57</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html">mlx::core::detail::Tanh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:58</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_invert_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html">mlx::core::detail::BitwiseInvert</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:37</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:38</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_conjugate_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_conjugate.html">mlx::core::detail::Conjugate</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:39</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_cos_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_cos.html">mlx::core::detail::Cos</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:40</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_cosh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_cosh.html">mlx::core::detail::Cosh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:41</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_erf_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_erf.html">mlx::core::detail::Erf</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:42</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_erf_inv_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_erf_inv.html">mlx::core::detail::ErfInv</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_exp.html">mlx::core::detail::Exp</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:44</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_expm1_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_expm1.html">mlx::core::detail::Expm1</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:45</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html">mlx::core::detail::Floor</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:46</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html">mlx::core::detail::Imag</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:61</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html_a070cf43bc4e30871f8f32d4b84be05c8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html#a070cf43bc4e30871f8f32d4b84be05c8">mlx::core::detail::Imag::operator()</a></div><div class="ttdeci">Simd&lt; float, N &gt; operator()(Simd&lt; complex64_t, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:63</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html">mlx::core::detail::Log10</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:49</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html">mlx::core::detail::Log1p</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:50</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html">mlx::core::detail::Log2</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:48</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html">mlx::core::detail::Log</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html">mlx::core::detail::LogicalNot</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:51</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html">mlx::core::detail::Negative</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:52</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html">mlx::core::detail::Real</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:69</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html_a7c6c6c188d611e2084dba66b7489c21f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html#a7c6c6c188d611e2084dba66b7489c21f">mlx::core::detail::Real::operator()</a></div><div class="ttdeci">Simd&lt; float, N &gt; operator()(Simd&lt; complex64_t, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:71</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html">mlx::core::detail::Round</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:53</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">mlx::core::detail::Rsqrt</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:57</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">mlx::core::detail::Sigmoid</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:77</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html_a12a3d53f0fd797b5cdd9d04d048ce1a4"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a12a3d53f0fd797b5cdd9d04d048ce1a4">mlx::core::detail::Sigmoid::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:79</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html">mlx::core::detail::Sign</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:85</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html_a913c095e25668c8a6bb6e3243e150606"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html#a913c095e25668c8a6bb6e3243e150606">mlx::core::detail::Sign::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:87</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sin_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sin.html">mlx::core::detail::Sin</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:54</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sinh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sinh.html">mlx::core::detail::Sinh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sqrt.html">mlx::core::detail::Sqrt</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:56</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html">mlx::core::detail::Square</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:101</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html_abab2378a94c4c38dffeb06a74b0f81ee"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html#abab2378a94c4c38dffeb06a74b0f81ee">mlx::core::detail::Square::operator()</a></div><div class="ttdeci">Simd&lt; T, N &gt; operator()(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> unary_ops.h:103</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html">mlx::core::detail::Tan</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:58</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html">mlx::core::detail::Tanh</a></div><div class="ttdef"><b>Definition</b> unary_ops.h:59</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html">mlx::core::simd::Simd</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:55</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Custom Metal Kernels &#8212; MLX 0.22.1 documentation</title>
<title>Custom Metal Kernels &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Metal Debugger" href="metal_debugger.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Custom Extensions in MLX &#8212; MLX 0.22.1 documentation</title>
<title>Custom Extensions in MLX &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Operations" href="../cpp/ops.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Metal Debugger &#8212; MLX 0.22.1 documentation</title>
<title>Metal Debugger &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Custom Extensions in MLX" href="extensions.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Using MLX in C++ &#8212; MLX 0.22.1 documentation</title>
<title>Using MLX in C++ &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -50,7 +50,7 @@
<link rel="prev" title="Custom Metal Kernels" href="custom_metal_kernels.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -129,8 +129,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -275,6 +275,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -485,6 +486,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -729,6 +729,15 @@
<a href="classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8"/>
<a href="classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965"/>
<a href="classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd"/>
<a href="classmlx_1_1core_1_1_bitwise_invert-members.html"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#a09162c49334380f5a04433e00427abfa"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#a2213ba033d215cca411edca552ac634e"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#a22457fe46135c2df426b89cc15b1f940"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#a36558873262f1353f1575590e68ef8bf"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#a7a122900d844f1e57a0faa7ad8b47a5c"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#aaa0180570a82e93988b982b93cd91623"/>
<a href="classmlx_1_1core_1_1_bitwise_invert.html#af7de39edef13cf483a6140f2dad4187e"/>
<a href="classmlx_1_1core_1_1_block_masked_m_m-members.html"/>
<a href="classmlx_1_1core_1_1_block_masked_m_m.html"/>
<a href="classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120"/>
@ -1173,6 +1182,12 @@
<a href="classmlx_1_1core_1_1_jit_compiler.html"/>
<a href="classmlx_1_1core_1_1_jit_compiler.html#a10a5cde91ab929ccbdbdf4c4d940f156"/>
<a href="classmlx_1_1core_1_1_jit_compiler.html#adcf98f940e1919388eaab907ea17a540"/>
<a href="classmlx_1_1core_1_1_l_u_f-members.html"/>
<a href="classmlx_1_1core_1_1_l_u_f.html"/>
<a href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051"/>
<a href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913"/>
<a href="classmlx_1_1core_1_1_l_u_f.html#a7e71d966d49e473f4bf0524c18425a07"/>
<a href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf"/>
<a href="classmlx_1_1core_1_1_less-members.html"/>
<a href="classmlx_1_1core_1_1_less.html"/>
<a href="classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef"/>
@ -1816,6 +1831,7 @@
<a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078ae8a9988458b0355001674020a45656fb"/>
<a href="classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae"/>
<a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597"/>
<a href="classmlx_1_1core_1_1array.html#a2476f987ec7a5afb7665d3b3974db0b2"/>
<a href="classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a"/>
<a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d"/>
<a href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff"/>
@ -2051,7 +2067,7 @@
<a href="classmlx_1_1core_1_1metal_1_1_device-members.html"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"/>
@ -2062,7 +2078,6 @@
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a75ed55e73baf48013028796518723ff0"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c"/>
<a href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf"/>
@ -2701,6 +2716,7 @@
<a href="group__ops.html#ga82216209dce901296fc737fe8efa5c94"/>
<a href="group__ops.html#ga82a53e083205a965387b3c3e2463244a"/>
<a href="group__ops.html#ga83e0bb45dc770cf014531d873b78c5a2"/>
<a href="group__ops.html#ga849365a62878579a33b3d3ad09bbc7be"/>
<a href="group__ops.html#ga8598dd718fb05cb28535e250372d4e6f"/>
<a href="group__ops.html#ga866af24e10db2797e1c5a5986dbf6c0d"/>
<a href="group__ops.html#ga8694ec137165752cb6d8a36a6b7c3436"/>
@ -2817,6 +2833,7 @@
<a href="group__ops.html#gaf0cd4257de7542daf9faf5e605e31020"/>
<a href="group__ops.html#gaf0d232de4cbfffda1e2c838f8afdf6ff"/>
<a href="group__ops.html#gaf115782d009ac2a547fcca395c9ec797"/>
<a href="group__ops.html#gaf1182ae7c049fbc9ee190f3e0fffbf83"/>
<a href="group__ops.html#gaf18fb7e98bf8cf3b7fbc5e64c988a95b"/>
<a href="group__ops.html#gaf240618fc8b06debf5f56e97e84f18ef"/>
<a href="group__ops.html#gaf25c00108feaafaa6350a4434cb0062e"/>
@ -3252,6 +3269,7 @@
<a href="namespacemlx_1_1core.html#a067d47823a322b88043cce7ce4a3ec78"/>
<a href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d"/>
<a href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b"/>
<a href="namespacemlx_1_1core.html#a078859db0d66ff77f97af6dc9764e8eb"/>
<a href="namespacemlx_1_1core.html#a084558b6a5487549799c49c37c9e9652"/>
<a href="namespacemlx_1_1core.html#a085eb092f4ada47f8169de62886cff90"/>
<a href="namespacemlx_1_1core.html#a0908a61ab261aff726922b33fa6ed159"/>
@ -3355,6 +3373,7 @@
<a href="namespacemlx_1_1core.html#a349a9fc2bfd950f679a3fe39b8bdedad"/>
<a href="namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2"/>
<a href="namespacemlx_1_1core.html#a3555a2b31fc0925850d3240e85e03ec5"/>
<a href="namespacemlx_1_1core.html#a357f4172305d2021bde8cf07d99adb7d"/>
<a href="namespacemlx_1_1core.html#a358e66ff205bda3e8542427b6d2edadc"/>
<a href="namespacemlx_1_1core.html#a359c6257097a304c00d41d64296ef4c9"/>
<a href="namespacemlx_1_1core.html#a35a412f688d79eb47e42d20a7c8650ee"/>
@ -3395,6 +3414,7 @@
<a href="namespacemlx_1_1core.html#a46d502dfe0b027955950d4e716c2eb26"/>
<a href="namespacemlx_1_1core.html#a4734a596e57434492ddfe79f2cb9dbf9"/>
<a href="namespacemlx_1_1core.html#a473fb602368f6c73d9105c9a151c4c82"/>
<a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1"/>
<a href="namespacemlx_1_1core.html#a477cade78296bc85894170f62db68870"/>
<a href="namespacemlx_1_1core.html#a479648542a2bea151b947b18f0e79dd2"/>
<a href="namespacemlx_1_1core.html#a47c82778e43032c0bbf5d59407e81dc9"/>
@ -3439,7 +3459,6 @@
<a href="namespacemlx_1_1core.html#a55130edf926366db0d6207989e609b7c"/>
<a href="namespacemlx_1_1core.html#a55933c6665de9f81059120d6b0de1c87"/>
<a href="namespacemlx_1_1core.html#a562040f4a03f2c0a5d50eb9c8f14a8be"/>
<a href="namespacemlx_1_1core.html#a56de948c2dffbf35c88035bc1561db53"/>
<a href="namespacemlx_1_1core.html#a57395bdf43d9c5c134e610c169222cca"/>
<a href="namespacemlx_1_1core.html#a57952168bd0b54c2677204d4ab1cb6e5"/>
<a href="namespacemlx_1_1core.html#a579bb87b3ede5663d7cd68c7c0f6fb9e"/>
@ -3687,6 +3706,7 @@
<a href="namespacemlx_1_1core.html#abec4200a718b7c5ed80b7abcc4447260"/>
<a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec"/>
<a href="namespacemlx_1_1core.html#abf49b337a00997231c0f7fd389efa8f3"/>
<a href="namespacemlx_1_1core.html#abf57076f6d2351ba9f1e0cbe478f8afa"/>
<a href="namespacemlx_1_1core.html#abf5d09561a81b0f0b32d59d77e32e16f"/>
<a href="namespacemlx_1_1core.html#abf8dae3b87a03a409711691cd9c097b6"/>
<a href="namespacemlx_1_1core.html#ac14b984970cafd8fbe24d080949515cc"/>
@ -3904,9 +3924,10 @@
<a href="namespacemlx_1_1core_1_1distributed_1_1ring.html#a81a13abe6f334d2f6b058b39a2221e67"/>
<a href="namespacemlx_1_1core_1_1env.html"/>
<a href="namespacemlx_1_1core_1_1env.html#a0efecbf9efe695adafad12b5a4945df3"/>
<a href="namespacemlx_1_1core_1_1env.html#aa532471d4506e11e0da615b9d6451083"/>
<a href="namespacemlx_1_1core_1_1env.html#ac3266e1259a64c8b56bdc6c7029179f2"/>
<a href="namespacemlx_1_1core_1_1env.html#aedbf4e739553024c33dd0094dd9107aa"/>
<a href="namespacemlx_1_1core_1_1env.html#afa1ecf087fe0c633d5460ddb2c31c945"/>
<a href="namespacemlx_1_1core_1_1env.html#afc55d7755889157ded85d52cde14f413"/>
<a href="namespacemlx_1_1core_1_1fast.html"/>
<a href="namespacemlx_1_1core_1_1fast.html#a01bd533ebd0e2415c4ee30032d51d7bf"/>
<a href="namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328"/>
@ -3955,10 +3976,14 @@
<a href="namespacemlx_1_1core_1_1linalg.html#a229018071d5602e38d6248230f334a10"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a44250cff34238f01471fd61e76036f03"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a46c8a4f806f0a97a4323e91189aa512b"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a5e6e53f7a04688baa1329d166511febe"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a66590bfcec381e952b27630da0a31953"/>
<a href="namespacemlx_1_1core_1_1linalg.html#a7a426a92cb02c0d125e41f8915e66f7f"/>
<a href="namespacemlx_1_1core_1_1linalg.html#aba1994571326326717b5b5e38c2e0661"/>
<a href="namespacemlx_1_1core_1_1linalg.html#aba765b8e95e9a1d33d31f727a185919d"/>
<a href="namespacemlx_1_1core_1_1linalg.html#abcda3fbda45183c21e7f27aa0dde64e6"/>
<a href="namespacemlx_1_1core_1_1linalg.html#abf10561bef3450b83a45aef161ee8b6e"/>
<a href="namespacemlx_1_1core_1_1linalg.html#acaa85b4146821c268abecec2422c02d2"/>
<a href="namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2"/>
<a href="namespacemlx_1_1core_1_1linalg.html#ad9f8348091e5ff4f74ad456e9fbd3e01"/>
@ -4102,6 +4127,7 @@
<a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c"/>
<a href="namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c"/>
<a href="namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59"/>
<a href="namespacemlx_1_1core_1_1simd.html#a290787dda17296d27af7afdef3c732a9"/>
<a href="namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54"/>
<a href="namespacemlx_1_1core_1_1simd.html#a2a381e5ec89406074b8d1921304238bb"/>
<a href="namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859"/>
@ -4137,6 +4163,7 @@
<a href="namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4bf8c887eb6943563ceb1e603d1325b1"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4c6ed06d523db05f99df7ef21b374c41"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713"/>
<a href="namespacemlx_1_1core_1_1simd.html#a4e65febbfa8b4df2970c1d78801b3c66"/>
@ -4682,6 +4709,9 @@
<a href="struct_bitwise_and-members.html"/>
<a href="struct_bitwise_and.html"/>
<a href="struct_bitwise_and.html#afb48af090b01dd0200963bc12d842e36"/>
<a href="struct_bitwise_invert-members.html"/>
<a href="struct_bitwise_invert.html"/>
<a href="struct_bitwise_invert.html#a8f0c83f39bbb475368494568acdb794c"/>
<a href="struct_bitwise_or-members.html"/>
<a href="struct_bitwise_or.html"/>
<a href="struct_bitwise_or.html#a41f847463daafa99ee56f4035578390f"/>
@ -5263,13 +5293,13 @@
<a href="structmlx_1_1core_1_1_command_encoder-members.html"/>
<a href="structmlx_1_1core_1_1_command_encoder.html"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e"/>
<a href="structmlx_1_1core_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d"/>
@ -5341,6 +5371,7 @@
<a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f"/>
<a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23"/>
<a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3"/>
<a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92"/>
<a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8"/>
<a href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1"/>
<a href="structmlx_1_1core_1_1_function_exporter-members.html"/>
@ -5373,6 +5404,7 @@
<a href="structmlx_1_1core_1_1_print_formatter.html#a520adb07fafd911b22bc24b295e4f6cf"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a57af5c32561b95d6ac2a3a1dc4f5d43e"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a79fad4cf5844db8c92b066539146281b"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a8287664c29d09f5eff3a0ba87e2c49fb"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a8da448a8adae671b26359341ea514316"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a9d750c134a6fbfa8251c5b1d01d73287"/>
<a href="structmlx_1_1core_1_1_print_formatter.html#a9e1dc67c9afb0a09966336504790823d"/>
@ -5495,6 +5527,10 @@
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#a91cff5472e47b13fd9d291b17d2e877b"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_invert-members.html"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html#a82a68523f66008c83dc6ebea184b5fe4"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_invert.html#ad6cdfbd47f1fb2d8c251ce0da92c22c6"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_or-members.html"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html"/>
<a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20"/>
@ -5717,19 +5753,19 @@
<a href="structmlx_1_1core_1_1finfo-members.html"/>
<a href="structmlx_1_1core_1_1finfo.html"/>
<a href="structmlx_1_1core_1_1finfo.html#a00dee158d75d12768d02a3e7b6709109"/>
<a href="structmlx_1_1core_1_1finfo.html#a0606e7a2d4c9a5fd6ea8e0eab5445c4a"/>
<a href="structmlx_1_1core_1_1finfo.html#a4edcbcfae55c1ef3cb8e61d427ac9124"/>
<a href="structmlx_1_1core_1_1finfo.html#a91332dcbb502799b6cc8e1c6933c042b"/>
<a href="structmlx_1_1core_1_1finfo.html#a9975908d99d25e9225d0c70bead0abc2"/>
<a href="structmlx_1_1core_1_1finfo.html#a976ada682716f9531dfccddcf0ab3083"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder-members.html"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a0a8501b940e5a347475fa4bc38fb4c05"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a68c3c6a036e11ec40211c09811bbed1b"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6d4c03a6585deedb5ccd1a1057d0c6ef"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7375adf9ee5355bcf4b7f5f210efd115"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7f028c6ca48e75bf2c1806b5b8cfc90e"/>
<a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a85796b2bf41dbf347ae0978d4660600d"/>
@ -5759,6 +5795,7 @@
<a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499"/>
<a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb"/>
<a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782"/>
<a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459"/>
<a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de"/>
<a href="structmlx_1_1core_1_1metal_1_1_fence-members.html"/>
<a href="structmlx_1_1core_1_1metal_1_1_fence.html"/>
@ -5771,6 +5808,7 @@
<a href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a01712fcb04266320225c168a0e6f619a"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a3623580fbfd92ceb69cdd8e329e18fa8"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a974982399d0211786599526abdb843b8"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01double_01_4.html"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4-members.html"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html"/>
<a href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html#a2a8f3f489b47b7e8398bec9895ae0c27"/>

View File

@ -172,6 +172,8 @@ Variables</h2></td></tr>
<tr class="separator:abf228ee9d8ec48c03bb15adcc4e1f3ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6894543b340321193dfb8052c438a319" id="r_a6894543b340321193dfb8052c438a319"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a> {Dtype::Val::float32, sizeof(float)}</td></tr>
<tr class="separator:a6894543b340321193dfb8052c438a319"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a474bf5eb8bca8c380207c9f659aef3b1" id="r_a474bf5eb8bca8c380207c9f659aef3b1"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a> {Dtype::Val::float64, sizeof(double)}</td></tr>
<tr class="separator:a474bf5eb8bca8c380207c9f659aef3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a514cf8b4e6f0a6af3a867e752f4338f7" id="r_a514cf8b4e6f0a6af3a867e752f4338f7"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a> {Dtype::Val::bfloat16, sizeof(uint16_t)}</td></tr>
<tr class="separator:a514cf8b4e6f0a6af3a867e752f4338f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af99db87e0078bfcdb383f5689bc874d4" id="r_af99db87e0078bfcdb383f5689bc874d4"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a> {Dtype::Val::complex64, sizeof(<a class="el" href="structmlx_1_1core_1_1complex64__t.html">complex64_t</a>)}</td></tr>

View File

@ -15,6 +15,7 @@ var dtype_8h =
[ "mlx::core::complexfloating", "namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423", null ],
[ "mlx::core::float16", "namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec", null ],
[ "mlx::core::float32", "namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319", null ],
[ "mlx::core::float64", "namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1", null ],
[ "mlx::core::floating", "namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a", null ],
[ "mlx::core::generic", "namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2", null ],
[ "mlx::core::inexact", "namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534", null ],

View File

@ -132,171 +132,175 @@ $(function(){initNavTree('dtype_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8"> 23</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8">int64</a>,</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6"> 24</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6">float16</a>,</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3"> 25</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3">float32</a>,</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47"> 26</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">bfloat16</a>,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf"> 27</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">complex64</a>,</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> };</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92"> 26</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92">float64</a>,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47"> 27</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">bfloat16</a>,</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf"> 28</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">complex64</a>,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> };</div>
</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="foldopen" id="foldopen00030" data-start="{" data-end="};">
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715"> 30</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Kind</a> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"> 31</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">b</a>, <span class="comment">/* bool */</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"> 32</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">u</a>, <span class="comment">/* unsigned int */</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"> 33</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">i</a>, <span class="comment">/* signed int */</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"> 34</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">f</a>, <span class="comment">/* float */</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"> 35</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">c</a>, <span class="comment">/* complex */</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"> 36</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">V</a>, <span class="comment">/* void - used for brain float */</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> };</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="foldopen" id="foldopen00031" data-start="{" data-end="};">
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715"> 31</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Kind</a> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"> 32</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">b</a>, <span class="comment">/* bool */</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"> 33</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">u</a>, <span class="comment">/* unsigned int */</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"> 34</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">i</a>, <span class="comment">/* signed int */</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"> 35</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">f</a>, <span class="comment">/* float */</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"> 36</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">c</a>, <span class="comment">/* complex */</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"> 37</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">V</a>, <span class="comment">/* void - used for brain float */</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> };</div>
</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="foldopen" id="foldopen00039" data-start="{" data-end="};">
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d"> 39</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Category</a> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812"> 40</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">complexfloating</a>,</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17"> 41</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">floating</a>,</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9"> 42</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">inexact</a>,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10"> 43</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">signedinteger</a>,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3"> 44</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">unsignedinteger</a>,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8"> 45</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">integer</a>,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df"> 46</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">number</a>,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9"> 47</a></span> <span class="keyword">generic</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> };</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="foldopen" id="foldopen00040" data-start="{" data-end="};">
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d"> 40</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Category</a> {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812"> 41</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">complexfloating</a>,</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17"> 42</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">floating</a>,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9"> 43</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">inexact</a>,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10"> 44</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">signedinteger</a>,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3"> 45</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">unsignedinteger</a>,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8"> 46</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">integer</a>,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df"> 47</a></span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">number</a>,</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9"> 48</a></span> <span class="keyword">generic</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> };</div>
</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1"> 50</a></span> <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1">Dtype</a>(<a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>, uint8_t <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>) : val_(<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>), size_(<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>) {}</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="foldopen" id="foldopen00052" data-start="{" data-end="}">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#a3b3bc059be5836476da3cb88a4f5e9fd"> 52</a></span> <span class="keyword">constexpr</span> <span class="keyword">operator</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> val_;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1"> 51</a></span> <span class="keyword">constexpr</span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1">Dtype</a>(<a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>, uint8_t <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>) : val_(<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>), size_(<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>) {}</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00053" data-start="{" data-end="}">
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#a3b3bc059be5836476da3cb88a4f5e9fd"> 53</a></span> <span class="keyword">constexpr</span> <span class="keyword">operator</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> val_;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
</div>
<div class="foldopen" id="foldopen00055" data-start="{" data-end="}">
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1"> 55</a></span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> val_;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="}">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1"> 56</a></span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">val</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> val_;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
</div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971"> 58</a></span> <span class="keyword">constexpr</span> uint8_t <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> size_;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971"> 59</a></span> <span class="keyword">constexpr</span> uint8_t <a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> size_;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> val_;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> uint8_t size_;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>};</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> val_;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> uint8_t size_;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82"> 67</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">bool_</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b">Dtype::Val::bool_</a>, <span class="keyword">sizeof</span>(bool)};</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68"> 69</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a">Dtype::Val::uint8</a>, <span class="keyword">sizeof</span>(uint8_t)};</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812"> 70</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f">Dtype::Val::uint16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e"> 71</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e">Dtype::Val::uint32</a>, <span class="keyword">sizeof</span>(uint32_t)};</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8"> 72</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07">Dtype::Val::uint64</a>, <span class="keyword">sizeof</span>(uint64_t)};</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672"> 74</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac">Dtype::Val::int8</a>, <span class="keyword">sizeof</span>(int8_t)};</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07"> 75</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23">Dtype::Val::int16</a>, <span class="keyword">sizeof</span>(int16_t)};</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3"> 76</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f">Dtype::Val::int32</a>, <span class="keyword">sizeof</span>(int32_t)};</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8"> 77</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8">Dtype::Val::int64</a>, <span class="keyword">sizeof</span>(int64_t)};</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec"> 79</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6">Dtype::Val::float16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319"> 80</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3">Dtype::Val::float32</a>, <span class="keyword">sizeof</span>(float)};</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7"> 81</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">Dtype::Val::bfloat16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4"> 82</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">Dtype::Val::complex64</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structmlx_1_1core_1_1complex64__t.html">complex64_t</a>)};</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423"> 84</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423">complexfloating</a> =</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">Dtype::Category::complexfloating</a>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a"> 86</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a">floating</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">Dtype::Category::floating</a>;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534"> 87</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534">inexact</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">Dtype::Category::inexact</a>;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001"> 88</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001">signedinteger</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">Dtype::Category::signedinteger</a>;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81"> 89</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81">unsignedinteger</a> =</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">Dtype::Category::unsignedinteger</a>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b"> 91</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b">integer</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">Dtype::Category::integer</a>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d"> 92</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d">number</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">Dtype::Category::number</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2"> 93</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <span class="keyword">generic</span> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9">Dtype::Category::generic</a>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7"> 95</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; b);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704"> 96</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; b);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8"> 97</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; a, <span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; b);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d"> 98</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; a, <span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; b);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497"> 100</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497">promote_types</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t1, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t2);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82"> 68</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">bool_</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b">Dtype::Val::bool_</a>, <span class="keyword">sizeof</span>(bool)};</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68"> 70</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">uint8</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a">Dtype::Val::uint8</a>, <span class="keyword">sizeof</span>(uint8_t)};</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812"> 71</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">uint16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f">Dtype::Val::uint16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e"> 72</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">uint32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e">Dtype::Val::uint32</a>, <span class="keyword">sizeof</span>(uint32_t)};</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8"> 73</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">uint64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07">Dtype::Val::uint64</a>, <span class="keyword">sizeof</span>(uint64_t)};</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672"> 75</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">int8</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac">Dtype::Val::int8</a>, <span class="keyword">sizeof</span>(int8_t)};</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07"> 76</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">int16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23">Dtype::Val::int16</a>, <span class="keyword">sizeof</span>(int16_t)};</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3"> 77</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f">Dtype::Val::int32</a>, <span class="keyword">sizeof</span>(int32_t)};</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8"> 78</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">int64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8">Dtype::Val::int64</a>, <span class="keyword">sizeof</span>(int64_t)};</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec"> 80</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">float16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6">Dtype::Val::float16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319"> 81</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3">Dtype::Val::float32</a>, <span class="keyword">sizeof</span>(float)};</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1"> 82</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">float64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92">Dtype::Val::float64</a>, <span class="keyword">sizeof</span>(double)};</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7"> 83</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">bfloat16</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">Dtype::Val::bfloat16</a>, <span class="keyword">sizeof</span>(uint16_t)};</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4"> 84</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">complex64</a>{<a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">Dtype::Val::complex64</a>, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structmlx_1_1core_1_1complex64__t.html">complex64_t</a>)};</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423"> 86</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423">complexfloating</a> =</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">Dtype::Category::complexfloating</a>;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a"> 88</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a">floating</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">Dtype::Category::floating</a>;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534"> 89</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534">inexact</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">Dtype::Category::inexact</a>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001"> 90</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001">signedinteger</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">Dtype::Category::signedinteger</a>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81"> 91</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81">unsignedinteger</a> =</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">Dtype::Category::unsignedinteger</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b"> 93</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b">integer</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">Dtype::Category::integer</a>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d"> 94</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <a class="code hl_variable" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d">number</a> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">Dtype::Category::number</a>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2"> 95</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a> <span class="keyword">generic</span> = <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9">Dtype::Category::generic</a>;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7"> 97</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; b);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704"> 98</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; a, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; b);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8"> 99</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; a, <span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; b);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d"> 100</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">issubdtype</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; a, <span class="keyword">const</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">Dtype::Category</a>&amp; b);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95"> 102</a></span><span class="keyword">inline</span> uint8_t <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> t.<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>();</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497"> 102</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497">promote_types</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t1, <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t2);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="foldopen" id="foldopen00104" data-start="{" data-end="}">
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95"> 104</a></span><span class="keyword">inline</span> uint8_t <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t) {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> t.<a class="code hl_function" href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">size</a>();</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>}</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724"> 106</a></span><a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Dtype::Kind</a> <a class="code hl_function" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">kindof</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00109" data-start="{" data-end="};">
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html"> 109</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype</a> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13"> 110</a></span> <span class="keyword">operator</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>();</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>};</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724"> 108</a></span><a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Dtype::Kind</a> <a class="code hl_function" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">kindof</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&amp; t);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="};">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html"> 111</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1_type_to_dtype.html">TypeToDtype</a> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13"> 112</a></span> <span class="keyword">operator</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>();</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>};</div>
</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="ahalf__types_8h_html"><div class="ttname"><a href="half__types_8h.html">half_types.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a069c0aab6b36aef34419534ec4a4310d"><div class="ttname"><a href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d">mlx::core::number</a></div><div class="ttdeci">constexpr Dtype::Category number</div><div class="ttdef"><b>Definition</b> dtype.h:92</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a074d000f25ae3ed77450e6a5fec4b38b"><div class="ttname"><a href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b">mlx::core::integer</a></div><div class="ttdeci">constexpr Dtype::Category integer</div><div class="ttdef"><b>Definition</b> dtype.h:91</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:67</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a24e1618af591d737d73729665e868001"><div class="ttname"><a href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001">mlx::core::signedinteger</a></div><div class="ttdeci">constexpr Dtype::Category signedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:88</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a42e9706a5521bb25eaf12ccad94bfc81"><div class="ttname"><a href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81">mlx::core::unsignedinteger</a></div><div class="ttdeci">constexpr Dtype::Category unsignedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:89</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a069c0aab6b36aef34419534ec4a4310d"><div class="ttname"><a href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d">mlx::core::number</a></div><div class="ttdeci">constexpr Dtype::Category number</div><div class="ttdef"><b>Definition</b> dtype.h:94</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a074d000f25ae3ed77450e6a5fec4b38b"><div class="ttname"><a href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b">mlx::core::integer</a></div><div class="ttdeci">constexpr Dtype::Category integer</div><div class="ttdef"><b>Definition</b> dtype.h:93</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a113d2bac7e4aa6a4cb4a5c3242527b82"><div class="ttname"><a href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82">mlx::core::bool_</a></div><div class="ttdeci">constexpr Dtype bool_</div><div class="ttdef"><b>Definition</b> dtype.h:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1f42e3dd4787d2ecec7114a12daefec8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8">mlx::core::uint64</a></div><div class="ttdeci">constexpr Dtype uint64</div><div class="ttdef"><b>Definition</b> dtype.h:73</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a24e1618af591d737d73729665e868001"><div class="ttname"><a href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001">mlx::core::signedinteger</a></div><div class="ttdeci">constexpr Dtype::Category signedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:90</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a312a70c487366968af5e6cbf5038c812"><div class="ttname"><a href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812">mlx::core::uint16</a></div><div class="ttdeci">constexpr Dtype uint16</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a42e9706a5521bb25eaf12ccad94bfc81"><div class="ttname"><a href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81">mlx::core::unsignedinteger</a></div><div class="ttdeci">constexpr Dtype::Category unsignedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:91</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a474bf5eb8bca8c380207c9f659aef3b1"><div class="ttname"><a href="namespacemlx_1_1core.html#a474bf5eb8bca8c380207c9f659aef3b1">mlx::core::float64</a></div><div class="ttdeci">constexpr Dtype float64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a505922e54acd43114308e3bdbda0e497"><div class="ttname"><a href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497">mlx::core::promote_types</a></div><div class="ttdeci">Dtype promote_types(const Dtype &amp;t1, const Dtype &amp;t2)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a54c6fae21b7f2fea8e6f80011ef38534"><div class="ttname"><a href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534">mlx::core::inexact</a></div><div class="ttdeci">constexpr Dtype::Category inexact</div><div class="ttdef"><b>Definition</b> dtype.h:87</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a70b8e88c9df750af984757105af33423"><div class="ttname"><a href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423">mlx::core::complexfloating</a></div><div class="ttdeci">constexpr Dtype::Category complexfloating</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:74</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:69</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:79</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:71</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac9f9ea13cf0661e671569d37d14a128a"><div class="ttname"><a href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a">mlx::core::floating</a></div><div class="ttdeci">constexpr Dtype::Category floating</div><div class="ttdef"><b>Definition</b> dtype.h:86</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a514cf8b4e6f0a6af3a867e752f4338f7"><div class="ttname"><a href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7">mlx::core::bfloat16</a></div><div class="ttdeci">constexpr Dtype bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:83</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a54c6fae21b7f2fea8e6f80011ef38534"><div class="ttname"><a href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534">mlx::core::inexact</a></div><div class="ttdeci">constexpr Dtype::Category inexact</div><div class="ttdef"><b>Definition</b> dtype.h:89</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a5d6373aad1444edc9de1eb07bfe5cad3"><div class="ttname"><a href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">mlx::core::int32</a></div><div class="ttdeci">constexpr Dtype int32</div><div class="ttdef"><b>Definition</b> dtype.h:77</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a70b8e88c9df750af984757105af33423"><div class="ttname"><a href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423">mlx::core::complexfloating</a></div><div class="ttdeci">constexpr Dtype::Category complexfloating</div><div class="ttdef"><b>Definition</b> dtype.h:86</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a71ebba4ad1afa730962f0692c4f42f07"><div class="ttname"><a href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07">mlx::core::int16</a></div><div class="ttdeci">constexpr Dtype int16</div><div class="ttdef"><b>Definition</b> dtype.h:76</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a892e934e146dd938d144cee8813ca672"><div class="ttname"><a href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672">mlx::core::int8</a></div><div class="ttdeci">constexpr Dtype int8</div><div class="ttdef"><b>Definition</b> dtype.h:75</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9019bdc191054ada0a502c7c34cef5b8"><div class="ttname"><a href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8">mlx::core::int64</a></div><div class="ttdeci">constexpr Dtype int64</div><div class="ttdef"><b>Definition</b> dtype.h:78</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9778d50afbf456b0bd738751243b3b68"><div class="ttname"><a href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68">mlx::core::uint8</a></div><div class="ttdeci">constexpr Dtype uint8</div><div class="ttdef"><b>Definition</b> dtype.h:70</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abf228ee9d8ec48c03bb15adcc4e1f3ec"><div class="ttname"><a href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec">mlx::core::float16</a></div><div class="ttdeci">constexpr Dtype float16</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac63820d6fe10545907c33faf466a929e"><div class="ttname"><a href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e">mlx::core::uint32</a></div><div class="ttdeci">constexpr Dtype uint32</div><div class="ttdef"><b>Definition</b> dtype.h:72</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ac9f9ea13cf0661e671569d37d14a128a"><div class="ttname"><a href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a">mlx::core::floating</a></div><div class="ttdeci">constexpr Dtype::Category floating</div><div class="ttdef"><b>Definition</b> dtype.h:88</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_aca9e69b06f4212eba44bf0ce6711d5f7"><div class="ttname"><a href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7">mlx::core::issubdtype</a></div><div class="ttdeci">bool issubdtype(const Dtype &amp;a, const Dtype &amp;b)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ad527b86818823db040195785efd7d724"><div class="ttname"><a href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">mlx::core::kindof</a></div><div class="ttdeci">Dtype::Kind kindof(const Dtype &amp;t)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:82</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &amp;t)</div><div class="ttdef"><b>Definition</b> dtype.h:104</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af99db87e0078bfcdb383f5689bc874d4"><div class="ttname"><a href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4">mlx::core::complex64</a></div><div class="ttdeci">constexpr Dtype complex64</div><div class="ttdef"><b>Definition</b> dtype.h:84</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html">mlx::core::Dtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:13</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_a7a99656f121c8922ab82e72c8e9bd7f1"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">mlx::core::Dtype::val</a></div><div class="ttdeci">constexpr Val val() const</div><div class="ttdef"><b>Definition</b> dtype.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ab54051563d85212c7f0f049166bc9971"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">mlx::core::Dtype::size</a></div><div class="ttdeci">constexpr uint8_t size() const</div><div class="ttdef"><b>Definition</b> dtype.h:58</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2d"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">mlx::core::Dtype::Category</a></div><div class="ttdeci">Category</div><div class="ttdef"><b>Definition</b> dtype.h:39</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">mlx::core::Dtype::Category::integer</a></div><div class="ttdeci">@ integer</div><div class="ttdef"><b>Definition</b> dtype.h:45</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">mlx::core::Dtype::Category::floating</a></div><div class="ttdeci">@ floating</div><div class="ttdef"><b>Definition</b> dtype.h:41</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9">mlx::core::Dtype::Category::generic</a></div><div class="ttdeci">@ generic</div><div class="ttdef"><b>Definition</b> dtype.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">mlx::core::Dtype::Category::unsignedinteger</a></div><div class="ttdeci">@ unsignedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:44</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">mlx::core::Dtype::Category::number</a></div><div class="ttdeci">@ number</div><div class="ttdef"><b>Definition</b> dtype.h:46</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">mlx::core::Dtype::Category::inexact</a></div><div class="ttdeci">@ inexact</div><div class="ttdef"><b>Definition</b> dtype.h:42</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">mlx::core::Dtype::Category::signedinteger</a></div><div class="ttdeci">@ signedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">mlx::core::Dtype::Category::complexfloating</a></div><div class="ttdeci">@ complexfloating</div><div class="ttdef"><b>Definition</b> dtype.h:40</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">mlx::core::Dtype::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition</b> dtype.h:30</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">mlx::core::Dtype::Kind::c</a></div><div class="ttdeci">@ c</div><div class="ttdef"><b>Definition</b> dtype.h:35</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div><div class="ttdef"><b>Definition</b> dtype.h:36</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div><div class="ttdef"><b>Definition</b> dtype.h:32</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div><div class="ttdef"><b>Definition</b> dtype.h:33</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div><div class="ttdef"><b>Definition</b> dtype.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div><div class="ttdef"><b>Definition</b> dtype.h:31</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_a7a99656f121c8922ab82e72c8e9bd7f1"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#a7a99656f121c8922ab82e72c8e9bd7f1">mlx::core::Dtype::val</a></div><div class="ttdeci">constexpr Val val() const</div><div class="ttdef"><b>Definition</b> dtype.h:56</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ab54051563d85212c7f0f049166bc9971"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971">mlx::core::Dtype::size</a></div><div class="ttdeci">constexpr uint8_t size() const</div><div class="ttdef"><b>Definition</b> dtype.h:59</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2d"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d">mlx::core::Dtype::Category</a></div><div class="ttdeci">Category</div><div class="ttdef"><b>Definition</b> dtype.h:40</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">mlx::core::Dtype::Category::integer</a></div><div class="ttdeci">@ integer</div><div class="ttdef"><b>Definition</b> dtype.h:46</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">mlx::core::Dtype::Category::floating</a></div><div class="ttdeci">@ floating</div><div class="ttdef"><b>Definition</b> dtype.h:42</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9">mlx::core::Dtype::Category::generic</a></div><div class="ttdeci">@ generic</div><div class="ttdef"><b>Definition</b> dtype.h:48</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">mlx::core::Dtype::Category::unsignedinteger</a></div><div class="ttdeci">@ unsignedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:45</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">mlx::core::Dtype::Category::number</a></div><div class="ttdeci">@ number</div><div class="ttdef"><b>Definition</b> dtype.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">mlx::core::Dtype::Category::inexact</a></div><div class="ttdeci">@ inexact</div><div class="ttdef"><b>Definition</b> dtype.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">mlx::core::Dtype::Category::signedinteger</a></div><div class="ttdeci">@ signedinteger</div><div class="ttdef"><b>Definition</b> dtype.h:44</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">mlx::core::Dtype::Category::complexfloating</a></div><div class="ttdeci">@ complexfloating</div><div class="ttdef"><b>Definition</b> dtype.h:41</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">mlx::core::Dtype::Kind</a></div><div class="ttdeci">Kind</div><div class="ttdef"><b>Definition</b> dtype.h:31</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">mlx::core::Dtype::Kind::c</a></div><div class="ttdeci">@ c</div><div class="ttdef"><b>Definition</b> dtype.h:36</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div><div class="ttdef"><b>Definition</b> dtype.h:37</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div><div class="ttdef"><b>Definition</b> dtype.h:33</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div><div class="ttdef"><b>Definition</b> dtype.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div><div class="ttdef"><b>Definition</b> dtype.h:35</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div><div class="ttdef"><b>Definition</b> dtype.h:32</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1da"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">mlx::core::Dtype::Val</a></div><div class="ttdeci">Val</div><div class="ttdef"><b>Definition</b> dtype.h:14</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f">mlx::core::Dtype::Val::int32</a></div><div class="ttdeci">@ int32</div><div class="ttdef"><b>Definition</b> dtype.h:22</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6">mlx::core::Dtype::Val::float16</a></div><div class="ttdeci">@ float16</div><div class="ttdef"><b>Definition</b> dtype.h:24</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac">mlx::core::Dtype::Val::int8</a></div><div class="ttdeci">@ int8</div><div class="ttdef"><b>Definition</b> dtype.h:20</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07">mlx::core::Dtype::Val::uint64</a></div><div class="ttdeci">@ uint64</div><div class="ttdef"><b>Definition</b> dtype.h:19</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e">mlx::core::Dtype::Val::uint32</a></div><div class="ttdeci">@ uint32</div><div class="ttdef"><b>Definition</b> dtype.h:18</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">mlx::core::Dtype::Val::bfloat16</a></div><div class="ttdeci">@ bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:26</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">mlx::core::Dtype::Val::bfloat16</a></div><div class="ttdeci">@ bfloat16</div><div class="ttdef"><b>Definition</b> dtype.h:27</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b">mlx::core::Dtype::Val::bool_</a></div><div class="ttdeci">@ bool_</div><div class="ttdef"><b>Definition</b> dtype.h:15</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a">mlx::core::Dtype::Val::uint8</a></div><div class="ttdeci">@ uint8</div><div class="ttdef"><b>Definition</b> dtype.h:16</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">mlx::core::Dtype::Val::complex64</a></div><div class="ttdeci">@ complex64</div><div class="ttdef"><b>Definition</b> dtype.h:27</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">mlx::core::Dtype::Val::complex64</a></div><div class="ttdeci">@ complex64</div><div class="ttdef"><b>Definition</b> dtype.h:28</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f">mlx::core::Dtype::Val::uint16</a></div><div class="ttdeci">@ uint16</div><div class="ttdef"><b>Definition</b> dtype.h:17</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23">mlx::core::Dtype::Val::int16</a></div><div class="ttdeci">@ int16</div><div class="ttdef"><b>Definition</b> dtype.h:21</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3">mlx::core::Dtype::Val::float32</a></div><div class="ttdeci">@ float32</div><div class="ttdef"><b>Definition</b> dtype.h:25</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daafb7fa22ede616c04c68a7663d0f81e92">mlx::core::Dtype::Val::float64</a></div><div class="ttdeci">@ float64</div><div class="ttdef"><b>Definition</b> dtype.h:26</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8">mlx::core::Dtype::Val::int64</a></div><div class="ttdeci">@ int64</div><div class="ttdef"><b>Definition</b> dtype.h:23</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_aec17f0a4a51729e5ac40b62f0aa765d1"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1">mlx::core::Dtype::Dtype</a></div><div class="ttdeci">constexpr Dtype(Val val, uint8_t size)</div><div class="ttdef"><b>Definition</b> dtype.h:50</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_type_to_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_type_to_dtype.html">mlx::core::TypeToDtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:109</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_aec17f0a4a51729e5ac40b62f0aa765d1"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1">mlx::core::Dtype::Dtype</a></div><div class="ttdeci">constexpr Dtype(Val val, uint8_t size)</div><div class="ttdef"><b>Definition</b> dtype.h:51</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_type_to_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_type_to_dtype.html">mlx::core::TypeToDtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:111</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1complex64__t_html"><div class="ttname"><a href="structmlx_1_1core_1_1complex64__t.html">mlx::core::complex64_t</a></div><div class="ttdef"><b>Definition</b> complex.h:35</div></div>
<div class="ttc" id="atypes_2complex_8h_html"><div class="ttname"><a href="types_2complex_8h.html">complex.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Linear Regression &#8212; MLX 0.22.1 documentation</title>
<title>Linear Regression &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Exporting Functions" href="../usage/export.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>LLM inference &#8212; MLX 0.22.1 documentation</title>
<title>LLM inference &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Multi-Layer Perceptron" href="mlp.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Multi-Layer Perceptron &#8212; MLX 0.22.1 documentation</title>
<title>Multi-Layer Perceptron &#8212; MLX 0.23.0 documentation</title>
@ -39,7 +39,7 @@
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="../_static/documentation_options.js?v=72ae2406"></script>
<script src="../_static/documentation_options.js?v=358893f7"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -51,7 +51,7 @@
<link rel="prev" title="Linear Regression" href="linear_regression.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -276,6 +276,7 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -486,6 +487,10 @@
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>

View File

@ -128,6 +128,7 @@ $(function(){initNavTree('functions_b.html',''); initResizable(true); });
<li>bits_&#160;:&#160;<a class="el" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8">_MLX_BFloat16</a>, <a class="el" href="structmlx_1_1core_1_1___m_l_x___b_float16.html#aca48963f820065c3d8ecab24265ab3fc">mlx::core::_MLX_BFloat16</a>, <a class="el" href="structmlx_1_1core_1_1___m_l_x___float16.html#a5203fe52424fd32bce6eb7917dd9288b">mlx::core::_MLX_Float16</a></li>
<li>bits_to_bfloat()&#160;:&#160;<a class="el" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16</a></li>
<li>BitwiseBinary()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172">mlx::core::BitwiseBinary</a></li>
<li>BitwiseInvert()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#aaa0180570a82e93988b982b93cd91623">mlx::core::BitwiseInvert</a></li>
<li>bj&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957">mlx::steel::BlockLoaderT&lt; T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ace16704025bc6e6204c306a357f3a8b8">mlx::steel::Conv2DInputBlockLoaderGeneral&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a7ae9e41f50c0c63c35b63086a1c22cc3">mlx::steel::Conv2DInputBlockLoaderLargeFilter&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a7cf448573d41fbc67f8dfc65b7aef2b2">mlx::steel::Conv2DInputBlockLoaderSmallChannels&lt; T, BM, BN, BK, tgp_size, n_channels, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a6fd3dd7b74d91609fa9dd61c657a0e32">mlx::steel::Conv2DInputBlockLoaderSmallFilter&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a6f2fdcaf5a67567cca38ae3d8120ab37">mlx::steel::Conv2DWeightBlockLoader&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acec010e10d5733654963407af38d4f67">mlx::steel::Conv2DWeightBlockLoaderGeneral&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#adaa261fc2e8e694aedab4ebd60b52e5e">mlx::steel::Conv2DWeightBlockLoaderSmallChannels&lt; T, BM, BN, BK, tgp_size, n_channels, tgp_padding &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#ae2add92b2aaf3414e91f0470b9b0cc00">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>block_merge_sort_t&#160;:&#160;<a class="el" href="struct_kernel_merge_sort.html#a37b94702630a4f97254d1da847d420c0">KernelMergeSort&lt; T, U, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a>, <a class="el" href="struct_kernel_multi_block_merge_sort.html#aaf08efb1c540b276b0f1bbdeb514544d">KernelMultiBlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
<li>block_sort()&#160;:&#160;<a class="el" href="struct_kernel_merge_sort.html#a90102e73c3f6e9652e9870d57b129e71">KernelMergeSort&lt; T, U, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a>, <a class="el" href="struct_kernel_multi_block_merge_sort.html#a56b3d8bf726e5619325dd07752666f8a">KernelMultiBlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
@ -147,6 +148,7 @@ $(function(){initNavTree('functions_b.html',''); initResizable(true); });
<li>buffer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">mlx::core::array</a>, <a class="el" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">mlx::core::array::Data</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">mlx::core::metal::DeviceStream</a></li>
<li>buffer_ops&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">mlx::core::metal::DeviceStream</a></li>
<li>buffer_size()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array</a></li>
<li>buffer_sizes&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459">mlx::core::metal::DeviceStream</a></li>
<li>buffers&#160;:&#160;<a class="el" href="struct_indices.html#ad705070a740579c07d109ae4f3d86e76">Indices&lt; IdxT, NIDX &gt;</a></li>
<li>build_command()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_jit_compiler.html#a10a5cde91ab929ccbdbdf4c4d940f156">mlx::core::JitCompiler</a></li>
<li>bytes_per_pack&#160;:&#160;<a class="el" href="struct_quantized_block_loader.html#ad00fe6d8bd395206a41693a8ed65d4db">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>

View File

@ -119,7 +119,8 @@ $(function(){initNavTree('functions_c.html',''); initResizable(true); });
<li>cndarr()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1cndarr.html#abf73f1b4ddcfb27d7f85cfa441607129">pocketfft::detail::cndarr&lt; T &gt;</a></li>
<li>col_contiguous&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html#ae24709026598d635e6b5c24a15f8a802">mlx::core::array::Flags</a></li>
<li>col_frag_type&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#adbb262a3c872e26533b68a39db16459e">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a></li>
<li>CommandEncoder()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::CommandEncoder</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::metal::CommandEncoder</a></li>
<li>command_buffer_needs_commit()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e">mlx::core::metal::Device</a></li>
<li>CommandEncoder()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::CommandEncoder</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::metal::CommandEncoder</a></li>
<li>commit_command_buffer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">mlx::core::metal::Device</a></li>
<li>Compiled()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051">mlx::core::Compiled</a></li>
<li>complex128_t()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1complex128__t.html#a4330d04587f3282bcd650e36532da178">mlx::core::complex128_t</a></li>

File diff suppressed because one or more lines are too long

View File

@ -109,6 +109,7 @@ $(function(){initNavTree('functions_func_b.html',''); initResizable(true); });
<li>begin()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a76b258b169d7d73419ebbf85340fb914">mlx::core::array</a></li>
<li>bits_to_bfloat()&#160;:&#160;<a class="el" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16</a></li>
<li>BitwiseBinary()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172">mlx::core::BitwiseBinary</a></li>
<li>BitwiseInvert()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_bitwise_invert.html#aaa0180570a82e93988b982b93cd91623">mlx::core::BitwiseInvert</a></li>
<li>block_sort()&#160;:&#160;<a class="el" href="struct_kernel_merge_sort.html#a90102e73c3f6e9652e9870d57b129e71">KernelMergeSort&lt; T, U, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a>, <a class="el" href="struct_kernel_multi_block_merge_sort.html#a56b3d8bf726e5619325dd07752666f8a">KernelMultiBlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
<li>BlockLoader()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a></li>
<li>BlockLoaderT()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader_t.html#a076616a7c67ad1b847e0e6b046077ee2">mlx::steel::BlockLoaderT&lt; T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS &gt;</a></li>

View File

@ -113,7 +113,8 @@ $(function(){initNavTree('functions_func_c.html',''); initResizable(true); });
<li>close()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_function_exporter.html#a43454277d21709d2f9b23a7ead0e674f">mlx::core::FunctionExporter</a></li>
<li>cmplx()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1cmplx.html#a5b1ce506f1023f5254025ac81b831a2c">pocketfft::detail::cmplx&lt; T &gt;</a></li>
<li>cndarr()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1cndarr.html#abf73f1b4ddcfb27d7f85cfa441607129">pocketfft::detail::cndarr&lt; T &gt;</a></li>
<li>CommandEncoder()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::CommandEncoder</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">mlx::core::metal::CommandEncoder</a></li>
<li>command_buffer_needs_commit()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a2580a395419fa6735e8ca5a67495700e">mlx::core::metal::Device</a></li>
<li>CommandEncoder()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::CommandEncoder</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a7320b3acfa075ffdce5ea38fe107f186">mlx::core::metal::CommandEncoder</a></li>
<li>commit_command_buffer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c">mlx::core::metal::Device</a></li>
<li>Compiled()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051">mlx::core::Compiled</a></li>
<li>complex128_t()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1complex128__t.html#a4330d04587f3282bcd650e36532da178">mlx::core::complex128_t</a></li>

File diff suppressed because one or more lines are too long

View File

@ -114,7 +114,6 @@ $(function(){initNavTree('functions_func_g.html',''); initResizable(true); });
<li>get_architecture()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">mlx::core::metal::Device</a></li>
<li>get_cache_memory()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ad3cabbe638917ca4114eb74dcabe381f">mlx::core::metal::MetalAllocator</a></li>
<li>get_command_buffer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">mlx::core::metal::Device</a></li>
<li>get_command_buffer_ops()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">mlx::core::metal::Device</a></li>
<li>get_command_encoder()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">mlx::core::metal::Device</a></li>
<li>get_coord()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a></li>
<li>get_default_stream()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a2366c7b888e433608e203752edc92282">mlx::core::scheduler::Scheduler</a></li>

File diff suppressed because one or more lines are too long

View File

@ -131,6 +131,7 @@ $(function(){initNavTree('functions_func_l.html',''); initResizable(true); });
<li>LogicalOr()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918">mlx::core::LogicalOr</a></li>
<li>LoopedElemToLoc()&#160;:&#160;<a class="el" href="struct_looped_elem_to_loc.html#a5653be1c990722a4a215be27efe5648b">LoopedElemToLoc&lt; DIM, OffsetT, General &gt;</a>, <a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a>, <a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></li>
<li>lowest()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a3623580fbfd92ceb69cdd8e329e18fa8">mlx::core::numeric_limits&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html#abc2d9cd8d0a90219f7eb6fd05b98e4ac">mlx::core::numeric_limits&lt; float16_t &gt;</a></li>
<li>LUF()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">mlx::core::LUF</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -117,7 +117,6 @@ $(function(){initNavTree('functions_g.html',''); initResizable(true); });
<li>get_architecture()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a65f64dd8bafdc704d871fc5be5e7bc0b">mlx::core::metal::Device</a></li>
<li>get_cache_memory()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#ad3cabbe638917ca4114eb74dcabe381f">mlx::core::metal::MetalAllocator</a></li>
<li>get_command_buffer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210">mlx::core::metal::Device</a></li>
<li>get_command_buffer_ops()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">mlx::core::metal::Device</a></li>
<li>get_command_encoder()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">mlx::core::metal::Device</a></li>
<li>get_coord()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a></li>
<li>get_default_stream()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a2366c7b888e433608e203752edc92282">mlx::core::scheduler::Scheduler</a></li>

File diff suppressed because one or more lines are too long

View File

@ -140,6 +140,7 @@ $(function(){initNavTree('functions_l.html',''); initResizable(true); });
<li>LogicalOr()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918">mlx::core::LogicalOr</a></li>
<li>LoopedElemToLoc()&#160;:&#160;<a class="el" href="struct_looped_elem_to_loc.html#a5653be1c990722a4a215be27efe5648b">LoopedElemToLoc&lt; DIM, OffsetT, General &gt;</a>, <a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a>, <a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></li>
<li>lowest()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a3623580fbfd92ceb69cdd8e329e18fa8">mlx::core::numeric_limits&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html#abc2d9cd8d0a90219f7eb6fd05b98e4ac">mlx::core::numeric_limits&lt; float16_t &gt;</a></li>
<li>LUF()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">mlx::core::LUF</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@ -115,7 +115,7 @@ $(function(){initNavTree('functions_m.html',''); initResizable(true); });
<li>mat_type&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1eeb197c9bdf4db42892a39cdb9bd73a">mlx::steel::MMATile&lt; T, kTileRows_, kTileCols_, MMAFrag_ &gt;</a></li>
<li>Matmul()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">mlx::core::Matmul</a></li>
<li>Max&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924ac00cf69bbba24f7ab08d3ad618705988">mlx::core::distributed::AllReduce</a>, <a class="el" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a3d11c500ea4f7f639e20dd0755d39260">mlx::core::Reduce</a>, <a class="el" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d">mlx::core::Scan</a>, <a class="el" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16">mlx::core::Scatter</a></li>
<li>max&#160;:&#160;<a class="el" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a0ead3618da6718629ea9fa4670b5005f">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#aba172b22b388190aa3969ef16885d8a6">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#a4f9515dbf2a622074f121bea39a7b175">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#a12d64c398ca7609b7c906f3cf1a6f678">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af756344b31e84222dd73d3445dcd5640">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#ac9c420604c0f3d237ddfb2b8a2439224">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a96fed01fa9249226be69760652643289">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#a228b33556ba4cb7e6137ab6258628488">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#a91fa8f7214ec936976a8324c7431c651">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#aa8c2257881a4e1fa8596fa07dba5e107">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a1570fb640e2e41f96776db5ca08d500c">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a9975908d99d25e9225d0c70bead0abc2">mlx::core::finfo</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a01712fcb04266320225c168a0e6f619a">mlx::core::numeric_limits&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html#a6dd1fadd4cc7c2cec6223977c238c334">mlx::core::numeric_limits&lt; float16_t &gt;</a></li>
<li>max&#160;:&#160;<a class="el" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a0ead3618da6718629ea9fa4670b5005f">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#aba172b22b388190aa3969ef16885d8a6">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#a4f9515dbf2a622074f121bea39a7b175">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#a12d64c398ca7609b7c906f3cf1a6f678">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af756344b31e84222dd73d3445dcd5640">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#ac9c420604c0f3d237ddfb2b8a2439224">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a96fed01fa9249226be69760652643289">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#a228b33556ba4cb7e6137ab6258628488">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#a91fa8f7214ec936976a8324c7431c651">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#aa8c2257881a4e1fa8596fa07dba5e107">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a1570fb640e2e41f96776db5ca08d500c">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a976ada682716f9531dfccddcf0ab3083">mlx::core::finfo</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html#a01712fcb04266320225c168a0e6f619a">mlx::core::numeric_limits&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html#a6dd1fadd4cc7c2cec6223977c238c334">mlx::core::numeric_limits&lt; float16_t &gt;</a></li>
<li>max_digits10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>max_exponent&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>max_exponent10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
@ -124,7 +124,7 @@ $(function(){initNavTree('functions_m.html',''); initResizable(true); });
<li>merge_partition()&#160;:&#160;<a class="el" href="struct_block_merge_sort.html#ad5bd0d853e9b4352ecfd902a706d7178">BlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a>, <a class="el" href="struct_kernel_multi_block_merge_sort.html#a811e72376de254af2bf5303133562a9a">KernelMultiBlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
<li>merge_step()&#160;:&#160;<a class="el" href="struct_block_merge_sort.html#a0386ce33d7bcfd12dbb17558d26da1bb">BlockMergeSort&lt; ValT, IdxT, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
<li>Min&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924a4f685dcd48e6614d6bb2ccda4f2686ef">mlx::core::distributed::AllReduce</a>, <a class="el" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418">mlx::core::Reduce</a>, <a class="el" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898">mlx::core::Scan</a>, <a class="el" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf">mlx::core::Scatter</a></li>
<li>min&#160;:&#160;<a class="el" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a91332dcbb502799b6cc8e1c6933c042b">mlx::core::finfo</a></li>
<li>min&#160;:&#160;<a class="el" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a0606e7a2d4c9a5fd6ea8e0eab5445c4a">mlx::core::finfo</a></li>
<li>min_exponent&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>min_exponent10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>Minimum()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5">mlx::core::Minimum</a></li>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -132,6 +132,7 @@ $(function(){initNavTree('functions_vars_b.html',''); initResizable(true); });
<li>buf&#160;:&#160;<a class="el" href="struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>buffer&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad">mlx::core::array::Data</a>, <a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">mlx::core::metal::DeviceStream</a></li>
<li>buffer_ops&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">mlx::core::metal::DeviceStream</a></li>
<li>buffer_sizes&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ae7054233303b06329c67177382ded459">mlx::core::metal::DeviceStream</a></li>
<li>buffers&#160;:&#160;<a class="el" href="struct_indices.html#ad705070a740579c07d109ae4f3d86e76">Indices&lt; IdxT, NIDX &gt;</a></li>
<li>bytes_per_pack&#160;:&#160;<a class="el" href="struct_quantized_block_loader.html#ad00fe6d8bd395206a41693a8ed65d4db">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
</ul>

View File

@ -108,11 +108,11 @@ $(function(){initNavTree('functions_vars_m.html',''); initResizable(true); });
<li>M&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_params.html#a85b20a4c4558cc78d76fcbd045a9c694">mlx::steel::GEMMParams</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a8bab0cf8a20d2abefe294a7505917e7e">mlx::steel::GEMMSpiltKParams</a>, <a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a2117fc93662d5177c8f3e7c2dbb9e2db">mlx::steel::ImplicitGemmConv2DParams</a></li>
<li>mask_h&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a0b892c1a7edb9ed20c076d8945855c19">mlx::steel::Conv2DInputBlockLoaderSmallFilter&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a></li>
<li>mask_w&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a19ddba7259c3c2c02ed90f3f635557be">mlx::steel::Conv2DInputBlockLoaderSmallFilter&lt; T, BM, BN, BK, tgp_size, tgp_padding &gt;</a></li>
<li>max&#160;:&#160;<a class="el" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a0ead3618da6718629ea9fa4670b5005f">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#aba172b22b388190aa3969ef16885d8a6">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#a4f9515dbf2a622074f121bea39a7b175">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#a12d64c398ca7609b7c906f3cf1a6f678">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af756344b31e84222dd73d3445dcd5640">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#ac9c420604c0f3d237ddfb2b8a2439224">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a96fed01fa9249226be69760652643289">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#a228b33556ba4cb7e6137ab6258628488">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#a91fa8f7214ec936976a8324c7431c651">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#aa8c2257881a4e1fa8596fa07dba5e107">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a1570fb640e2e41f96776db5ca08d500c">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a9975908d99d25e9225d0c70bead0abc2">mlx::core::finfo</a></li>
<li>max&#160;:&#160;<a class="el" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a0ead3618da6718629ea9fa4670b5005f">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#aba172b22b388190aa3969ef16885d8a6">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#a4f9515dbf2a622074f121bea39a7b175">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#a12d64c398ca7609b7c906f3cf1a6f678">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af756344b31e84222dd73d3445dcd5640">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#ac9c420604c0f3d237ddfb2b8a2439224">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a96fed01fa9249226be69760652643289">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#a228b33556ba4cb7e6137ab6258628488">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#a91fa8f7214ec936976a8324c7431c651">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#aa8c2257881a4e1fa8596fa07dba5e107">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a1570fb640e2e41f96776db5ca08d500c">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a976ada682716f9531dfccddcf0ab3083">mlx::core::finfo</a></li>
<li>max_digits10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>max_exponent&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>max_exponent10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>min&#160;:&#160;<a class="el" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a91332dcbb502799b6cc8e1c6933c042b">mlx::core::finfo</a></li>
<li>min&#160;:&#160;<a class="el" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits&lt; U &gt;</a>, <a class="el" href="struct_limits_3_01bfloat16__t_01_4.html#a2fd1811b9f615b2b897904bc27d1cb49">Limits&lt; bfloat16_t &gt;</a>, <a class="el" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;</a>, <a class="el" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;</a>, <a class="el" href="struct_limits_3_01float_01_4.html#a3225e334d372ee86128c89a440d8648f">Limits&lt; float &gt;</a>, <a class="el" href="struct_limits_3_01half_01_4.html#aca7b036c257878bf1b80912fb5d4516d">Limits&lt; half &gt;</a>, <a class="el" href="struct_limits_3_01int16__t_01_4.html#adca7139647801e223c35b0abc7da5240">Limits&lt; int16_t &gt;</a>, <a class="el" href="struct_limits_3_01int32__t_01_4.html#af336a1b22a8ed6a83a4cfb5bf8869771">Limits&lt; int32_t &gt;</a>, <a class="el" href="struct_limits_3_01int64__t_01_4.html#a1c90fb96af515badaccaa835b08f7428">Limits&lt; int64_t &gt;</a>, <a class="el" href="struct_limits_3_01int8__t_01_4.html#a7a809307d2bba80382f0645d277eaa4b">Limits&lt; int8_t &gt;</a>, <a class="el" href="struct_limits_3_01uint16__t_01_4.html#ae173984c3be8b6750f27daed581805fe">Limits&lt; uint16_t &gt;</a>, <a class="el" href="struct_limits_3_01uint32__t_01_4.html#ab0c3975e02053b234c7b606ababa66e1">Limits&lt; uint32_t &gt;</a>, <a class="el" href="struct_limits_3_01uint64__t_01_4.html#a80627f39e951398283942cefa48f4dd0">Limits&lt; uint64_t &gt;</a>, <a class="el" href="struct_limits_3_01uint8__t_01_4.html#a408bd5a337e7292f06e63da81193629a">Limits&lt; uint8_t &gt;</a>, <a class="el" href="structmlx_1_1core_1_1finfo.html#a0606e7a2d4c9a5fd6ea8e0eab5445c4a">mlx::core::finfo</a></li>
<li>min_exponent&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>min_exponent10&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>mtx&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a70410c9e612f871663929f1e8441a976">mlx::core::scheduler::StreamThread</a></li>

View File

@ -7,7 +7,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &#8212; MLX 0.22.1 documentation</title>
<title>Index &#8212; MLX 0.23.0 documentation</title>
@ -38,7 +38,7 @@
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
<script src="_static/documentation_options.js?v=72ae2406"></script>
<script src="_static/documentation_options.js?v=358893f7"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
@ -48,7 +48,7 @@
<link rel="search" title="Search" href="search.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="0.22.1" />
<meta name="docsearch:version" content="0.23.0" />
</head>
@ -129,8 +129,8 @@
<img src="_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.22.1 documentation - Home"/>
<img src="_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.22.1 documentation - Home"/>
<img src="_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.23.0 documentation - Home"/>
<img src="_static/mlx_logo_dark.png" class="logo__image only-dark pst-js-only" alt="MLX 0.23.0 documentation - Home"/>
</a></div>
@ -275,6 +275,7 @@
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.atleast_2d.html">mlx.core.atleast_2d</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.atleast_3d.html">mlx.core.atleast_3d</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.bitwise_and.html">mlx.core.bitwise_and</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.bitwise_invert.html">mlx.core.bitwise_invert</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.bitwise_or.html">mlx.core.bitwise_or</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.bitwise_xor.html">mlx.core.bitwise_xor</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.block_masked_mm.html">mlx.core.block_masked_mm</a></li>
@ -485,6 +486,10 @@
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.eigvalsh.html">mlx.core.linalg.eigvalsh</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.eigh.html">mlx.core.linalg.eigh</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.lu.html">mlx.core.linalg.lu</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.lu_factor.html">mlx.core.linalg.lu_factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.solve.html">mlx.core.linalg.solve</a></li>
<li class="toctree-l2"><a class="reference internal" href="python/_autosummary/mlx.core.linalg.solve_triangular.html">mlx.core.linalg.solve_triangular</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="python/metal.html">Metal</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
@ -1048,12 +1053,16 @@
</li>
<li><a href="python/_autosummary/mlx.core.bitwise_and.html#mlx.core.bitwise_and">bitwise_and() (in module mlx.core)</a>
</li>
<li><a href="cpp/ops.html#_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice">bitwise_or (C++ function)</a>
<li><a href="cpp/ops.html#_CPPv414bitwise_invertRK5array14StreamOrDevice">bitwise_invert (C++ function)</a>
</li>
<li><a href="python/_autosummary/mlx.core.bitwise_or.html#mlx.core.bitwise_or">bitwise_or() (in module mlx.core)</a>
<li><a href="python/_autosummary/mlx.core.bitwise_invert.html#mlx.core.bitwise_invert">bitwise_invert() (in module mlx.core)</a>
</li>
<li><a href="cpp/ops.html#_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice">bitwise_or (C++ function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="python/_autosummary/mlx.core.bitwise_or.html#mlx.core.bitwise_or">bitwise_or() (in module mlx.core)</a>
</li>
<li><a href="cpp/ops.html#_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice">bitwise_xor (C++ function)</a>
</li>
<li><a href="python/_autosummary/mlx.core.bitwise_xor.html#mlx.core.bitwise_xor">bitwise_xor() (in module mlx.core)</a>
@ -1652,14 +1661,14 @@
</ul></li>
<li><a href="cpp/ops.html#_CPPv45log10RK5array14StreamOrDevice">log10 (C++ function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="python/_autosummary/mlx.core.array.log10.html#mlx.core.array.log10">log10() (array method)</a>
<ul>
<li><a href="python/_autosummary/mlx.core.log10.html#mlx.core.log10">(in module mlx.core)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="cpp/ops.html#_CPPv45log1pRK5array14StreamOrDevice">log1p (C++ function)</a>
</li>
<li><a href="python/_autosummary/mlx.core.array.log1p.html#mlx.core.array.log1p">log1p() (array method)</a>
@ -1711,6 +1720,10 @@
</li>
</ul></li>
<li><a href="python/nn/_autosummary/mlx.nn.LSTM.html#mlx.nn.LSTM">LSTM (class in mlx.nn)</a>
</li>
<li><a href="python/_autosummary/mlx.core.linalg.lu.html#mlx.core.linalg.lu">lu() (in module mlx.core.linalg)</a>
</li>
<li><a href="python/_autosummary/mlx.core.linalg.lu_factor.html#mlx.core.linalg.lu_factor">lu_factor() (in module mlx.core.linalg)</a>
</li>
</ul></td>
</tr></table>
@ -1866,10 +1879,10 @@
</li>
<li><a href="cpp/ops.html#_CPPv4dvRK5arrayRK5array">operator/ (C++ function)</a>, <a href="cpp/ops.html#_CPPv4dvRK5arrayd">[1]</a>, <a href="cpp/ops.html#_CPPv4dvdRK5array">[2]</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="cpp/ops.html#_CPPv4I0Elt5array1TRK5array">operator&lt; (C++ function)</a>, <a href="cpp/ops.html#_CPPv4I0Elt5arrayRK5array1T">[1]</a>, <a href="cpp/ops.html#_CPPv4ltRK5arrayRK5array">[2]</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="cpp/ops.html#_CPPv4lsRK5arrayRK5array">operator&lt;&lt; (C++ function)</a>
</li>
<li><a href="cpp/ops.html#_CPPv4I0Ele5array1TRK5array">operator&lt;= (C++ function)</a>, <a href="cpp/ops.html#_CPPv4I0Ele5arrayRK5array1T">[1]</a>, <a href="cpp/ops.html#_CPPv4leRK5arrayRK5array">[2]</a>
@ -1887,6 +1900,8 @@
<li><a href="cpp/ops.html#_CPPv4orRK5arrayRK5array">operator| (C++ function)</a>
</li>
<li><a href="cpp/ops.html#_CPPv4ooRK5arrayRK5array">operator|| (C++ function)</a>
</li>
<li><a href="cpp/ops.html#_CPPv4coRK5array">operator~ (C++ function)</a>
</li>
<li><a href="python/optimizers/optimizer.html#mlx.optimizers.Optimizer">Optimizer (class in mlx.optimizers)</a>
</li>
@ -2164,10 +2179,10 @@
</li>
<li><a href="python/nn/_autosummary_functions/mlx.nn.softmax.html#mlx.nn.softmax">softmax (class in mlx.nn)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="python/_autosummary/mlx.core.softmax.html#mlx.core.softmax">softmax() (in module mlx.core)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="python/nn/_autosummary/mlx.nn.Softmin.html#mlx.nn.Softmin">Softmin (class in mlx.nn)</a>
</li>
<li><a href="python/nn/_autosummary_functions/mlx.nn.softmin.html#mlx.nn.softmin">softmin (class in mlx.nn)</a>
@ -2181,6 +2196,10 @@
<li><a href="python/nn/_autosummary_functions/mlx.nn.softshrink.html#mlx.nn.softshrink">softshrink (class in mlx.nn)</a>
</li>
<li><a href="python/nn/_autosummary/mlx.nn.Softsign.html#mlx.nn.Softsign">Softsign (class in mlx.nn)</a>
</li>
<li><a href="python/_autosummary/mlx.core.linalg.solve.html#mlx.core.linalg.solve">solve() (in module mlx.core.linalg)</a>
</li>
<li><a href="python/_autosummary/mlx.core.linalg.solve_triangular.html#mlx.core.linalg.solve_triangular">solve_triangular() (in module mlx.core.linalg)</a>
</li>
<li><a href="cpp/ops.html#_CPPv44sortRK5array14StreamOrDevice">sort (C++ function)</a>, <a href="cpp/ops.html#_CPPv44sortRK5arrayi14StreamOrDevice">[1]</a>
</li>

View File

@ -190,7 +190,7 @@ $(function(){initNavTree('graph__utils_8h_source.html',''); initResizable(true);
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a30338cb7d259334e46dc7a4819716fa6"><div class="ttname"><a href="namespacemlx_1_1core.html#a30338cb7d259334e46dc7a4819716fa6">mlx::core::export_to_dot</a></div><div class="ttdeci">void export_to_dot(std::ostream &amp;os, NodeNamer namer, const std::vector&lt; array &gt; &amp;outputs)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a9b33065059fd68fed26da94603cfcce3"><div class="ttname"><a href="namespacemlx_1_1core.html#a9b33065059fd68fed26da94603cfcce3">mlx::core::print_graph</a></div><div class="ttdeci">void print_graph(std::ostream &amp;os, NodeNamer namer, const std::vector&lt; array &gt; &amp;outputs)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:615</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t&lt; is_arrays_v&lt; T... &gt; &gt; enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:630</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_node_namer_html"><div class="ttname"><a href="structmlx_1_1core_1_1_node_namer.html">mlx::core::NodeNamer</a></div><div class="ttdef"><b>Definition</b> graph_utils.h:11</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_node_namer_html_a1690dd38de288c0aee2bb53156eb770e"><div class="ttname"><a href="structmlx_1_1core_1_1_node_namer.html#a1690dd38de288c0aee2bb53156eb770e">mlx::core::NodeNamer::get_name</a></div><div class="ttdeci">const std::string &amp; get_name(const array &amp;x)</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_node_namer_html_a57823f9a2cdc60b2f06f857b36019277"><div class="ttname"><a href="structmlx_1_1core_1_1_node_namer.html#a57823f9a2cdc60b2f06f857b36019277">mlx::core::NodeNamer::names</a></div><div class="ttdeci">std::unordered_map&lt; std::uintptr_t, std::string &gt; names</div><div class="ttdef"><b>Definition</b> graph_utils.h:12</div></div>

View File

@ -935,6 +935,11 @@ Functions</h2></td></tr>
<tr class="separator:gafa376ad57d38ba87378f0272dc379b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga498b61f7e8f056ae00297fa0dc17303a" id="r_ga498b61f7e8f056ae00297fa0dc17303a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga498b61f7e8f056ae00297fa0dc17303a">mlx::core::operator&gt;&gt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga498b61f7e8f056ae00297fa0dc17303a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1182ae7c049fbc9ee190f3e0fffbf83" id="r_gaf1182ae7c049fbc9ee190f3e0fffbf83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf1182ae7c049fbc9ee190f3e0fffbf83">mlx::core::bitwise_invert</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf1182ae7c049fbc9ee190f3e0fffbf83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invert the bits. <br /></td></tr>
<tr class="separator:gaf1182ae7c049fbc9ee190f3e0fffbf83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga849365a62878579a33b3d3ad09bbc7be" id="r_ga849365a62878579a33b3d3ad09bbc7be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga849365a62878579a33b3d3ad09bbc7be">mlx::core::operator~</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a)</td></tr>
<tr class="separator:ga849365a62878579a33b3d3ad09bbc7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3602aa91b7b124a0b41ec1b2137a1b02" id="r_ga3602aa91b7b124a0b41ec1b2137a1b02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3602aa91b7b124a0b41ec1b2137a1b02">mlx::core::view</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga3602aa91b7b124a0b41ec1b2137a1b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac40e48c69f9c715a767912c30836e75c" id="r_gac40e48c69f9c715a767912c30836e75c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac40e48c69f9c715a767912c30836e75c">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int shift, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
@ -2342,6 +2347,29 @@ Functions</h2></td></tr>
<p>Bitwise and. </p>
</div>
</div>
<a id="gaf1182ae7c049fbc9ee190f3e0fffbf83" name="gaf1182ae7c049fbc9ee190f3e0fffbf83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1182ae7c049fbc9ee190f3e0fffbf83">&#9670;&#160;</a></span>bitwise_invert()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::bitwise_invert </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Invert the bits. </p>
</div>
</div>
<a id="ga8af4f22c08c11c4ffab7e3d45e0f3cd6" name="ga8af4f22c08c11c4ffab7e3d45e0f3cd6"></a>
@ -6768,6 +6796,23 @@ template&lt;typename T&gt; </div>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga849365a62878579a33b3d3ad09bbc7be" name="ga849365a62878579a33b3d3ad09bbc7be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga849365a62878579a33b3d3ad09bbc7be">&#9670;&#160;</a></span>operator~()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator~ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga866af24e10db2797e1c5a5986dbf6c0d" name="ga866af24e10db2797e1c5a5986dbf6c0d"></a>
@ -7852,7 +7897,7 @@ template&lt;typename T&gt; </div>
<div class="ttc" id="agroup__ops_html_gad438be8f90bae9d37c6853b8f4225d61"><div class="ttname"><a href="#gad438be8f90bae9d37c6853b8f4225d61">mlx::core::scatter</a></div><div class="ttdeci">array scatter(const array &amp;a, const std::vector&lt; array &gt; &amp;indices, const array &amp;updates, const std::vector&lt; int &gt; &amp;axes, StreamOrDevice s={})</div><div class="ttdoc">Scatter updates to the given indices.</div></div>
<div class="ttc" id="agroup__ops_html_gae2cace3b388cec4e520659a91879e1c1"><div class="ttname"><a href="#gae2cace3b388cec4e520659a91879e1c1">mlx::core::zeros</a></div><div class="ttdeci">array zeros(const Shape &amp;shape, Dtype dtype, StreamOrDevice s={})</div><div class="ttdoc">Fill an array of the given shape with zeros.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a369aa886219b83cf219e7a7862ce260b"><div class="ttname"><a href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">mlx::core::arange</a></div><div class="ttdeci">void arange(const std::vector&lt; array &gt; &amp;inputs, array &amp;out, double start, double step)</div><div class="ttdef"><b>Definition</b> arange.h:24</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:81</div></div>
</div><!-- fragment --><p>will produce:</p>
<div class="fragment"><div class="line"><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>([[0, 0, 0, 0],</div>
<div class="line"> [0, 0, 0, 0],</div>

Some files were not shown because too many files have changed in this diff Show More