docs update

This commit is contained in:
Awni Hannun 2024-08-10 09:24:35 -07:00 committed by CircleCI Docs
parent 6c7354535e
commit 36427f6126
724 changed files with 14529 additions and 11046 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: 3b02955047d4e4b232f01bccda3ed898
config: bbbe4e54ecfcc611156ee21a8f15e97b
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -486,9 +486,8 @@ below.
std::ostringstream kname;
kname << "axpby_" << "general_" << type_to_name(out);
// Make sure the metal library is available and look for it
// in the same folder as this executable if needed
d.register_library("mlx_ext", metal::get_colocated_mtllib_path);
// Make sure the metal library is available
d.register_library("mlx_ext");
// Make a kernel from this metal library
auto kernel = d.get_kernel(kname.str(), "mlx_ext");

View File

@ -15,7 +15,7 @@ module to concisely define the model architecture.
Attention layer
^^^^^^^^^^^^^^^^
We will start with the llama attention layer which notably uses the RoPE
We will start with the Llama attention layer which notably uses the RoPE
positional encoding. [1]_ In addition, our attention layer will optionally use a
key/value cache that will be concatenated with the provided keys and values to
support efficient inference.

View File

@ -64,7 +64,7 @@ set:
Next, setup the problem parameters and load the data. To load the data, you need our
`mnist data loader
<https://github.com/ml-explore/mlx-examples/blob/main/mnist/mnist.py>`_, which
we will import as `mnist`.
we will import as ``mnist``.
.. code-block:: python

View File

@ -70,36 +70,36 @@ To build and install the MLX python library from source, first, clone MLX from
git clone git@github.com:ml-explore/mlx.git mlx && cd mlx
Install `nanobind <https://nanobind.readthedocs.io/en/latest/>`_ with:
.. code-block:: shell
pip install git+https://github.com/wjakob/nanobind.git@2f04eac452a6d9142dedb957701bdb20125561e4
Then simply build and install MLX using pip:
.. code-block:: shell
env CMAKE_BUILD_PARALLEL_LEVEL="" pip install .
CMAKE_BUILD_PARALLEL_LEVEL="" pip install .
For developing use an editable install:
For developing, install the package with development dependencies, and use an
editable install:
.. code-block:: shell
env CMAKE_BUILD_PARALLEL_LEVEL="" pip install -e .
CMAKE_BUILD_PARALLEL_LEVEL="" pip install -e ".[dev]"
To make sure the install is working run the tests with:
Once the development dependencies are installed, you can build faster with:
.. code-block:: shell
CMAKE_BUILD_PARALLEL_LEVEL="" python setup.py build_ext -j --inplace
Run the tests with:
.. code-block:: shell
pip install ".[testing]"
python -m unittest discover python/tests
Optional: Install stubs to enable auto completions and type checking from your IDE:
Optional: Install stubs to enable auto completions and type checking from your
IDE:
.. code-block:: shell
pip install ".[dev]"
python setup.py generate_stubs
C++ API

View File

@ -9,14 +9,21 @@
.. automethod:: __init__
.. rubric:: Methods
.. rubric:: Attributes
.. autosummary::
~DtypeCategory.__init__
~DtypeCategory.complexfloating
~DtypeCategory.floating
~DtypeCategory.inexact
~DtypeCategory.signedinteger
~DtypeCategory.unsignedinteger
~DtypeCategory.integer
~DtypeCategory.number
~DtypeCategory.generic

View File

@ -0,0 +1,6 @@
mlx.core.linalg.cholesky\_inv
=============================
.. currentmodule:: mlx.core.linalg
.. autofunction:: cholesky_inv

View File

@ -0,0 +1,6 @@
mlx.core.linalg.tri\_inv
========================
.. currentmodule:: mlx.core.linalg
.. autofunction:: tri_inv

View File

@ -9,7 +9,9 @@ Linear Algebra
:toctree: _autosummary
inv
tri_inv
norm
cholesky
cholesky_inv
qr
svd

View File

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

View File

@ -151,13 +151,14 @@ $(function() {
<tr id="row_1_0_2_2_" 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="classmlx_1_1core_1_1distributed_1_1_dist_primitive.html" target="_self">DistPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_3_" 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_1distributed_1_1_group.html" target="_self">Group</a></td><td class="desc">A <a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" title="A distributed::Group represents a group of independent mlx processes that can communicate.">distributed::Group</a> represents a group of independent mlx processes that can communicate </td></tr>
<tr id="row_1_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_3_" class="arrow" onclick="dynsection.toggleFolder('1_0_3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1fast.html" target="_self">fast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_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="classmlx_1_1core_1_1fast_1_1_custom.html" target="_self">Custom</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_1_" 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="classmlx_1_1core_1_1fast_1_1_layer_norm.html" target="_self">LayerNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_2_" 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="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html" target="_self">LayerNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_3_" 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="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html" target="_self">RMSNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_4_" 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="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html" target="_self">RMSNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_5_" 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="classmlx_1_1core_1_1fast_1_1_ro_p_e.html" target="_self">RoPE</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_6_" 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="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html" target="_self">ScaledDotProductAttention</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_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="classmlx_1_1core_1_1fast_1_1_affine_quantize.html" target="_self">AffineQuantize</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_1_" 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="classmlx_1_1core_1_1fast_1_1_custom.html" target="_self">Custom</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_2_" 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="classmlx_1_1core_1_1fast_1_1_layer_norm.html" target="_self">LayerNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_3_" 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="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html" target="_self">LayerNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_4_" 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="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html" target="_self">RMSNorm</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_5_" 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="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html" target="_self">RMSNormVJP</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_6_" 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="classmlx_1_1core_1_1fast_1_1_ro_p_e.html" target="_self">RoPE</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_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="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html" target="_self">ScaledDotProductAttention</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_4_" class="arrow" onclick="dynsection.toggleFolder('1_0_4_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1io.html" target="_self">io</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_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="classmlx_1_1core_1_1io_1_1_file_reader.html" target="_self">FileReader</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_1_" 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="classmlx_1_1core_1_1io_1_1_file_writer.html" target="_self">FileWriter</a></td><td class="desc"></td></tr>
@ -318,151 +319,145 @@ $(function() {
<tr id="row_1_1_24_" 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_transform_add.html" target="_self">TransformAdd</a></td><td class="desc"></td></tr>
<tr id="row_1_1_25_" 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_transform_axpby.html" target="_self">TransformAxpby</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_transform_none.html" target="_self">TransformNone</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="dynsection.toggleFolder('2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_m_p_s.html" target="_self">MPS</a></td><td class="desc"></td></tr>
<tr id="row_2_0_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_kernel.html" target="_self">Kernel</a></td><td class="desc"></td></tr>
<tr id="row_2_1_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_matrix.html" target="_self">Matrix</a></td><td class="desc"></td></tr>
<tr id="row_2_2_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html" target="_self">MatrixDescriptor</a></td><td class="desc"></td></tr>
<tr id="row_2_3_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html" target="_self">MatrixMultiplication</a></td><td class="desc"></td></tr>
<tr id="row_2_4_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html" target="_self">MatrixVectorMultiplication</a></td><td class="desc"></td></tr>
<tr id="row_2_5_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
<tr id="row_2_6_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_m_p_s_1_1_vector_descriptor.html" target="_self">VectorDescriptor</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="dynsection.toggleFolder('3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft.html" target="_self">pocketfft</a></td><td class="desc"></td></tr>
<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_0_" class="arrow" onclick="dynsection.toggleFolder('3_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_3_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_3_0_0_" class="arrow" onclick="dynsection.toggleFolder('3_0_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
<tr id="row_3_0_0_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="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html" target="_self">aligned_allocator</a></td><td class="desc"></td></tr>
<tr id="row_3_0_0_1_" 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="classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html" target="_self">concurrent_queue</a></td><td class="desc"></td></tr>
<tr id="row_3_0_0_2_" 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="classpocketfft_1_1detail_1_1threading_1_1latch.html" target="_self">latch</a></td><td class="desc"></td></tr>
<tr id="row_3_0_0_3_" 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="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html" target="_self">thread_pool</a></td><td class="desc"></td></tr>
<tr id="row_3_0_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="structpocketfft_1_1detail_1_1add__vec.html" target="_self">add_vec</a></td><td class="desc"></td></tr>
<tr id="row_3_0_2_" 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="structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html" target="_self">add_vec&lt; cmplx&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_3_0_3_" 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="classpocketfft_1_1detail_1_1arr.html" target="_self">arr</a></td><td class="desc"></td></tr>
<tr id="row_3_0_4_" 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="classpocketfft_1_1detail_1_1arr__info.html" target="_self">arr_info</a></td><td class="desc"></td></tr>
<tr id="row_3_0_5_" 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="classpocketfft_1_1detail_1_1cfftp.html" target="_self">cfftp</a></td><td class="desc"></td></tr>
<tr id="row_3_0_6_" 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="structpocketfft_1_1detail_1_1cmplx.html" target="_self">cmplx</a></td><td class="desc"></td></tr>
<tr id="row_3_0_7_" 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="classpocketfft_1_1detail_1_1cndarr.html" target="_self">cndarr</a></td><td class="desc"></td></tr>
<tr id="row_3_0_8_" 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="structpocketfft_1_1detail_1_1_exec_c2_c.html" target="_self">ExecC2C</a></td><td class="desc"></td></tr>
<tr id="row_3_0_9_" 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="structpocketfft_1_1detail_1_1_exec_dcst.html" target="_self">ExecDcst</a></td><td class="desc"></td></tr>
<tr id="row_3_0_10_" 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="structpocketfft_1_1detail_1_1_exec_hartley.html" target="_self">ExecHartley</a></td><td class="desc"></td></tr>
<tr id="row_3_0_11_" 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="structpocketfft_1_1detail_1_1_exec_r2_r.html" target="_self">ExecR2R</a></td><td class="desc"></td></tr>
<tr id="row_3_0_12_" 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="classpocketfft_1_1detail_1_1fftblue.html" target="_self">fftblue</a></td><td class="desc"></td></tr>
<tr id="row_3_0_13_" 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="classpocketfft_1_1detail_1_1multi__iter.html" target="_self">multi_iter</a></td><td class="desc"></td></tr>
<tr id="row_3_0_14_" 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="classpocketfft_1_1detail_1_1ndarr.html" target="_self">ndarr</a></td><td class="desc"></td></tr>
<tr id="row_3_0_15_" 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="classpocketfft_1_1detail_1_1pocketfft__c.html" target="_self">pocketfft_c</a></td><td class="desc"></td></tr>
<tr id="row_3_0_16_" 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="classpocketfft_1_1detail_1_1pocketfft__r.html" target="_self">pocketfft_r</a></td><td class="desc"></td></tr>
<tr id="row_3_0_17_" 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="classpocketfft_1_1detail_1_1rev__iter.html" target="_self">rev_iter</a></td><td class="desc"></td></tr>
<tr id="row_3_0_18_" 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="classpocketfft_1_1detail_1_1rfftp.html" target="_self">rfftp</a></td><td class="desc"></td></tr>
<tr id="row_3_0_19_" 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="classpocketfft_1_1detail_1_1simple__iter.html" target="_self">simple_iter</a></td><td class="desc"></td></tr>
<tr id="row_3_0_20_" 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="classpocketfft_1_1detail_1_1sincos__2pibyn.html" target="_self">sincos_2pibyn</a></td><td class="desc"></td></tr>
<tr id="row_3_0_21_" 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="classpocketfft_1_1detail_1_1_t__dcst23.html" target="_self">T_dcst23</a></td><td class="desc"></td></tr>
<tr id="row_3_0_22_" 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="classpocketfft_1_1detail_1_1_t__dcst4.html" target="_self">T_dcst4</a></td><td class="desc"></td></tr>
<tr id="row_3_0_23_" 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="classpocketfft_1_1detail_1_1_t__dct1.html" target="_self">T_dct1</a></td><td class="desc"></td></tr>
<tr id="row_3_0_24_" 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="classpocketfft_1_1detail_1_1_t__dst1.html" target="_self">T_dst1</a></td><td class="desc"></td></tr>
<tr id="row_3_0_25_" 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="structpocketfft_1_1detail_1_1util.html" target="_self">util</a></td><td class="desc"></td></tr>
<tr id="row_3_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="structpocketfft_1_1detail_1_1_v_l_e_n.html" target="_self">VLEN</a></td><td class="desc"></td></tr>
<tr id="row_3_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="structpocketfft_1_1detail_1_1_v_t_y_p_e.html" target="_self">VTYPE</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_4_" class="arrow" onclick="dynsection.toggleFolder('4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_4_0_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html" target="_self">bits_to_bfloat_struct</a></td><td class="desc"></td></tr>
<tr id="row_5_" 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___no_mask.html" target="_self">_NoMask</a></td><td class="desc"></td></tr>
<tr id="row_6_" 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_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_7_" 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_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_8_" 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_and.html" target="_self">And</a></td><td class="desc"></td></tr>
<tr id="row_9_" 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_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_10_" 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_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_11_" 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_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_12_" 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_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<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_tan.html" target="_self">ArcTan</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_tan2.html" target="_self">ArcTan2</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_arc_tanh.html" target="_self">ArcTanh</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_and.html" target="_self">BitwiseAnd</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_conjugate.html" target="_self">Conjugate</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_cos.html" target="_self">Cos</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_cosh.html" target="_self">Cosh</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_cum_max.html" target="_self">CumMax</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_min.html" target="_self">CumMin</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_prod.html" target="_self">CumProd</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_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</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_sum.html" target="_self">CumSum</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_divide.html" target="_self">Divide</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_div_mod.html" target="_self">DivMod</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_equal.html" target="_self">Equal</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_erf.html" target="_self">Erf</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_erf_inv.html" target="_self">ErfInv</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_exp.html" target="_self">Exp</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_expm1.html" target="_self">Expm1</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_floor.html" target="_self">Floor</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_floor_divide.html" target="_self">FloorDivide</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_greater.html" target="_self">Greater</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_greater_equal.html" target="_self">GreaterEqual</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_indices.html" target="_self">Indices</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_kernel_merge_sort.html" target="_self">KernelMergeSort</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_kernel_multi_block_merge_sort.html" target="_self">KernelMultiBlockMergeSort</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_left_shift.html" target="_self">LeftShift</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_less.html" target="_self">Less</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_less_equal.html" target="_self">LessEqual</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_less_than.html" target="_self">LessThan</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_limits.html" target="_self">Limits</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_limits_3_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</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_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</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_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</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_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</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_limits_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</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_3_01int32__t_01_4.html" target="_self">Limits&lt; int32_t &gt;</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_01int64__t_01_4.html" target="_self">Limits&lt; int64_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_01int8__t_01_4.html" target="_self">Limits&lt; int8_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_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_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_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_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_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_t &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_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_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_log.html" target="_self">Log</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_log10.html" target="_self">Log10</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_log1p.html" target="_self">Log1p</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_log2.html" target="_self">Log2</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_log_add_exp.html" target="_self">LogAddExp</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_logical_and.html" target="_self">LogicalAnd</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_logical_not.html" target="_self">LogicalNot</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_logical_or.html" target="_self">LogicalOr</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_max.html" target="_self">Max</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_maximum.html" target="_self">Maximum</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_min.html" target="_self">Min</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_minimum.html" target="_self">Minimum</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="structmlx__atomic.html" target="_self">mlx_atomic</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="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_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_m_l_x_conv_params.html" target="_self">MLXConvParams</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_m_l_x_fast_attention_params.html" target="_self">MLXFastAttentionParams</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_m_l_x_scaled_dot_product_attention_params.html" target="_self">MLXScaledDotProductAttentionParams</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_multiply.html" target="_self">Multiply</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_na_n_equal.html" target="_self">NaNEqual</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_negative.html" target="_self">Negative</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_none.html" target="_self">None</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_not_equal.html" target="_self">NotEqual</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_or.html" target="_self">Or</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_power.html" target="_self">Power</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="struct_prod.html" target="_self">Prod</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_quantized_block_loader.html" target="_self">QuantizedBlockLoader</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_read_writer.html" target="_self">ReadWriter</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_remainder.html" target="_self">Remainder</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_right_shift.html" target="_self">RightShift</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_round.html" target="_self">Round</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_rsqrt.html" target="_self">Rsqrt</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_scale_op.html" target="_self">ScaleOp</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_select.html" target="_self">Select</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_sigmoid.html" target="_self">Sigmoid</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_sign.html" target="_self">Sign</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_sin.html" target="_self">Sin</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_sinh.html" target="_self">Sinh</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_sqrt.html" target="_self">Sqrt</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_square.html" target="_self">Square</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_subtract.html" target="_self">Subtract</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_sum.html" target="_self">Sum</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_tan.html" target="_self">Tan</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_tanh.html" target="_self">Tanh</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_thread_sort.html" target="_self">ThreadSort</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="dynsection.toggleFolder('2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft.html" target="_self">pocketfft</a></td><td class="desc"></td></tr>
<tr id="row_2_0_" class="odd" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_0_" class="arrow" onclick="dynsection.toggleFolder('2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_0_0_" class="arrow" onclick="dynsection.toggleFolder('2_0_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepocketfft_1_1detail_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_0_" class="odd" 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="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html" target="_self">aligned_allocator</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_1_" class="odd" 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="classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html" target="_self">concurrent_queue</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_2_" class="odd" 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="classpocketfft_1_1detail_1_1threading_1_1latch.html" target="_self">latch</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_3_" class="odd" 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="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html" target="_self">thread_pool</a></td><td class="desc"></td></tr>
<tr id="row_2_0_1_" class="odd" 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="structpocketfft_1_1detail_1_1add__vec.html" target="_self">add_vec</a></td><td class="desc"></td></tr>
<tr id="row_2_0_2_" class="odd" 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="structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html" target="_self">add_vec&lt; cmplx&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_2_0_3_" class="odd" 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="classpocketfft_1_1detail_1_1arr.html" target="_self">arr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_4_" class="odd" 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="classpocketfft_1_1detail_1_1arr__info.html" target="_self">arr_info</a></td><td class="desc"></td></tr>
<tr id="row_2_0_5_" class="odd" 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="classpocketfft_1_1detail_1_1cfftp.html" target="_self">cfftp</a></td><td class="desc"></td></tr>
<tr id="row_2_0_6_" class="odd" 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="structpocketfft_1_1detail_1_1cmplx.html" target="_self">cmplx</a></td><td class="desc"></td></tr>
<tr id="row_2_0_7_" class="odd" 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="classpocketfft_1_1detail_1_1cndarr.html" target="_self">cndarr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_8_" class="odd" 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="structpocketfft_1_1detail_1_1_exec_c2_c.html" target="_self">ExecC2C</a></td><td class="desc"></td></tr>
<tr id="row_2_0_9_" class="odd" 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="structpocketfft_1_1detail_1_1_exec_dcst.html" target="_self">ExecDcst</a></td><td class="desc"></td></tr>
<tr id="row_2_0_10_" class="odd" 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="structpocketfft_1_1detail_1_1_exec_hartley.html" target="_self">ExecHartley</a></td><td class="desc"></td></tr>
<tr id="row_2_0_11_" class="odd" 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="structpocketfft_1_1detail_1_1_exec_r2_r.html" target="_self">ExecR2R</a></td><td class="desc"></td></tr>
<tr id="row_2_0_12_" class="odd" 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="classpocketfft_1_1detail_1_1fftblue.html" target="_self">fftblue</a></td><td class="desc"></td></tr>
<tr id="row_2_0_13_" class="odd" 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="classpocketfft_1_1detail_1_1multi__iter.html" target="_self">multi_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_14_" class="odd" 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="classpocketfft_1_1detail_1_1ndarr.html" target="_self">ndarr</a></td><td class="desc"></td></tr>
<tr id="row_2_0_15_" class="odd" 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="classpocketfft_1_1detail_1_1pocketfft__c.html" target="_self">pocketfft_c</a></td><td class="desc"></td></tr>
<tr id="row_2_0_16_" class="odd" 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="classpocketfft_1_1detail_1_1pocketfft__r.html" target="_self">pocketfft_r</a></td><td class="desc"></td></tr>
<tr id="row_2_0_17_" class="odd" 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="classpocketfft_1_1detail_1_1rev__iter.html" target="_self">rev_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_18_" class="odd" 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="classpocketfft_1_1detail_1_1rfftp.html" target="_self">rfftp</a></td><td class="desc"></td></tr>
<tr id="row_2_0_19_" class="odd" 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="classpocketfft_1_1detail_1_1simple__iter.html" target="_self">simple_iter</a></td><td class="desc"></td></tr>
<tr id="row_2_0_20_" class="odd" 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="classpocketfft_1_1detail_1_1sincos__2pibyn.html" target="_self">sincos_2pibyn</a></td><td class="desc"></td></tr>
<tr id="row_2_0_21_" class="odd" 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="classpocketfft_1_1detail_1_1_t__dcst23.html" target="_self">T_dcst23</a></td><td class="desc"></td></tr>
<tr id="row_2_0_22_" class="odd" 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="classpocketfft_1_1detail_1_1_t__dcst4.html" target="_self">T_dcst4</a></td><td class="desc"></td></tr>
<tr id="row_2_0_23_" class="odd" 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="classpocketfft_1_1detail_1_1_t__dct1.html" target="_self">T_dct1</a></td><td class="desc"></td></tr>
<tr id="row_2_0_24_" class="odd" 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="classpocketfft_1_1detail_1_1_t__dst1.html" target="_self">T_dst1</a></td><td class="desc"></td></tr>
<tr id="row_2_0_25_" class="odd" 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="structpocketfft_1_1detail_1_1util.html" target="_self">util</a></td><td class="desc"></td></tr>
<tr id="row_2_0_26_" class="odd" 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="structpocketfft_1_1detail_1_1_v_l_e_n.html" target="_self">VLEN</a></td><td class="desc"></td></tr>
<tr id="row_2_0_27_" class="odd" 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="structpocketfft_1_1detail_1_1_v_t_y_p_e.html" target="_self">VTYPE</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="dynsection.toggleFolder('3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html" target="_self">bits_to_bfloat_struct</a></td><td class="desc"></td></tr>
<tr id="row_4_" 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___no_mask.html" target="_self">_NoMask</a></td><td class="desc"></td></tr>
<tr id="row_5_" 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_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_6_" 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_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_7_" 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_and.html" target="_self">And</a></td><td class="desc"></td></tr>
<tr id="row_8_" 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_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_9_" 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_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_10_" 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_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_11_" 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_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_12_" 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_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<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_conjugate.html" target="_self">Conjugate</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_cos.html" target="_self">Cos</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_cosh.html" target="_self">Cosh</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_cum_max.html" target="_self">CumMax</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_cum_min.html" target="_self">CumMin</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_prod.html" target="_self">CumProd</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_prod_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</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_sum.html" target="_self">CumSum</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_divide.html" target="_self">Divide</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_div_mod.html" target="_self">DivMod</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_equal.html" target="_self">Equal</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_erf.html" target="_self">Erf</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_erf_inv.html" target="_self">ErfInv</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_exp.html" target="_self">Exp</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_expm1.html" target="_self">Expm1</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_floor.html" target="_self">Floor</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_floor_divide.html" target="_self">FloorDivide</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_g_e_m_v_kernel.html" target="_self">GEMVKernel</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_g_e_m_v_t_kernel.html" target="_self">GEMVTKernel</a></td><td class="desc">Vector matrix multiplication </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_greater.html" target="_self">Greater</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_greater_equal.html" target="_self">GreaterEqual</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_indices.html" target="_self">Indices</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_kernel_merge_sort.html" target="_self">KernelMergeSort</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_kernel_multi_block_merge_sort.html" target="_self">KernelMultiBlockMergeSort</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_left_shift.html" target="_self">LeftShift</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_less.html" target="_self">Less</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_less_equal.html" target="_self">LessEqual</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_less_than.html" target="_self">LessThan</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_limits.html" target="_self">Limits</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_limits_3_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</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_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</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_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</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_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</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_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</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_01int32__t_01_4.html" target="_self">Limits&lt; int32_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_01int64__t_01_4.html" target="_self">Limits&lt; int64_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_01int8__t_01_4.html" target="_self">Limits&lt; int8_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_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_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_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_t &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_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_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_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_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_log.html" target="_self">Log</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_log10.html" target="_self">Log10</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_log1p.html" target="_self">Log1p</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_log2.html" target="_self">Log2</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_log_add_exp.html" target="_self">LogAddExp</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_logical_and.html" target="_self">LogicalAnd</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_logical_not.html" target="_self">LogicalNot</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_logical_or.html" target="_self">LogicalOr</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_max.html" target="_self">Max</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_maximum.html" target="_self">Maximum</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_min.html" target="_self">Min</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_minimum.html" target="_self">Minimum</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="structmlx__atomic.html" target="_self">mlx_atomic</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="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_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_m_l_x_conv_params.html" target="_self">MLXConvParams</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_m_l_x_fast_attention_params.html" target="_self">MLXFastAttentionParams</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_m_l_x_scaled_dot_product_attention_params.html" target="_self">MLXScaledDotProductAttentionParams</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_multiply.html" target="_self">Multiply</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_na_n_equal.html" target="_self">NaNEqual</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_negative.html" target="_self">Negative</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_none.html" target="_self">None</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_not_equal.html" target="_self">NotEqual</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_or.html" target="_self">Or</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="struct_power.html" target="_self">Power</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_prod.html" target="_self">Prod</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_quantized_block_loader.html" target="_self">QuantizedBlockLoader</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_read_writer.html" target="_self">ReadWriter</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_remainder.html" target="_self">Remainder</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_right_shift.html" target="_self">RightShift</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_round.html" target="_self">Round</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_rsqrt.html" target="_self">Rsqrt</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_scale_op.html" target="_self">ScaleOp</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_select.html" target="_self">Select</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_sigmoid.html" target="_self">Sigmoid</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_sign.html" target="_self">Sign</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_sin.html" target="_self">Sin</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_sinh.html" target="_self">Sinh</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_sqrt.html" target="_self">Sqrt</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_square.html" target="_self">Square</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_subtract.html" target="_self">Subtract</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_sum.html" target="_self">Sum</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_tan.html" target="_self">Tan</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_tanh.html" target="_self">Tanh</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_thread_sort.html" target="_self">ThreadSort</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@ -794,25 +794,25 @@ $(function() { codefold.init(0); });
<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_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:559</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:60</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:58</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a1e6cec03ebd80fd2d6b12b288367bfa8"><div class="ttname"><a href="namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8">mlx::core::deleter_t</a></div><div class="ttdeci">std::function&lt; void(allocator::Buffer)&gt; deleter_t</div><div class="ttdef"><b>Definition</b> array.h:18</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:65</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:63</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:74</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:69</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:73</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:68</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:67</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:70</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:63</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:61</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:72</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:67</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: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:66</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:65</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:68</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:563</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:62</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:72</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:64</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:95</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:60</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:70</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:62</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:93</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:566</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:75</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:15</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: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:73</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:100</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:141</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:161</div></div>

View File

@ -117,8 +117,8 @@ $(function() { codefold.init(0); });
<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_a7a4193f37b1de9c33c31d1da09c77edb"><div class="ttname"><a href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb">mlx::core::to_bnns_dtype</a></div><div class="ttdeci">BNNSDataType to_bnns_dtype(Dtype mlx_dtype)</div><div class="ttdef"><b>Definition</b> utils.h:10</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:95</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:15</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:93</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_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>
<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>
<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>

View File

@ -89,8 +89,6 @@ $(function() {
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;unordered_map&gt;</code><br />
<code>#include &lt;unordered_set&gt;</code><br />
<code>#include &lt;dlfcn.h&gt;</code><br />
<code>#include &lt;filesystem&gt;</code><br />
<code>#include &quot;<a class="el" href="array_8h_source.html">mlx/array.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="device_8h_source.html">mlx/device.h</a>&quot;</code><br />
</div>
@ -121,8 +119,6 @@ Typedefs</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5fd6ba2040e53a254b9d71ae7ebd315f" id="r_a5fd6ba2040e53a254b9d71ae7ebd315f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">mlx::core::metal::get_colocated_mtllib_path</a> (const std::string &amp;lib_name)</td></tr>
<tr class="separator:a5fd6ba2040e53a254b9d71ae7ebd315f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a910797b74824e6ee576fbb533dee8b57" id="r_a910797b74824e6ee576fbb533dee8b57"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57">mlx::core::metal::device</a> (<a class="el" href="structmlx_1_1core_1_1_device.html">mlx::core::Device</a>)</td></tr>
<tr class="separator:a910797b74824e6ee576fbb533dee8b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

View File

@ -94,258 +94,190 @@ $(function() { codefold.init(0); });
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;unordered_set&gt;</span></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="preprocessor">#include &lt;dlfcn.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;filesystem&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="array_8h.html">mlx/array.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="device_8h.html">mlx/device.h</a>&quot;</span></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="preprocessor">#include &quot;<a class="code" href="array_8h.html">mlx/array.h</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="device_8h.html">mlx/device.h</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">namespace </span>fs = std::filesystem;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1metal.html">mlx::core::metal</a> {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54"> 17</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="l00018" name="l00018"></a><span class="lineno"> 18</span> std::vector&lt;std::tuple&lt;const void*, MTL::DataType, NS::UInteger&gt;&gt;;</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="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1metal.html">mlx::core::metal</a> {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="}">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f"> 22</a></span><span class="keyword">inline</span> std::string <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>(<span class="keyword">const</span> std::string&amp; lib_name) {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> Dl_info info;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::string mtllib_path;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> std::string lib_ext = lib_name + <span class="stringliteral">&quot;.metallib&quot;</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="keywordtype">int</span> success = dladdr((<span class="keywordtype">void</span>*)<a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>, &amp;info);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">if</span> (success) {</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">auto</span> mtllib = fs::path(info.dli_fname).remove_filename() / lib_ext;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> mtllib_path = mtllib.c_str();</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> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> mtllib_path;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="};">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html"> 20</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"> 21</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="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14"> 22</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_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"> 23</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="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html"> 25</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a> {</div>
<div class="foldopen" id="foldopen00026" data-start="{" data-end="}">
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 26</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_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc) : enc(enc) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> enc.concurrent = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
</div>
<div class="foldopen" id="foldopen00029" data-start="{" data-end="}">
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1"> 29</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="l00030" name="l00030"></a><span class="lineno"> 30</span> enc.concurrent = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> enc.outputs.insert(</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> enc.concurrent_outputs.begin(), enc.concurrent_outputs.end());</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> enc.concurrent_outputs.clear();</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54"> 36</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="l00037" name="l00037"></a><span class="lineno"> 37</span> std::vector&lt;std::tuple&lt;const void*, MTL::DataType, NS::UInteger&gt;&gt;;</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_1metal_1_1_command_encoder.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> };</div>
</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_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"> 40</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>(MTL::CommandBuffer* cbuf) : cbuf(cbuf) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> enc = cbuf-&gt;computeCommandEncoder(MTL::DispatchTypeConcurrent);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> enc-&gt;retain();</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> };</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966"> 40</a></span> MTL::ComputeCommandEncoder* <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966">operator-&gt;</a>() {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> enc;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
</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#ac68ca977b5bde5434284ce7979647f14"> 44</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_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</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#a3f42a1362b4a513fa89e7b3dcc570a8e"> 45</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="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </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"> 47</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a> {</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_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 48</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_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc) : enc(enc) {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> enc.concurrent = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
</div>
<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1"> 51</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="l00052" name="l00052"></a><span class="lineno"> 52</span> enc.concurrent = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> enc.outputs.insert(</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> enc.concurrent_outputs.begin(), enc.concurrent_outputs.end());</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> enc.concurrent_outputs.clear();</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</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"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4"> 44</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="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"> 45</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="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e"> 46</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e">dispatchThreadgroups</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<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.html#a1e41477f2f489e38499f7830a91c9810"> 47</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810">dispatchThreads</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </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.html#a48b548a0b15f9d1279c938a1c6167034"> 49</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="l00050" name="l00050"></a><span class="lineno"> 50</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="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198"> 53</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="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">void</span> maybe_split();</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">private</span>:</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> };</div>
</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </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_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966"> 62</a></span> MTL::ComputeCommandEncoder* <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966">operator-&gt;</a>() {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> enc;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">int</span> num_dispatches{0};</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> MTL::CommandBuffer* cbuf;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> MTL::ComputeCommandEncoder* enc;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">bool</span> concurrent{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::unordered_set&lt;MTL::Resource*&gt; outputs;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> std::unordered_set&lt;MTL::Resource*&gt; concurrent_outputs;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>};</div>
</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="foldopen" id="foldopen00066" data-start="{" data-end="}">
<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#ab69ff0d7f14b9b59db4df0608193dce4"> 66</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="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">auto</span> r_buf =</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">static_cast&lt;</span>MTL::Resource*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keywordtype">void</span>*<span class="keyword">&gt;</span>(a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>()));</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> it = outputs.find(r_buf); it != outputs.end()) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Insert a barrier</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> enc-&gt;memoryBarrier(&amp;r_buf, 1);</div>
<div class="foldopen" id="foldopen00066" data-start="{" data-end="};">
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html"> 66</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a> {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6"> 68</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="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 69</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_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 70</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="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"> 71</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="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// Remove the output</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> outputs.erase(it);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">auto</span> a_buf = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>MTL::Buffer*<span class="keyword">&gt;</span>(a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>());</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">auto</span> base_offset = a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a72e3ce6c03fefe272cadf214bd127b95">data</a>&lt;<span class="keywordtype">char</span>&gt;() -</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span>MTL::Buffer*<span class="keyword">&gt;</span>(a_buf)-&gt;contents());</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> base_offset += offset;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> enc-&gt;setBuffer(a_buf, base_offset, idx);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</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="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653"> 73</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="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> device_;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> };</div>
</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="foldopen" id="foldopen00083" data-start="{" data-end="}">
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522"> 83</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="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Add barriers before adding the output to the output set</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4">set_input_array</a>(a, idx, offset);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">auto</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> = <span class="keyword">static_cast&lt;</span>MTL::Resource*<span class="keyword">&gt;</span>(a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08">buffer</a>().<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">ptr</a>());</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">if</span> (concurrent) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> concurrent_outputs.insert(<a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> outputs.insert(<a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</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> }</div>
</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e"> 94</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e">dispatchThreadgroups</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810"> 95</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810">dispatchThreads</a>(MTL::Size grid_dims, MTL::Size group_dims);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="foldopen" id="foldopen00097" data-start="{" data-end="}">
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034"> 97</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="l00098" name="l00098"></a><span class="lineno"> 98</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="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
</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_1metal_1_1_command_encoder.html#a9b6dd221ccd2d939d544004cb6279198"> 101</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="l00102" name="l00102"></a><span class="lineno"> 102</span> enc-&gt;endEncoding();</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> enc-&gt;release();</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</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"> 106</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> maybe_split();</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67"> 77</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="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210"> 78</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="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8"> 79</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="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6"> 80</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="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c"> 81</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="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6"> 82</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="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf"> 83</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="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d"> 85</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="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">const</span> std::string&amp; lib_name,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> std::string&amp; lib_path);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a99ff72689b7beb65ad4541391b0eeabf"> 89</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="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a86297d66de43ee77d0697f69c6bd0b87"> 91</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a86297d66de43ee77d0697f69c6bd0b87">get_library</a>(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a961d3cdb4bfb14c1a0b0aeb05609f56e"> 93</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a961d3cdb4bfb14c1a0b0aeb05609f56e">get_library</a>(</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">const</span> std::string&amp; source_string,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">bool</span> cache = <span class="keyword">true</span>);</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8d8d9e28ffeea10d687b91ea480fb4bd"> 98</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a8d8d9e28ffeea10d687b91ea480fb4bd">get_library</a>(</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> MTL::StitchedLibraryDescriptor* desc,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">bool</span> cache = <span class="keyword">true</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf4ecf035e8be2ff00d2a7e95475d7ac"> 103</a></span> MTL::Function* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf4ecf035e8be2ff00d2a7e95475d7ac">get_function</a>(</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">const</span> std::string&amp; specialized_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</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="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="keywordtype">int</span> num_dispatches{0};</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> MTL::CommandBuffer* cbuf;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> MTL::ComputeCommandEncoder* enc;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">bool</span> concurrent{<span class="keyword">false</span>};</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> std::unordered_set&lt;MTL::Resource*&gt; outputs;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> std::unordered_set&lt;MTL::Resource*&gt; concurrent_outputs;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>};</div>
</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </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="classmlx_1_1core_1_1metal_1_1_device.html"> 117</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a> {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6"> 119</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="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 120</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_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 121</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="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"> 122</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="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="foldopen" id="foldopen00124" data-start="{" data-end="}">
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653"> 124</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="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> device_;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> };</div>
</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67"> 128</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="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a5fe3970fbe92ccc55fce4241ffbe5210"> 129</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="l00130" name="l00130"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8"> 130</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="l00131" name="l00131"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6"> 131</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="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a95248f1387824067fd4fed23ace5ac0c"> 132</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="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6"> 133</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="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf"> 134</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="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a45945f2efcd242d915ffa2171e92bf9d"> 136</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="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">const</span> std::string&amp; lib_name,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">const</span> std::string&amp; lib_path);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6993ce23a485b725b687628b77751ad2"> 139</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a6993ce23a485b725b687628b77751ad2">register_library</a>(</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">const</span> std::string&amp; lib_name,</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">const</span> std::function&lt;std::string(<span class="keyword">const</span> std::string&amp;)&gt;&amp; lib_path_func =</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>);</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a86297d66de43ee77d0697f69c6bd0b87"> 144</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a86297d66de43ee77d0697f69c6bd0b87">get_library</a>(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ac083535ead07161cb27ad31f8f64fb84"> 109</a></span> MTL::Function* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ac083535ead07161cb27ad31f8f64fb84">get_function</a>(</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">const</span> std::string&amp; specialized_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</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="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="classmlx_1_1core_1_1metal_1_1_device.html#a6810c4dcbcfbf93fc51d42aa5ff0fc3a"> 115</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="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</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="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf"> 122</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="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</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="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881"> 129</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="l00130" name="l00130"></a><span class="lineno"> 130</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="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> MTL::Library* get_library_cache_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> MTL::Library* get_library_(<span class="keyword">const</span> std::string&amp; source_string);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> MTL::Library* get_library_(<span class="keyword">const</span> MTL::StitchedLibraryDescriptor* desc);</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> MTL::Function* get_function_(<span class="keyword">const</span> std::string&amp; name, MTL::Library* mtl_lib);</div>
<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> MTL::Function* get_function_(</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> std::string&amp; specialized_name,</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</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="l00144" name="l00144"></a><span class="lineno"> 144</span> MTL::Library* mtl_lib);</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a961d3cdb4bfb14c1a0b0aeb05609f56e"> 146</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a961d3cdb4bfb14c1a0b0aeb05609f56e">get_library</a>(</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">const</span> std::string&amp; source_string,</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">bool</span> cache = <span class="keyword">true</span>);</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a8d8d9e28ffeea10d687b91ea480fb4bd"> 151</a></span> MTL::Library* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a8d8d9e28ffeea10d687b91ea480fb4bd">get_library</a>(</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">const</span> MTL::StitchedLibraryDescriptor* desc,</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">bool</span> cache = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf4ecf035e8be2ff00d2a7e95475d7ac"> 156</a></span> MTL::Function* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf4ecf035e8be2ff00d2a7e95475d7ac">get_function</a>(</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">const</span> std::string&amp; specialized_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</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="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<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#ac083535ead07161cb27ad31f8f64fb84"> 162</a></span> MTL::Function* <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ac083535ead07161cb27ad31f8f64fb84">get_function</a>(</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">const</span> std::string&amp; specialized_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</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="l00167" name="l00167"></a><span class="lineno"> 167</span> </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#a6810c4dcbcfbf93fc51d42aa5ff0fc3a"> 168</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="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> MTL::Library* mtl_lib,</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</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="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#afa0cac9d800c21a8a7f6cb224256abaf"> 175</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="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">const</span> std::string&amp; base_name,</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">const</span> std::string&amp; lib_name = <span class="stringliteral">&quot;mlx&quot;</span>,</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">const</span> std::string&amp; hash_name = <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</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="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; linked_functions = {});</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"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881"> 182</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="l00183" name="l00183"></a><span class="lineno"> 183</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="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">private</span>:</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> MTL::Library* get_library_cache_(<span class="keyword">const</span> std::string&amp; name);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> MTL::Library* get_library_(<span class="keyword">const</span> std::string&amp; source_string);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> MTL::Library* get_library_(<span class="keyword">const</span> MTL::StitchedLibraryDescriptor* desc);</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> MTL::Function* get_function_(<span class="keyword">const</span> std::string&amp; name, MTL::Library* mtl_lib);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> MTL::Function* get_function_(</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">const</span> std::string&amp; specialized_name,</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</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="l00197" name="l00197"></a><span class="lineno"> 197</span> MTL::Library* mtl_lib);</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"> 199</span> MTL::LinkedFunctions* get_linked_functions_(</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; funcs);</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> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">const</span> MTL::Function* mtl_function);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">const</span> MTL::Function* mtl_function,</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> MTL::LinkedFunctions* linked_functions);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> MTL::Device* device_;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> std::unordered_map&lt;int32_t, MTL::CommandQueue*&gt; queue_map_;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> std::unordered_map&lt;int32_t, std::pair&lt;int, MTL::CommandBuffer*&gt;&gt; buffer_map_;</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> std::unordered_map&lt;int32_t, std::unique_ptr&lt;CommandEncoder&gt;&gt; encoder_map_;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> std::unordered_map&lt;std::string, MTL::ComputePipelineState*&gt; kernel_map_;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> std::unordered_map&lt;std::string, MTL::Library*&gt; library_map_;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> std::mutex mtx_;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>};</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> MTL::LinkedFunctions* get_linked_functions_(</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">const</span> std::vector&lt;MTL::Function*&gt;&amp; funcs);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">const</span> MTL::Function* mtl_function);</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> MTL::ComputePipelineState* get_kernel_(</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">const</span> std::string&amp; name,</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">const</span> MTL::Function* mtl_function,</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">const</span> MTL::LinkedFunctions* linked_functions);</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> MTL::Device* device_;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> std::unordered_map&lt;int32_t, MTL::CommandQueue*&gt; queue_map_;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> std::unordered_map&lt;int32_t, std::pair&lt;int, MTL::CommandBuffer*&gt;&gt; buffer_map_;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> std::unordered_map&lt;int32_t, std::unique_ptr&lt;CommandEncoder&gt;&gt; encoder_map_;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> std::unordered_map&lt;std::string, MTL::ComputePipelineState*&gt; kernel_map_;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> std::unordered_map&lt;std::string, MTL::Library*&gt; library_map_;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> std::mutex mtx_;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>};</div>
</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"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57"> 220</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="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::metal</span></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"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57"> 167</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="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</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="abackend_2metal_2allocator_8h_html_a15aa5cc1baf29be08d55cca88509e697"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a></div><div class="ttdeci">MTL::Buffer * buf</div><div class="ttdef"><b>Definition</b> allocator.h:38</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_a990643feac06961c5599aac098c17b94"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">mlx::core::allocator::Buffer::ptr</a></div><div class="ttdeci">const void * ptr() const</div><div class="ttdef"><b>Definition</b> allocator.h:23</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:20</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:313</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:299</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:117</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:66</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:124</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:73</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_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_a6993ce23a485b725b687628b77751ad2"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a6993ce23a485b725b687628b77751ad2">mlx::core::metal::Device::register_library</a></div><div class="ttdeci">void register_library(const std::string &amp;lib_name, const std::function&lt; std::string(const std::string &amp;)&gt; &amp;lib_path_func=get_colocated_mtllib_path)</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_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>
@ -353,6 +285,7 @@ $(function() { codefold.init(0); });
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a8d8d9e28ffeea10d687b91ea480fb4bd"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a8d8d9e28ffeea10d687b91ea480fb4bd">mlx::core::metal::Device::get_library</a></div><div class="ttdeci">MTL::Library * get_library(const std::string &amp;name, const MTL::StitchedLibraryDescriptor *desc, bool cache=true)</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_a961d3cdb4bfb14c1a0b0aeb05609f56e"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a961d3cdb4bfb14c1a0b0aeb05609f56e">mlx::core::metal::Device::get_library</a></div><div class="ttdeci">MTL::Library * get_library(const std::string &amp;name, const std::string &amp;source_string, bool cache=true)</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>
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_abf4ecf035e8be2ff00d2a7e95475d7ac"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#abf4ecf035e8be2ff00d2a7e95475d7ac">mlx::core::metal::Device::get_function</a></div><div class="ttdeci">MTL::Function * get_function(const std::string &amp;base_name, MTL::Library *mtl_lib, const std::string &amp;specialized_name=&quot;&quot;, const MTLFCList &amp;func_consts={})</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_ac083535ead07161cb27ad31f8f64fb84"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#ac083535ead07161cb27ad31f8f64fb84">mlx::core::metal::Device::get_function</a></div><div class="ttdeci">MTL::Function * get_function(const std::string &amp;base_name, const std::string &amp;lib_name=&quot;mlx&quot;, const std::string &amp;specialized_name=&quot;&quot;, const MTLFCList &amp;func_consts={})</div></div>
@ -362,23 +295,22 @@ $(function() { codefold.init(0); });
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_affa682ef612def4890f5152f81ffb7e6"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#affa682ef612def4890f5152f81ffb7e6">mlx::core::metal::Device::get_command_encoder</a></div><div class="ttdeci">CommandEncoder &amp; get_command_encoder(int index)</div></div>
<div class="ttc" id="adevice_8h_html"><div class="ttname"><a href="device_8h.html">device.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html">mlx::core::metal</a></div><div class="ttdef"><b>Definition</b> allocator.h:12</div></div>
<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:22</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:36</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:17</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_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:47</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:51</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:48</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:39</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:25</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:29</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:26</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:20</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_a1e41477f2f489e38499f7830a91c9810"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810">mlx::core::metal::CommandEncoder::dispatchThreads</a></div><div class="ttdeci">void dispatchThreads(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 class="ttdef"><b>Definition</b> device.h:40</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_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:97</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 class="ttdef"><b>Definition</b> device.h:83</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:49</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_a74bcd8e35f80f5a62db48c4a2bb0173e"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e">mlx::core::metal::CommandEncoder::dispatchThreadgroups</a></div><div class="ttdeci">void dispatchThreadgroups(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 class="ttdef"><b>Definition</b> device.h:101</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_command_encoder_html_aac45ab0630ea32cf7d15c7ba3e229966"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966">mlx::core::metal::CommandEncoder::operator-&gt;</a></div><div class="ttdeci">MTL::ComputeCommandEncoder * operator-&gt;()</div><div class="ttdef"><b>Definition</b> device.h:62</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 class="ttdef"><b>Definition</b> device.h:66</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_aac45ab0630ea32cf7d15c7ba3e229966"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#aac45ab0630ea32cf7d15c7ba3e229966">mlx::core::metal::CommandEncoder::operator-&gt;</a></div><div class="ttdeci">MTL::ComputeCommandEncoder * operator-&gt;()</div><div class="ttdef"><b>Definition</b> device.h:40</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_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><!-- fragment --></div><!-- contents -->
<!-- start footer part -->

View File

@ -76,7 +76,8 @@ $(function() {
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">utils.h File Reference</div></div>
</div><!--header-->
<div class="contents">
@ -92,6 +93,29 @@ Namespaces</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacemlx_1_1core" id="r_namespacemlx_1_1core"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html">mlx::core</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a62340bbaa8b216539688a60adcb568bf" id="r_a62340bbaa8b216539688a60adcb568bf"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a62340bbaa8b216539688a60adcb568bf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf">mlx::core::set_vector_bytes</a> (<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;enc, const std::vector&lt; T &gt; &amp;vec, size_t nelems, int idx)</td></tr>
<tr class="separator:a62340bbaa8b216539688a60adcb568bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae309cb543dfb0239cfccc53a8ad0408e" id="r_ae309cb543dfb0239cfccc53a8ad0408e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae309cb543dfb0239cfccc53a8ad0408e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ae309cb543dfb0239cfccc53a8ad0408e">mlx::core::set_vector_bytes</a> (<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;enc, const std::vector&lt; T &gt; &amp;vec, int idx)</td></tr>
<tr class="separator:ae309cb543dfb0239cfccc53a8ad0408e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1fdfdaa5644394362e6baba30701bae" id="r_af1fdfdaa5644394362e6baba30701bae"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae">mlx::core::type_to_name</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a)</td></tr>
<tr class="separator:af1fdfdaa5644394362e6baba30701bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b3f872f6046bdd4d429ee1f1c31cd40" id="r_a7b3f872f6046bdd4d429ee1f1c31cd40"><td class="memItemLeft" align="right" valign="top">MTL::Size&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a7b3f872f6046bdd4d429ee1f1c31cd40">mlx::core::get_block_dims</a> (int dim0, int dim1, int dim2)</td></tr>
<tr class="separator:a7b3f872f6046bdd4d429ee1f1c31cd40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc169474a51a1f4f761d5752819bd7c" id="r_a8dc169474a51a1f4f761d5752819bd7c"><td class="memItemLeft" align="right" valign="top">MTL::Size&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c">mlx::core::get_2d_grid_dims</a> (const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; size_t &gt; &amp;strides)</td></tr>
<tr class="separator:a8dc169474a51a1f4f761d5752819bd7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed148d95e7b5221f1312473deded0d27" id="r_aed148d95e7b5221f1312473deded0d27"><td class="memItemLeft" align="right" valign="top">NS::String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">mlx::core::make_string</a> (std::ostringstream &amp;os)</td></tr>
<tr class="separator:aed148d95e7b5221f1312473deded0d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79817d2432e782e596c9c49a08b93be2" id="r_a79817d2432e782e596c9c49a08b93be2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2">mlx::core::debug_set_stream_queue_label</a> (MTL::CommandQueue *queue, int index)</td></tr>
<tr class="separator:a79817d2432e782e596c9c49a08b93be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a489e45b3a5cd8b46e8ea56b9132eb230" id="r_a489e45b3a5cd8b46e8ea56b9132eb230"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230">mlx::core::debug_set_primitive_buffer_label</a> (MTL::CommandBuffer *command_buffer, <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;primitive)</td></tr>
<tr class="separator:a489e45b3a5cd8b46e8ea56b9132eb230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4be35b310a252edd80d9cf04f094a60" id="r_ad4be35b310a252edd80d9cf04f094a60"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60">mlx::core::get_primitive_string</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> *primitive)</td></tr>
<tr class="separator:ad4be35b310a252edd80d9cf04f094a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->

View File

@ -93,155 +93,95 @@ $(function() { codefold.init(0); });
<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.html">mlx::core</a> {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span>{</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">using </span>metal::CommandEncoder;</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">using </span>metal::CommandEncoder;</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="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">inline</span> <span class="keywordtype">void</span> set_vector_bytes(</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> CommandEncoder&amp; enc,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">size_t</span> nelems,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> enc-&gt;setBytes(vec.data(), nelems * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>}</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">inline</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>set_vector_bytes(CommandEncoder&amp; enc, <span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">return</span> set_vector_bytes(enc, vec, vec.size(), idx);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</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="foldopen" id="foldopen00014" data-start="{" data-end="}">
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf"> 14</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf">set_vector_bytes</a>(</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc,</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec,</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">size_t</span> nelems,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> enc-&gt;setBytes(vec.data(), nelems * <span class="keyword">sizeof</span>(T), idx);</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>}</div>
</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </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> T&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">inline</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00024" data-start="{" data-end="}">
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ae309cb543dfb0239cfccc53a8ad0408e"> 24</a></span><a class="code hl_function" href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf">set_vector_bytes</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&amp; enc, <span class="keyword">const</span> std::vector&lt;T&gt;&amp; vec, <span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf">set_vector_bytes</a>(enc, vec, vec.size(), idx);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>}</div>
</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae"> 28</a></span>std::string <a class="code hl_function" href="namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae">type_to_name</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; a);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>std::string type_to_name(<span class="keyword">const</span> array&amp; a) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> std::string tname;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">switch</span> (a.dtype()) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</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="l00034" name="l00034"></a><span class="lineno"> 34</span> tname = <span class="stringliteral">&quot;bool_&quot;</span>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</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="l00037" name="l00037"></a><span class="lineno"> 37</span> tname = <span class="stringliteral">&quot;uint8&quot;</span>;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</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="l00040" name="l00040"></a><span class="lineno"> 40</span> tname = <span class="stringliteral">&quot;uint16&quot;</span>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</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="l00043" name="l00043"></a><span class="lineno"> 43</span> tname = <span class="stringliteral">&quot;uint32&quot;</span>;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</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="l00046" name="l00046"></a><span class="lineno"> 46</span> tname = <span class="stringliteral">&quot;uint64&quot;</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</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="l00049" name="l00049"></a><span class="lineno"> 49</span> tname = <span class="stringliteral">&quot;int8&quot;</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</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="l00052" name="l00052"></a><span class="lineno"> 52</span> tname = <span class="stringliteral">&quot;int16&quot;</span>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</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="l00055" name="l00055"></a><span class="lineno"> 55</span> tname = <span class="stringliteral">&quot;int32&quot;</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</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="l00058" name="l00058"></a><span class="lineno"> 58</span> tname = <span class="stringliteral">&quot;int64&quot;</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</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="l00061" name="l00061"></a><span class="lineno"> 61</span> tname = <span class="stringliteral">&quot;float16&quot;</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</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="l00064" name="l00064"></a><span class="lineno"> 64</span> tname = <span class="stringliteral">&quot;float32&quot;</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</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="l00067" name="l00067"></a><span class="lineno"> 67</span> tname = <span class="stringliteral">&quot;bfloat16&quot;</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</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="l00070" name="l00070"></a><span class="lineno"> 70</span> tname = <span class="stringliteral">&quot;complex64&quot;</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> tname;</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 class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>MTL::Size get_block_dims(<span class="keywordtype">int</span> dim0, <span class="keywordtype">int</span> dim1, <span class="keywordtype">int</span> dim2) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">int</span> pows[3] = {0, 0, 0};</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a> = 0;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">int</span> presum = <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// Check all the pows</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">if</span> (dim0 &gt;= (1 &lt;&lt; (pows[0] + 1))) {</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> pows[0]++;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</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"> 86</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a> == 10) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">if</span> (dim1 &gt;= (1 &lt;&lt; (pows[1] + 1))) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> pows[1]++;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a>++;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a> == 10) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">break</span>;</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> <span class="keywordflow">if</span> (dim2 &gt;= (1 &lt;&lt; (pows[2] + 1))) {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> pows[2]++;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a>++;</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"> 100</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a> == presum || <a class="code hl_function" href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">sum</a> == 10) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">break</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> }</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> MTL::Size{1ul &lt;&lt; pows[0], 1ul &lt;&lt; pows[1], 1ul &lt;&lt; pows[2]};</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"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keyword">inline</span> NS::String* make_string(std::ostringstream&amp; os) {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> std::string <span class="keywordtype">string</span> = os.str();</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> NS::String::string(<span class="keywordtype">string</span>.c_str(), NS::UTF8StringEncoding);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</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="keyword">inline</span> <span class="keywordtype">void</span> debug_set_stream_queue_label(MTL::CommandQueue* queue, <span class="keywordtype">int</span> index) {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor">#ifdef MLX_METAL_DEBUG</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> std::ostringstream label;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> label &lt;&lt; <span class="stringliteral">&quot;Stream &quot;</span> &lt;&lt; index;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> queue-&gt;setLabel(make_string(label));</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#endif</span></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> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="keyword">inline</span> <span class="keywordtype">void</span> debug_set_primitive_buffer_label(</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> MTL::CommandBuffer* command_buffer,</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> Primitive&amp; primitive) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor">#ifdef MLX_METAL_DEBUG</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> std::ostringstream label;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> cbuf_label = command_buffer-&gt;label(); cbuf_label) {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> label &lt;&lt; cbuf_label-&gt;utf8String();</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> primitive.print(label);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> command_buffer-&gt;setLabel(make_string(label));</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>}</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>std::string get_primitive_string(Primitive* primitive) {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> std::ostringstream op_t;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> primitive-&gt;print(op_t);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">return</span> op_t.str();</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> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">// Compute the thread block dimensions which fit the given</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">// input dimensions.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">// - The thread block dimensions will be powers of two</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">// - The thread block size will be less than 1024</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a7b3f872f6046bdd4d429ee1f1c31cd40"> 34</a></span>MTL::Size <a class="code hl_function" href="namespacemlx_1_1core.html#a7b3f872f6046bdd4d429ee1f1c31cd40">get_block_dims</a>(<span class="keywordtype">int</span> dim0, <span class="keywordtype">int</span> dim1, <span class="keywordtype">int</span> dim2);</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">// Computes a 2D grid where each element is &lt; UINT_MAX</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">// Assumes:</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">// - overall size (product of non-broadcasted dimensions) is &lt; UINT_MAX^2</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">// - shape and strides correspond to a contiguous (no holes) but</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">// possibly broadcasted array</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c"> 41</a></span>MTL::Size <a class="code hl_function" href="namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c">get_2d_grid_dims</a>(</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">const</span> std::vector&lt;int&gt;&amp; shape,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; strides);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="foldopen" id="foldopen00045" data-start="{" data-end="}">
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27"> 45</a></span><span class="keyword">inline</span> NS::String* <a class="code hl_function" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">make_string</a>(std::ostringstream&amp; os) {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> std::string <span class="keywordtype">string</span> = os.str();</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">return</span> NS::String::string(<span class="keywordtype">string</span>.c_str(), NS::UTF8StringEncoding);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>}</div>
</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </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.html#a79817d2432e782e596c9c49a08b93be2"> 50</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2">debug_set_stream_queue_label</a>(MTL::CommandQueue* queue, <span class="keywordtype">int</span> index) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#ifdef MLX_METAL_DEBUG</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> std::ostringstream label;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> label &lt;&lt; <span class="stringliteral">&quot;Stream &quot;</span> &lt;&lt; index;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> queue-&gt;setLabel(<a class="code hl_function" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">make_string</a>(label));</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </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="namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230"> 58</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a489e45b3a5cd8b46e8ea56b9132eb230">debug_set_primitive_buffer_label</a>(</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> MTL::CommandBuffer* command_buffer,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>&amp; primitive) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#ifdef MLX_METAL_DEBUG</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::ostringstream label;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> cbuf_label = command_buffer-&gt;label(); cbuf_label) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> label &lt;&lt; cbuf_label-&gt;utf8String();</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> primitive.<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">print</a>(label);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> command_buffer-&gt;setLabel(<a class="code hl_function" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">make_string</a>(label));</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>}</div>
</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60"> 71</a></span>std::string <a class="code hl_function" href="namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60">get_primitive_string</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>* primitive);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</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="agroup__ops_html_gade905ee92eb6ab7edfc312aeddfbaeb6"><div class="ttname"><a href="group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6">mlx::core::sum</a></div><div class="ttdeci">array sum(const array &amp;a, bool keepdims, StreamOrDevice s={})</div><div class="ttdoc">Sums the elements of an array.</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:20</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:60</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:65</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:63</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:74</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:69</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:73</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:68</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:67</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:70</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:62</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:72</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:64</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:75</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:58</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a62340bbaa8b216539688a60adcb568bf"><div class="ttname"><a href="namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf">mlx::core::set_vector_bytes</a></div><div class="ttdeci">void set_vector_bytes(CommandEncoder &amp;enc, const std::vector&lt; T &gt; &amp;vec, size_t nelems, int idx)</div><div class="ttdef"><b>Definition</b> utils.h:14</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a79817d2432e782e596c9c49a08b93be2"><div class="ttname"><a href="namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2">mlx::core::debug_set_stream_queue_label</a></div><div class="ttdeci">void debug_set_stream_queue_label(MTL::CommandQueue *queue, int index)</div><div class="ttdef"><b>Definition</b> utils.h:50</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a7b3f872f6046bdd4d429ee1f1c31cd40"><div class="ttname"><a href="namespacemlx_1_1core.html#a7b3f872f6046bdd4d429ee1f1c31cd40">mlx::core::get_block_dims</a></div><div class="ttdeci">MTL::Size get_block_dims(int dim0, int dim1, int dim2)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a8dc169474a51a1f4f761d5752819bd7c"><div class="ttname"><a href="namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c">mlx::core::get_2d_grid_dims</a></div><div class="ttdeci">MTL::Size get_2d_grid_dims(const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; size_t &gt; &amp;strides)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_ad4be35b310a252edd80d9cf04f094a60"><div class="ttname"><a href="namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60">mlx::core::get_primitive_string</a></div><div class="ttdeci">std::string get_primitive_string(Primitive *primitive)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_aed148d95e7b5221f1312473deded0d27"><div class="ttname"><a href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">mlx::core::make_string</a></div><div class="ttdeci">NS::String * make_string(std::ostringstream &amp;os)</div><div class="ttdef"><b>Definition</b> utils.h:45</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_af1fdfdaa5644394362e6baba30701bae"><div class="ttname"><a href="namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae">mlx::core::type_to_name</a></div><div class="ttdeci">std::string type_to_name(const array &amp;a)</div></div>
<div class="ttc" id="aprimitives_8h_html"><div class="ttname"><a href="primitives_8h.html">primitives.h</a></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:20</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -1,92 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_kernel.html">Kernel</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::Kernel Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_kernel.html">MPS::Kernel</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_kernel.html#a46793d1c80a4df313c067103fcae6024">device</a>() const</td><td class="entry"><a class="el" href="class_m_p_s_1_1_kernel.html">MPS::Kernel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_kernel.html#aaf646bce46266bc11c419464ec72cdfe">label</a>() const</td><td class="entry"><a class="el" href="class_m_p_s_1_1_kernel.html">MPS::Kernel</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,144 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::Kernel 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_kernel.html">Kernel</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_kernel-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::Kernel Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::Kernel:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_kernel.png" alt=""/>
</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:aaf646bce46266bc11c419464ec72cdfe" id="r_aaf646bce46266bc11c419464ec72cdfe"><td class="memItemLeft" align="right" valign="top">NS::String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf646bce46266bc11c419464ec72cdfe">label</a> () const</td></tr>
<tr class="separator:aaf646bce46266bc11c419464ec72cdfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46793d1c80a4df313c067103fcae6024" id="r_a46793d1c80a4df313c067103fcae6024"><td class="memItemLeft" align="right" valign="top">MTL::Device *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a46793d1c80a4df313c067103fcae6024">device</a> () const</td></tr>
<tr class="separator:a46793d1c80a4df313c067103fcae6024"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a46793d1c80a4df313c067103fcae6024" name="a46793d1c80a4df313c067103fcae6024"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46793d1c80a4df313c067103fcae6024">&#9670;&#160;</a></span>device()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE MTL::Device * MPS::Kernel::device </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aaf646bce46266bc11c419464ec72cdfe" name="aaf646bce46266bc11c419464ec72cdfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf646bce46266bc11c419464ec72cdfe">&#9670;&#160;</a></span>label()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE NS::String * MPS::Kernel::label </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

View File

@ -1,93 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::Matrix Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_matrix.html">MPS::Matrix</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html#a906d97b4b2365bec4acf278ef22205b4">alloc</a>()</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html">MPS::Matrix</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html#a2398221610a7c610c85cf7fb3f18281b">init</a>(MTL::Buffer *buffer, MatrixDescriptor *descriptor)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html">MPS::Matrix</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html#a40771ae44d119abd56bd32b7cc38feda">init</a>(const MTL::Buffer *buffer, MatrixDescriptor *descriptor)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix.html">MPS::Matrix</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,183 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::Matrix 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_matrix-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::Matrix Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::Matrix:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_matrix.png" alt=""/>
</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:a2398221610a7c610c85cf7fb3f18281b" id="r_a2398221610a7c610c85cf7fb3f18281b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2398221610a7c610c85cf7fb3f18281b">init</a> (MTL::Buffer *buffer, <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *descriptor)</td></tr>
<tr class="separator:a2398221610a7c610c85cf7fb3f18281b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40771ae44d119abd56bd32b7cc38feda" id="r_a40771ae44d119abd56bd32b7cc38feda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a40771ae44d119abd56bd32b7cc38feda">init</a> (const MTL::Buffer *buffer, <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *descriptor)</td></tr>
<tr class="separator:a40771ae44d119abd56bd32b7cc38feda"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a906d97b4b2365bec4acf278ef22205b4" id="r_a906d97b4b2365bec4acf278ef22205b4"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a906d97b4b2365bec4acf278ef22205b4">alloc</a> ()</td></tr>
<tr class="separator:a906d97b4b2365bec4acf278ef22205b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a906d97b4b2365bec4acf278ef22205b4" name="a906d97b4b2365bec4acf278ef22205b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a906d97b4b2365bec4acf278ef22205b4">&#9670;&#160;</a></span>alloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> * MPS::Matrix::alloc </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a40771ae44d119abd56bd32b7cc38feda" name="a40771ae44d119abd56bd32b7cc38feda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40771ae44d119abd56bd32b7cc38feda">&#9670;&#160;</a></span>init() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> * MPS::Matrix::init </td>
<td>(</td>
<td class="paramtype">const MTL::Buffer *</td> <td class="paramname"><span class="paramname"><em>buffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *</td> <td class="paramname"><span class="paramname"><em>descriptor</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2398221610a7c610c85cf7fb3f18281b" name="a2398221610a7c610c85cf7fb3f18281b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2398221610a7c610c85cf7fb3f18281b">&#9670;&#160;</a></span>init() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> * MPS::Matrix::init </td>
<td>(</td>
<td class="paramtype">MTL::Buffer *</td> <td class="paramname"><span class="paramname"><em>buffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *</td> <td class="paramname"><span class="paramname"><em>descriptor</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

View File

@ -1,93 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::MatrixDescriptor Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MPS::MatrixDescriptor</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a7a99042b3c8afa037719ca316500a37b">matrixDescriptor</a>(NS::UInteger rows, NS::UInteger columns, NS::UInteger rowBytes, NS::UInteger dataType)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MPS::MatrixDescriptor</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a67e5df7d48fc175efd5124b3b43b6366">matrixDescriptor</a>(NS::UInteger rows, NS::UInteger columns, NS::UInteger matrices, NS::UInteger rowBytes, NS::UInteger matrixBytes, NS::UInteger dataType)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MPS::MatrixDescriptor</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a04ce0dd1d4632ff8c4328e4b62d71fc0">rows</a>() const</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MPS::MatrixDescriptor</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,221 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::MatrixDescriptor 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_matrix_descriptor-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::MatrixDescriptor Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::MatrixDescriptor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_matrix_descriptor.png" alt=""/>
</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:a04ce0dd1d4632ff8c4328e4b62d71fc0" id="r_a04ce0dd1d4632ff8c4328e4b62d71fc0"><td class="memItemLeft" align="right" valign="top">NS::UInteger&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a04ce0dd1d4632ff8c4328e4b62d71fc0">rows</a> () const</td></tr>
<tr class="separator:a04ce0dd1d4632ff8c4328e4b62d71fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a7a99042b3c8afa037719ca316500a37b" id="r_a7a99042b3c8afa037719ca316500a37b"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7a99042b3c8afa037719ca316500a37b">matrixDescriptor</a> (NS::UInteger <a class="el" href="#a04ce0dd1d4632ff8c4328e4b62d71fc0">rows</a>, NS::UInteger columns, NS::UInteger rowBytes, NS::UInteger dataType)</td></tr>
<tr class="separator:a7a99042b3c8afa037719ca316500a37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67e5df7d48fc175efd5124b3b43b6366" id="r_a67e5df7d48fc175efd5124b3b43b6366"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a67e5df7d48fc175efd5124b3b43b6366">matrixDescriptor</a> (NS::UInteger <a class="el" href="#a04ce0dd1d4632ff8c4328e4b62d71fc0">rows</a>, NS::UInteger columns, NS::UInteger matrices, NS::UInteger rowBytes, NS::UInteger matrixBytes, NS::UInteger dataType)</td></tr>
<tr class="separator:a67e5df7d48fc175efd5124b3b43b6366"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a67e5df7d48fc175efd5124b3b43b6366" name="a67e5df7d48fc175efd5124b3b43b6366"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67e5df7d48fc175efd5124b3b43b6366">&#9670;&#160;</a></span>matrixDescriptor() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> * MPS::MatrixDescriptor::matrixDescriptor </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>rows</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>columns</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>matrices</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>rowBytes</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>matrixBytes</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>dataType</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7a99042b3c8afa037719ca316500a37b" name="a7a99042b3c8afa037719ca316500a37b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a99042b3c8afa037719ca316500a37b">&#9670;&#160;</a></span>matrixDescriptor() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_descriptor.html">MatrixDescriptor</a> * MPS::MatrixDescriptor::matrixDescriptor </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>rows</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>columns</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>rowBytes</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>dataType</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a04ce0dd1d4632ff8c4328e4b62d71fc0" name="a04ce0dd1d4632ff8c4328e4b62d71fc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04ce0dd1d4632ff8c4328e4b62d71fc0">&#9670;&#160;</a></span>rows()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE NS::UInteger MPS::MatrixDescriptor::rows </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 B

View File

@ -1,98 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::MatrixMultiplication Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a9f1400b36672bd6f228a80982e5b2717">alloc</a>()</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#ad30480456e66b79fa47086a3411c4921">encodeToCommandBuffer</a>(MTL::CommandBuffer *commandBuffer, Matrix *leftMatrix, Matrix *rightMatrix, Matrix *resultMatrix)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a35b1a908807eb8ececd0241531dea823">init</a>(MTL::Device *device, bool transposeLeft, bool transposeRight, NS::UInteger resultRows, NS::UInteger resultColumns, NS::UInteger interiorColumns, double alpha, double beta)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#ac24cc7d71cdf3fd5bc4291ba2bfcd9e7">setBatchSize</a>(NS::UInteger batchSize)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a82008429b4f14b5eba13142886b76cde">setBatchStart</a>(NS::UInteger batchStart)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a8b905b75090af80d97cf09b05cdad528">setLeftMatrixOrigin</a>(MTL::Origin origin)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a86647678c55adffc51114d036445ba10">setResultMatrixOrigin</a>(MTL::Origin origin)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#afaa45acd37397737ef4d94e8803be7e2">setRightMatrixOrigin</a>(MTL::Origin origin)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MPS::MatrixMultiplication</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,318 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::MatrixMultiplication 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_matrix_multiplication-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::MatrixMultiplication Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::MatrixMultiplication:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_matrix_multiplication.png" alt=""/>
</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:a35b1a908807eb8ececd0241531dea823" id="r_a35b1a908807eb8ececd0241531dea823"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a35b1a908807eb8ececd0241531dea823">init</a> (MTL::Device *device, bool transposeLeft, bool transposeRight, NS::UInteger resultRows, NS::UInteger resultColumns, NS::UInteger interiorColumns, double alpha, double beta)</td></tr>
<tr class="separator:a35b1a908807eb8ececd0241531dea823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad30480456e66b79fa47086a3411c4921" id="r_ad30480456e66b79fa47086a3411c4921"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad30480456e66b79fa47086a3411c4921">encodeToCommandBuffer</a> (MTL::CommandBuffer *commandBuffer, <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *leftMatrix, <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *rightMatrix, <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *resultMatrix)</td></tr>
<tr class="separator:ad30480456e66b79fa47086a3411c4921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b905b75090af80d97cf09b05cdad528" id="r_a8b905b75090af80d97cf09b05cdad528"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8b905b75090af80d97cf09b05cdad528">setLeftMatrixOrigin</a> (MTL::Origin origin)</td></tr>
<tr class="separator:a8b905b75090af80d97cf09b05cdad528"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa45acd37397737ef4d94e8803be7e2" id="r_afaa45acd37397737ef4d94e8803be7e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afaa45acd37397737ef4d94e8803be7e2">setRightMatrixOrigin</a> (MTL::Origin origin)</td></tr>
<tr class="separator:afaa45acd37397737ef4d94e8803be7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86647678c55adffc51114d036445ba10" id="r_a86647678c55adffc51114d036445ba10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a86647678c55adffc51114d036445ba10">setResultMatrixOrigin</a> (MTL::Origin origin)</td></tr>
<tr class="separator:a86647678c55adffc51114d036445ba10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82008429b4f14b5eba13142886b76cde" id="r_a82008429b4f14b5eba13142886b76cde"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a82008429b4f14b5eba13142886b76cde">setBatchStart</a> (NS::UInteger batchStart)</td></tr>
<tr class="separator:a82008429b4f14b5eba13142886b76cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac24cc7d71cdf3fd5bc4291ba2bfcd9e7" id="r_ac24cc7d71cdf3fd5bc4291ba2bfcd9e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac24cc7d71cdf3fd5bc4291ba2bfcd9e7">setBatchSize</a> (NS::UInteger batchSize)</td></tr>
<tr class="separator:ac24cc7d71cdf3fd5bc4291ba2bfcd9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a9f1400b36672bd6f228a80982e5b2717" id="r_a9f1400b36672bd6f228a80982e5b2717"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9f1400b36672bd6f228a80982e5b2717">alloc</a> ()</td></tr>
<tr class="separator:a9f1400b36672bd6f228a80982e5b2717"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9f1400b36672bd6f228a80982e5b2717" name="a9f1400b36672bd6f228a80982e5b2717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f1400b36672bd6f228a80982e5b2717">&#9670;&#160;</a></span>alloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a> * MPS::MatrixMultiplication::alloc </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad30480456e66b79fa47086a3411c4921" name="ad30480456e66b79fa47086a3411c4921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad30480456e66b79fa47086a3411c4921">&#9670;&#160;</a></span>encodeToCommandBuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::encodeToCommandBuffer </td>
<td>(</td>
<td class="paramtype">MTL::CommandBuffer *</td> <td class="paramname"><span class="paramname"><em>commandBuffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *</td> <td class="paramname"><span class="paramname"><em>leftMatrix</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *</td> <td class="paramname"><span class="paramname"><em>rightMatrix</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *</td> <td class="paramname"><span class="paramname"><em>resultMatrix</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a35b1a908807eb8ececd0241531dea823" name="a35b1a908807eb8ececd0241531dea823"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35b1a908807eb8ececd0241531dea823">&#9670;&#160;</a></span>init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html">MatrixMultiplication</a> * MPS::MatrixMultiplication::init </td>
<td>(</td>
<td class="paramtype">MTL::Device *</td> <td class="paramname"><span class="paramname"><em>device</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transposeLeft</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transposeRight</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>resultRows</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>resultColumns</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>interiorColumns</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>alpha</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>beta</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac24cc7d71cdf3fd5bc4291ba2bfcd9e7" name="ac24cc7d71cdf3fd5bc4291ba2bfcd9e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac24cc7d71cdf3fd5bc4291ba2bfcd9e7">&#9670;&#160;</a></span>setBatchSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::setBatchSize </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>batchSize</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a82008429b4f14b5eba13142886b76cde" name="a82008429b4f14b5eba13142886b76cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82008429b4f14b5eba13142886b76cde">&#9670;&#160;</a></span>setBatchStart()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::setBatchStart </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>batchStart</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8b905b75090af80d97cf09b05cdad528" name="a8b905b75090af80d97cf09b05cdad528"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b905b75090af80d97cf09b05cdad528">&#9670;&#160;</a></span>setLeftMatrixOrigin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::setLeftMatrixOrigin </td>
<td>(</td>
<td class="paramtype">MTL::Origin</td> <td class="paramname"><span class="paramname"><em>origin</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a86647678c55adffc51114d036445ba10" name="a86647678c55adffc51114d036445ba10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86647678c55adffc51114d036445ba10">&#9670;&#160;</a></span>setResultMatrixOrigin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::setResultMatrixOrigin </td>
<td>(</td>
<td class="paramtype">MTL::Origin</td> <td class="paramname"><span class="paramname"><em>origin</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afaa45acd37397737ef4d94e8803be7e2" name="afaa45acd37397737ef4d94e8803be7e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afaa45acd37397737ef4d94e8803be7e2">&#9670;&#160;</a></span>setRightMatrixOrigin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixMultiplication::setRightMatrixOrigin </td>
<td>(</td>
<td class="paramtype">MTL::Origin</td> <td class="paramname"><span class="paramname"><em>origin</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,93 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::MatrixVectorMultiplication Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MPS::MatrixVectorMultiplication</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#aeca798759333aae7fdd594835e93d16a">alloc</a>()</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MPS::MatrixVectorMultiplication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#adefd2759c843035c73da2d9aad8ffb8a">encodeToCommandBuffer</a>(MTL::CommandBuffer *commandBuffer, Matrix *inputMatrix, Vector *inputVector, Vector *resultVector)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MPS::MatrixVectorMultiplication</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#a62c065490befe32c6a59b888b1347c80">init</a>(MTL::Device *device, bool transpose, NS::UInteger rows, NS::UInteger columns, double alpha, double beta)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MPS::MatrixVectorMultiplication</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,213 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::MatrixVectorMultiplication 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_matrix_vector_multiplication-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::MatrixVectorMultiplication Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::MatrixVectorMultiplication:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_matrix_vector_multiplication.png" alt=""/>
</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:a62c065490befe32c6a59b888b1347c80" id="r_a62c065490befe32c6a59b888b1347c80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a62c065490befe32c6a59b888b1347c80">init</a> (MTL::Device *device, bool transpose, NS::UInteger rows, NS::UInteger columns, double alpha, double beta)</td></tr>
<tr class="separator:a62c065490befe32c6a59b888b1347c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adefd2759c843035c73da2d9aad8ffb8a" id="r_adefd2759c843035c73da2d9aad8ffb8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adefd2759c843035c73da2d9aad8ffb8a">encodeToCommandBuffer</a> (MTL::CommandBuffer *commandBuffer, <a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *inputMatrix, <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *inputVector, <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *resultVector)</td></tr>
<tr class="separator:adefd2759c843035c73da2d9aad8ffb8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aeca798759333aae7fdd594835e93d16a" id="r_aeca798759333aae7fdd594835e93d16a"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aeca798759333aae7fdd594835e93d16a">alloc</a> ()</td></tr>
<tr class="separator:aeca798759333aae7fdd594835e93d16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aeca798759333aae7fdd594835e93d16a" name="aeca798759333aae7fdd594835e93d16a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeca798759333aae7fdd594835e93d16a">&#9670;&#160;</a></span>alloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a> * MPS::MatrixVectorMultiplication::alloc </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adefd2759c843035c73da2d9aad8ffb8a" name="adefd2759c843035c73da2d9aad8ffb8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adefd2759c843035c73da2d9aad8ffb8a">&#9670;&#160;</a></span>encodeToCommandBuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE void MPS::MatrixVectorMultiplication::encodeToCommandBuffer </td>
<td>(</td>
<td class="paramtype">MTL::CommandBuffer *</td> <td class="paramname"><span class="paramname"><em>commandBuffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_matrix.html">Matrix</a> *</td> <td class="paramname"><span class="paramname"><em>inputMatrix</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *</td> <td class="paramname"><span class="paramname"><em>inputVector</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *</td> <td class="paramname"><span class="paramname"><em>resultVector</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a62c065490befe32c6a59b888b1347c80" name="a62c065490befe32c6a59b888b1347c80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62c065490befe32c6a59b888b1347c80">&#9670;&#160;</a></span>init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html">MatrixVectorMultiplication</a> * MPS::MatrixVectorMultiplication::init </td>
<td>(</td>
<td class="paramtype">MTL::Device *</td> <td class="paramname"><span class="paramname"><em>device</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transpose</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>rows</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>columns</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>alpha</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>beta</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,93 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::Vector Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_vector.html">MPS::Vector</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html#ac08919c16342247963b14766e65332a3">alloc</a>()</td><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html">MPS::Vector</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html#a2ea0c0575489e4689d19640d1da1b179">init</a>(MTL::Buffer *buffer, VectorDescriptor *descriptor)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html">MPS::Vector</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html#aa95af1607e9978c2757f8a5503a95244">init</a>(const MTL::Buffer *buffer, VectorDescriptor *descriptor)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_vector.html">MPS::Vector</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,183 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::Vector 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_vector-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::Vector Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::Vector:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_vector.png" alt=""/>
</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:a2ea0c0575489e4689d19640d1da1b179" id="r_a2ea0c0575489e4689d19640d1da1b179"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2ea0c0575489e4689d19640d1da1b179">init</a> (MTL::Buffer *buffer, <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *descriptor)</td></tr>
<tr class="separator:a2ea0c0575489e4689d19640d1da1b179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa95af1607e9978c2757f8a5503a95244" id="r_aa95af1607e9978c2757f8a5503a95244"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa95af1607e9978c2757f8a5503a95244">init</a> (const MTL::Buffer *buffer, <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *descriptor)</td></tr>
<tr class="separator:aa95af1607e9978c2757f8a5503a95244"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ac08919c16342247963b14766e65332a3" id="r_ac08919c16342247963b14766e65332a3"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac08919c16342247963b14766e65332a3">alloc</a> ()</td></tr>
<tr class="separator:ac08919c16342247963b14766e65332a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac08919c16342247963b14766e65332a3" name="ac08919c16342247963b14766e65332a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac08919c16342247963b14766e65332a3">&#9670;&#160;</a></span>alloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> * MPS::Vector::alloc </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa95af1607e9978c2757f8a5503a95244" name="aa95af1607e9978c2757f8a5503a95244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa95af1607e9978c2757f8a5503a95244">&#9670;&#160;</a></span>init() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> * MPS::Vector::init </td>
<td>(</td>
<td class="paramtype">const MTL::Buffer *</td> <td class="paramname"><span class="paramname"><em>buffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *</td> <td class="paramname"><span class="paramname"><em>descriptor</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2ea0c0575489e4689d19640d1da1b179" name="a2ea0c0575489e4689d19640d1da1b179"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ea0c0575489e4689d19640d1da1b179">&#9670;&#160;</a></span>init() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_vector.html">Vector</a> * MPS::Vector::init </td>
<td>(</td>
<td class="paramtype">MTL::Buffer *</td> <td class="paramname"><span class="paramname"><em>buffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *</td> <td class="paramname"><span class="paramname"><em>descriptor</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 658 B

View File

@ -1,92 +0,0 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">MPS::VectorDescriptor Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">MPS::VectorDescriptor</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html#a2bac55ff9bffcebba0755abcca09ec15">vectorDescriptor</a>(NS::UInteger length, NS::UInteger dataType)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">MPS::VectorDescriptor</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html#ab6534f1c9536613d8e78ed72fe12b275">vectorDescriptor</a>(NS::UInteger length, NS::UInteger vectors, NS::UInteger vectorBytes, NS::UInteger dataType)</td><td class="entry"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">MPS::VectorDescriptor</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -1,178 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: MPS::VectorDescriptor 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_m_p_s.html">MPS</a></li><li class="navelem"><a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_m_p_s_1_1_vector_descriptor-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">MPS::VectorDescriptor Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MPS::VectorDescriptor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_m_p_s_1_1_vector_descriptor.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2bac55ff9bffcebba0755abcca09ec15" id="r_a2bac55ff9bffcebba0755abcca09ec15"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2bac55ff9bffcebba0755abcca09ec15">vectorDescriptor</a> (NS::UInteger length, NS::UInteger dataType)</td></tr>
<tr class="separator:a2bac55ff9bffcebba0755abcca09ec15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6534f1c9536613d8e78ed72fe12b275" id="r_ab6534f1c9536613d8e78ed72fe12b275"><td class="memItemLeft" align="right" valign="top">static class <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab6534f1c9536613d8e78ed72fe12b275">vectorDescriptor</a> (NS::UInteger length, NS::UInteger vectors, NS::UInteger vectorBytes, NS::UInteger dataType)</td></tr>
<tr class="separator:ab6534f1c9536613d8e78ed72fe12b275"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2bac55ff9bffcebba0755abcca09ec15" name="a2bac55ff9bffcebba0755abcca09ec15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bac55ff9bffcebba0755abcca09ec15">&#9670;&#160;</a></span>vectorDescriptor() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> * MPS::VectorDescriptor::vectorDescriptor </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>length</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>dataType</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab6534f1c9536613d8e78ed72fe12b275" name="ab6534f1c9536613d8e78ed72fe12b275"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6534f1c9536613d8e78ed72fe12b275">&#9670;&#160;</a></span>vectorDescriptor() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_MTL_INLINE <a class="el" href="class_m_p_s_1_1_vector_descriptor.html">VectorDescriptor</a> * MPS::VectorDescriptor::vectorDescriptor </td>
<td>(</td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>length</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>vectors</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>vectorBytes</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NS::UInteger</td> <td class="paramname"><span class="paramname"><em>dataType</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/backend/metal/mps/<a class="el" href="mps_2gemm_8h_source.html">gemm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

File diff suppressed because one or more lines are too long

View File

@ -86,7 +86,7 @@ $(function() {
<tr class="even"><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="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2">eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, array &amp;output) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_inverse.html">mlx::core::Inverse</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#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="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_inverse.html#a4fcdda66a176b520fe4655ab91862aad">Inverse</a>(Stream stream)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_inverse.html">mlx::core::Inverse</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_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>(Stream stream, bool tri, bool upper)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_inverse.html">mlx::core::Inverse</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#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="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>

View File

@ -96,8 +96,8 @@ Inheritance diagram for mlx::core::Inverse:</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:a4fcdda66a176b520fe4655ab91862aad" id="r_a4fcdda66a176b520fe4655ab91862aad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4fcdda66a176b520fe4655ab91862aad">Inverse</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:a4fcdda66a176b520fe4655ab91862aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71467681e523abb725724490bfeb76ad" id="r_a71467681e523abb725724490bfeb76ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a71467681e523abb725724490bfeb76ad">Inverse</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>, bool <a class="el" href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">tri</a>, bool upper)</td></tr>
<tr class="separator:a71467681e523abb725724490bfeb76ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb1d8dc9bc4052a616023f65b3c7bb81" id="r_aeb1d8dc9bc4052a616023f65b3c7bb81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aeb1d8dc9bc4052a616023f65b3c7bb81">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;output) override</td></tr>
<tr class="separator:aeb1d8dc9bc4052a616023f65b3c7bb81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a086fbbc947ad232e01686ad063a78ed2" id="r_a086fbbc947ad232e01686ad063a78ed2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a086fbbc947ad232e01686ad063a78ed2">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;output) override</td></tr>
@ -160,8 +160,8 @@ Public Member Functions</h2></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="a4fcdda66a176b520fe4655ab91862aad" name="a4fcdda66a176b520fe4655ab91862aad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fcdda66a176b520fe4655ab91862aad">&#9670;&#160;</a></span>Inverse()</h2>
<a id="a71467681e523abb725724490bfeb76ad" name="a71467681e523abb725724490bfeb76ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71467681e523abb725724490bfeb76ad">&#9670;&#160;</a></span>Inverse()</h2>
<div class="memitem">
<div class="memproto">
@ -172,8 +172,17 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">mlx::core::Inverse::Inverse </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 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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>tri</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>upper</em></span>&#160;)</td>
</tr>
</table>
</td>

File diff suppressed because one or more lines are too long

View File

@ -109,7 +109,7 @@ $(function() {
<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_scatter.html#a0b51287fba789bb139ed61d40a0c636a">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) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_scatter.html">mlx::core::Scatter</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#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_scatter.html#a696c38b373a7a7c71bc112bd1117e322">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_scatter.html">mlx::core::Scatter</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 -->

View File

@ -116,6 +116,9 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a7623f590f8b77167b5ebb4f14bc9dc97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab304345db3d8cfeea15e27461ae2e678" id="r_ab304345db3d8cfeea15e27461ae2e678"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab304345db3d8cfeea15e27461ae2e678">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:ab304345db3d8cfeea15e27461ae2e678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a696c38b373a7a7c71bc112bd1117e322" id="r_a696c38b373a7a7c71bc112bd1117e322"><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="#a696c38b373a7a7c71bc112bd1117e322">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:a696c38b373a7a7c71bc112bd1117e322"><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:a696c38b373a7a7c71bc112bd1117e322"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a270fa8ccf36ce4bbbc23875139223934" id="r_a270fa8ccf36ce4bbbc23875139223934"><td class="memItemLeft" align="right" valign="top">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="#a270fa8ccf36ce4bbbc23875139223934">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) override</td></tr>
<tr class="memdesc:a270fa8ccf36ce4bbbc23875139223934"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:a270fa8ccf36ce4bbbc23875139223934"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -156,9 +159,6 @@ Public Member Functions</h2></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: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:a8849dc20991398f6f9a24d6785673853 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a8849dc20991398f6f9a24d6785673853"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853">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:a8849dc20991398f6f9a24d6785673853 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:a8849dc20991398f6f9a24d6785673853 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -430,6 +430,40 @@ Public Member Functions</h2></td></tr>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a696c38b373a7a7c71bc112bd1117e322" name="a696c38b373a7a7c71bc112bd1117e322"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a696c38b373a7a7c71bc112bd1117e322">&#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::Scatter::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</span><span class="mlabel">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>

View File

@ -0,0 +1,109 @@
<!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.10.0"/>
<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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<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="namespacemlx_1_1core_1_1fast.html">fast</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">mlx::core::fast::AffineQuantize 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_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473">AffineQuantize</a>(Stream stream, std::function&lt; std::vector&lt; array &gt;(std::vector&lt; array &gt;)&gt; fallback, int group_size, int bits, bool dequantize)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</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_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313">Custom</a>(Stream stream, std::function&lt; std::vector&lt; array &gt;(std::vector&lt; array &gt;)&gt; fallback)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html">mlx::core::fast::Custom</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_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587">DEFINE_PRINT</a>(AffineQuantize)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</a></td><td class="entry"></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_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd">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_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</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_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628">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_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</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#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="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584">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) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html">mlx::core::fast::Custom</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#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#a8849dc20991398f6f9a24d6785673853">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_primitive.html#ae1aff91354ce036596088a3e19474ecb">print</a>(std::ostream &amp;os)=0</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">pure 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_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91">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) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html">mlx::core::fast::Custom</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_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d">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_1fast_1_1_custom.html">mlx::core::fast::Custom</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 -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -0,0 +1,286 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::fast::AffineQuantize 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>
<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>
<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>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<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" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<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="namespacemlx_1_1core_1_1fast.html">fast</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">mlx::core::fast::AffineQuantize Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="fast__primitives_8h_source.html">fast_primitives.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mlx::core::fast::AffineQuantize:</div>
<div class="dyncontent">
<div class="center">
<img src="classmlx_1_1core_1_1fast_1_1_affine_quantize.png" usemap="#mlx::core::fast::AffineQuantize_map" alt=""/>
<map id="mlx::core::fast::AffineQuantize_map" name="mlx::core::fast::AffineQuantize_map">
<area href="classmlx_1_1core_1_1fast_1_1_custom.html" alt="mlx::core::fast::Custom" shape="rect" coords="0,56,178,80"/>
<area href="classmlx_1_1core_1_1_primitive.html" alt="mlx::core::Primitive" shape="rect" coords="0,0,178,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:a84d5fa9e8c3de407fbcc5f38d2ed1473" id="r_a84d5fa9e8c3de407fbcc5f38d2ed1473"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a84d5fa9e8c3de407fbcc5f38d2ed1473">AffineQuantize</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>, std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;)&gt; fallback, int group_size, int bits, bool <a class="el" href="group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077">dequantize</a>)</td></tr>
<tr class="separator:a84d5fa9e8c3de407fbcc5f38d2ed1473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b5d628628d245b38911118d4a0ff9fd" id="r_a3b5d628628d245b38911118d4a0ff9fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3b5d628628d245b38911118d4a0ff9fd">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:a3b5d628628d245b38911118d4a0ff9fd"><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:a3b5d628628d245b38911118d4a0ff9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63812b2abaf26ad7e7fa4c9e82db1628" id="r_a63812b2abaf26ad7e7fa4c9e82db1628"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63812b2abaf26ad7e7fa4c9e82db1628">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:a63812b2abaf26ad7e7fa4c9e82db1628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b8f1b1f633002c8ca6fa8f0ef4dd587" id="r_a4b8f1b1f633002c8ca6fa8f0ef4dd587"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4b8f1b1f633002c8ca6fa8f0ef4dd587">DEFINE_PRINT</a> (<a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a>)</td></tr>
<tr class="separator:a4b8f1b1f633002c8ca6fa8f0ef4dd587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classmlx_1_1core_1_1fast_1_1_custom')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html">mlx::core::fast::Custom</a></td></tr>
<tr class="memitem:a4186fea23f7156c38960426821fca313 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom" id="r_a4186fea23f7156c38960426821fca313"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313">Custom</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>, std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;)&gt; fallback)</td></tr>
<tr class="separator:a4186fea23f7156c38960426821fca313 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f4c3a4c48c6807faa36fb31e39dad8d inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom" id="r_a7f4c3a4c48c6807faa36fb31e39dad8d"><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_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d">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:a7f4c3a4c48c6807faa36fb31e39dad8d inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><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:a7f4c3a4c48c6807faa36fb31e39dad8d inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac77b28702654df8e7d882a49357a9584 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom" id="r_ac77b28702654df8e7d882a49357a9584"><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_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584">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) override</td></tr>
<tr class="memdesc:ac77b28702654df8e7d882a49357a9584 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:ac77b28702654df8e7d882a49357a9584 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74be4bcd0382f7f6400bf73fd5569c91 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom" id="r_a74be4bcd0382f7f6400bf73fd5569c91"><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_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91">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) override</td></tr>
<tr class="memdesc:a74be4bcd0382f7f6400bf73fd5569c91 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vector-Jacobian product. <br /></td></tr>
<tr class="separator:a74be4bcd0382f7f6400bf73fd5569c91 inherit pub_methods_classmlx_1_1core_1_1fast_1_1_custom"><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:ae1aff91354ce036596088a3e19474ecb inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_ae1aff91354ce036596088a3e19474ecb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">print</a> (std::ostream &amp;os)=0</td></tr>
<tr class="memdesc:ae1aff91354ce036596088a3e19474ecb inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the primitive. <br /></td></tr>
<tr class="separator:ae1aff91354ce036596088a3e19474ecb 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:a8849dc20991398f6f9a24d6785673853 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a8849dc20991398f6f9a24d6785673853"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853">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:a8849dc20991398f6f9a24d6785673853 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:a8849dc20991398f6f9a24d6785673853 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="a84d5fa9e8c3de407fbcc5f38d2ed1473" name="a84d5fa9e8c3de407fbcc5f38d2ed1473"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84d5fa9e8c3de407fbcc5f38d2ed1473">&#9670;&#160;</a></span>AffineQuantize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">mlx::core::fast::AffineQuantize::AffineQuantize </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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;(std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;)&gt;</td> <td class="paramname"><span class="paramname"><em>fallback</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>group_size</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bits</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>dequantize</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4b8f1b1f633002c8ca6fa8f0ef4dd587" name="a4b8f1b1f633002c8ca6fa8f0ef4dd587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b8f1b1f633002c8ca6fa8f0ef4dd587">&#9670;&#160;</a></span>DEFINE_PRINT()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mlx::core::fast::AffineQuantize::DEFINE_PRINT </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a></td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3b5d628628d245b38911118d4a0ff9fd" name="a3b5d628628d245b38911118d4a0ff9fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b5d628628d245b38911118d4a0ff9fd">&#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::fast::AffineQuantize::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">inline</span><span class="mlabel">override</span><span class="mlabel">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="a63812b2abaf26ad7e7fa4c9e82db1628" name="a63812b2abaf26ad7e7fa4c9e82db1628"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63812b2abaf26ad7e7fa4c9e82db1628">&#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::fast::AffineQuantize::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</span><span class="mlabel">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>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>mlx/<a class="el" href="fast__primitives_8h_source.html">fast_primitives.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

View File

@ -89,13 +89,14 @@ Inheritance diagram for mlx::core::fast::Custom:</div>
<div class="center">
<img src="classmlx_1_1core_1_1fast_1_1_custom.png" usemap="#mlx::core::fast::Custom_map" alt=""/>
<map id="mlx::core::fast::Custom_map" name="mlx::core::fast::Custom_map">
<area href="classmlx_1_1core_1_1_primitive.html" alt="mlx::core::Primitive" shape="rect" coords="637,0,882,24"/>
<area href="classmlx_1_1core_1_1fast_1_1_layer_norm.html" alt="mlx::core::fast::LayerNorm" shape="rect" coords="0,112,245,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html" alt="mlx::core::fast::LayerNormVJP" shape="rect" coords="255,112,500,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html" alt="mlx::core::fast::RMSNorm" shape="rect" coords="510,112,755,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html" alt="mlx::core::fast::RMSNormVJP" shape="rect" coords="765,112,1010,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html" alt="mlx::core::fast::RoPE" shape="rect" coords="1020,112,1265,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html" alt="mlx::core::fast::ScaledDotProductAttention" shape="rect" coords="1275,112,1520,136"/>
<area href="classmlx_1_1core_1_1_primitive.html" alt="mlx::core::Primitive" shape="rect" coords="765,0,1010,24"/>
<area href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html" alt="mlx::core::fast::AffineQuantize" shape="rect" coords="0,112,245,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_layer_norm.html" alt="mlx::core::fast::LayerNorm" shape="rect" coords="255,112,500,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html" alt="mlx::core::fast::LayerNormVJP" shape="rect" coords="510,112,755,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html" alt="mlx::core::fast::RMSNorm" shape="rect" coords="765,112,1010,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html" alt="mlx::core::fast::RMSNormVJP" shape="rect" coords="1020,112,1265,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html" alt="mlx::core::fast::RoPE" shape="rect" coords="1275,112,1520,136"/>
<area href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html" alt="mlx::core::fast::ScaledDotProductAttention" shape="rect" coords="1530,112,1775,136"/>
</map>
</div></div>
<table class="memberdecls">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -101,7 +101,7 @@ $(function() {
<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#a6993ce23a485b725b687628b77751ad2">register_library</a>(const std::string &amp;lib_name, const std::function&lt; std::string(const std::string &amp;)&gt; &amp;lib_path_func=get_colocated_mtllib_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"></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>
</table></div><!-- contents -->
<!-- start footer part -->

View File

@ -112,8 +112,8 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a60689f97347811b27e8c5ca23e0372bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45945f2efcd242d915ffa2171e92bf9d" id="r_a45945f2efcd242d915ffa2171e92bf9d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a45945f2efcd242d915ffa2171e92bf9d">register_library</a> (const std::string &amp;lib_name, const std::string &amp;lib_path)</td></tr>
<tr class="separator:a45945f2efcd242d915ffa2171e92bf9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6993ce23a485b725b687628b77751ad2" id="r_a6993ce23a485b725b687628b77751ad2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6993ce23a485b725b687628b77751ad2">register_library</a> (const std::string &amp;lib_name, const std::function&lt; std::string(const std::string &amp;)&gt; &amp;lib_path_func=<a class="el" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a>)</td></tr>
<tr class="separator:a6993ce23a485b725b687628b77751ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99ff72689b7beb65ad4541391b0eeabf" id="r_a99ff72689b7beb65ad4541391b0eeabf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a99ff72689b7beb65ad4541391b0eeabf">register_library</a> (const std::string &amp;lib_name)</td></tr>
<tr class="separator:a99ff72689b7beb65ad4541391b0eeabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86297d66de43ee77d0697f69c6bd0b87" id="r_a86297d66de43ee77d0697f69c6bd0b87"><td class="memItemLeft" align="right" valign="top">MTL::Library *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a86297d66de43ee77d0697f69c6bd0b87">get_library</a> (const std::string &amp;name)</td></tr>
<tr class="separator:a86297d66de43ee77d0697f69c6bd0b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a961d3cdb4bfb14c1a0b0aeb05609f56e" id="r_a961d3cdb4bfb14c1a0b0aeb05609f56e"><td class="memItemLeft" align="right" valign="top">MTL::Library *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a961d3cdb4bfb14c1a0b0aeb05609f56e">get_library</a> (const std::string &amp;name, const std::string &amp;source_string, bool cache=true)</td></tr>
@ -581,8 +581,8 @@ Public Member Functions</h2></td></tr>
</div>
</div>
<a id="a6993ce23a485b725b687628b77751ad2" name="a6993ce23a485b725b687628b77751ad2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6993ce23a485b725b687628b77751ad2">&#9670;&#160;</a></span>register_library() <span class="overload">[1/2]</span></h2>
<a id="a99ff72689b7beb65ad4541391b0eeabf" name="a99ff72689b7beb65ad4541391b0eeabf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99ff72689b7beb65ad4541391b0eeabf">&#9670;&#160;</a></span>register_library() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@ -590,12 +590,8 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">void mlx::core::metal::Device::register_library </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>lib_name</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>lib_name</em></span></td><td>)</td>
<td></td>
<td class="paramtype">const std::function&lt; std::string(const std::string &amp;)&gt; &amp;</td> <td class="paramname"><span class="paramname"><em>lib_path_func</em><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f">get_colocated_mtllib_path</a></span></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">

View File

@ -169,20 +169,20 @@ $(function() { codefold.init(0); });
<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:127</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:60</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:65</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:63</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:58</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:63</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:61</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:74</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:69</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:73</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:68</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:67</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:70</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:62</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:72</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:64</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:75</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:72</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:67</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: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:66</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:65</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:68</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:60</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:70</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:62</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:73</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -743,21 +743,21 @@ $(function() { codefold.init(0); });
<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_1metal_html_a269d591ec02e2f7c0f7a718fbfa37f73"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73">mlx::core::metal::binary</a></div><div class="ttdeci">const char * binary()</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:60</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:65</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:63</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:58</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:63</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:61</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4950c3248e70280b406a4f1430a85880"><div class="ttname"><a href="namespacemlx_1_1core.html#a4950c3248e70280b406a4f1430a85880">mlx::core::elem_to_loc</a></div><div class="ttdeci">stride_t elem_to_loc(int elem, const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; stride_t &gt; &amp;strides)</div><div class="ttdef"><b>Definition</b> utils.h:12</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:74</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:69</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:73</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:68</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:67</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:70</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:62</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:72</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:67</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: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:66</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:65</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:68</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:60</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_abd84ff6c5245e4e170b2ef5247594337a0db377921f4ce762c62526131097968f"><div class="ttname"><a href="namespacemlx_1_1core.html#abd84ff6c5245e4e170b2ef5247594337a0db377921f4ce762c62526131097968f">mlx::core::CopyType::General</a></div><div class="ttdeci">@ General</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:72</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:64</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:75</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:70</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:62</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:73</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -624,20 +624,20 @@ $(function() { codefold.init(0); });
<div class="ttc" id="acommon_2binary_8h_html_a70228731d29946574b238d21fb4b360c"><div class="ttname"><a href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a></div><div class="ttdeci">Op op</div><div class="ttdef"><b>Definition</b> binary.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html_a269d591ec02e2f7c0f7a718fbfa37f73"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a269d591ec02e2f7c0f7a718fbfa37f73">mlx::core::metal::binary</a></div><div class="ttdeci">const char * binary()</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:60</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:65</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:63</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:58</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:63</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:61</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4950c3248e70280b406a4f1430a85880"><div class="ttname"><a href="namespacemlx_1_1core.html#a4950c3248e70280b406a4f1430a85880">mlx::core::elem_to_loc</a></div><div class="ttdeci">stride_t elem_to_loc(int elem, const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; stride_t &gt; &amp;strides)</div><div class="ttdef"><b>Definition</b> utils.h:12</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:74</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:69</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:73</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:68</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:67</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:70</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:62</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:72</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:64</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:75</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:72</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:67</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: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:66</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:65</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:68</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:60</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:70</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:62</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:73</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -198,7 +198,7 @@ $(function() { codefold.init(0); });
<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:122</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:112</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 -->
<!-- start footer part -->

View File

@ -206,20 +206,20 @@ $(function() { codefold.init(0); });
<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_1metal_html_afac64fd56ac492d6baf6de7e8a00b039"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#afac64fd56ac492d6baf6de7e8a00b039">mlx::core::metal::unary</a></div><div class="ttdeci">const char * unary()</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:60</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:65</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:63</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:58</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:63</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:61</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a4950c3248e70280b406a4f1430a85880"><div class="ttname"><a href="namespacemlx_1_1core.html#a4950c3248e70280b406a4f1430a85880">mlx::core::elem_to_loc</a></div><div class="ttdeci">stride_t elem_to_loc(int elem, const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; stride_t &gt; &amp;strides)</div><div class="ttdef"><b>Definition</b> utils.h:12</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:74</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:69</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:73</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:68</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:67</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:70</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:62</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:72</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:64</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:75</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:72</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:67</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: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:66</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:65</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:68</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:60</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:70</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:62</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:73</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 -->
<!-- start footer part -->

View File

@ -168,7 +168,7 @@ $(function() { codefold.init(0); });
<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:526</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_copy_html"><div class="ttname"><a href="classmlx_1_1core_1_1_copy.html">mlx::core::Copy</a></div><div class="ttdef"><b>Definition</b> primitives.h:681</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_stop_gradient_html"><div class="ttname"><a href="classmlx_1_1core_1_1_stop_gradient.html">mlx::core::StopGradient</a></div><div class="ttdef"><b>Definition</b> primitives.h:1975</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_stop_gradient_html"><div class="ttname"><a href="classmlx_1_1core_1_1_stop_gradient.html">mlx::core::StopGradient</a></div><div class="ttdef"><b>Definition</b> primitives.h:1977</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:20</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:94</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:490</div></div>
@ -185,7 +185,7 @@ $(function() { codefold.init(0); });
<div class="ttc" id="anamespacemlx_1_1core_html_af776fd91dd60594dcfebbafd17f19068"><div class="ttname"><a href="namespacemlx_1_1core.html#af776fd91dd60594dcfebbafd17f19068">mlx::core::get_type_string</a></div><div class="ttdeci">std::string get_type_string(Dtype d)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_afd9e740e567f9d7c28e00113caf46d5f"><div class="ttname"><a href="namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f">mlx::core::is_static_cast</a></div><div class="ttdeci">bool is_static_cast(const Primitive &amp;p)</div><div class="ttdef"><b>Definition</b> compiled.h:13</div></div>
<div class="ttc" id="aprimitives_8h_html"><div class="ttname"><a href="primitives_8h.html">primitives.h</a></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:15</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><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Operations &#8212; MLX 0.16.1 documentation</title>
<title>Operations &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -131,8 +131,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -457,8 +457,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>
@ -894,10 +896,10 @@ document.write(`
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">transpose()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv48swapaxesRK5arrayii14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">swapaxes()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv48moveaxisRK5arrayii14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">moveaxis()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayiRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv49transposeRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">transpose()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">broadcast_to()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">broadcast_arrays()</span></code></a></li>
@ -1489,25 +1491,25 @@ document.write(`
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice"></span><span id="pad__arrayCR.std::vector:i:CR.std::vector:i:CR.std::vector:i:CR.arrayCR.StreamOrDevice"></span><span class="target" id="group__ops_1ga4fd04d6472ae7cdb94a174edfe338ea3"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">axes</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">low_pad_size</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">high_pad_size</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</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="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="pad__arrayCR.std::vector:i:CR.std::vector:i:CR.std::vector:i:CR.arrayCR.ssC.StreamOrDevice"></span><span class="target" id="group__ops_1ga81c2f138ea81d78affd42e9a646cacbc"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">axes</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">low_pad_size</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">high_pad_size</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;constant&quot;</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="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dd><p>Pad an array with a constant value. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice"></span><span id="pad__arrayCR.std::vector:std::pair:i.i::CR.arrayCR.StreamOrDevice"></span><span class="target" id="group__ops_1gaca4e00d5e4ed9e9f29d56a17f19c2e31"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">pair</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</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="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="pad__arrayCR.std::vector:std::pair:i.i::CR.arrayCR.ssC.StreamOrDevice"></span><span class="target" id="group__ops_1ga8495c9902b0a67f288918cb528d5abeb"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">pair</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;constant&quot;</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="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dd><p>Pad an array with a constant value along all axes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice"></span><span id="pad__arrayCR.std::pair:i.i:CR.arrayCR.StreamOrDevice"></span><span class="target" id="group__ops_1ga608164c4f5b4ac2fba374219285d90bc"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">pair</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</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="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice">
<span id="_CPPv33padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="_CPPv23padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice"></span><span id="pad__arrayCR.std::pair:i.i:CR.arrayCR.ssC.StreamOrDevice"></span><span class="target" id="group__ops_1gaeaae2f9637b0b3e2b4c6c0517e285935"></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">pad</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><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">pair</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;constant&quot;</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="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayiRK5array14StreamOrDevice">
<span id="_CPPv33padRK5arrayiRK5array14StreamOrDevice"></span><span id="_CPPv23padRK5arrayiRK5array14StreamOrDevice"></span><span id="pad__arrayCR.i.arrayCR.StreamOrDevice"></span><span class="target" id="group__ops_1ga2e57e26c4d7f3d18802c164656cf915c"></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">pad</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="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</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="#_CPPv43padRK5arrayiRK5array14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dt class="sig sig-object cpp" id="_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice">
<span id="_CPPv33padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice"></span><span id="_CPPv23padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice"></span><span id="pad__arrayCR.i.arrayCR.ssC.StreamOrDevice"></span><span class="target" id="group__ops_1ga5b8684361f57cbfd5e6eedf82a62ded0"></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">pad</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="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">pad_width</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">pad_value</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">(</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">)</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4StRK5arraybi14StreamOrDevice" title="std"><span class="n"><span class="pre">std</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;constant&quot;</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="#_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice" title="Link to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
@ -2962,10 +2964,10 @@ document.write(`
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">transpose()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv48swapaxesRK5arrayii14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">swapaxes()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv48moveaxisRK5arrayii14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">moveaxis()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayiRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv49transposeRK5array14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">transpose()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">broadcast_to()</span></code></a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice"><code class="docutils literal notranslate"><span class="pre">broadcast_arrays()</span></code></a></li>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Custom Extensions in MLX &#8212; MLX 0.16.1 documentation</title>
<title>Custom Extensions in MLX &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -131,8 +131,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -457,8 +457,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>
@ -1315,9 +1317,8 @@ below.</p>
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">ostringstream</span><span class="w"> </span><span class="n">kname</span><span class="p">;</span>
<span class="w"> </span><span class="n">kname</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;axpby_&quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;general_&quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">type_to_name</span><span class="p">(</span><span class="n">out</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// Make sure the metal library is available and look for it</span>
<span class="w"> </span><span class="c1">// in the same folder as this executable if needed</span>
<span class="w"> </span><span class="n">d</span><span class="p">.</span><span class="n">register_library</span><span class="p">(</span><span class="s">&quot;mlx_ext&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">metal</span><span class="o">::</span><span class="n">get_colocated_mtllib_path</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// Make sure the metal library is available</span>
<span class="w"> </span><span class="n">d</span><span class="p">.</span><span class="n">register_library</span><span class="p">(</span><span class="s">&quot;mlx_ext&quot;</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// Make a kernel from this metal library</span>
<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">kernel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">d</span><span class="p">.</span><span class="n">get_kernel</span><span class="p">(</span><span class="n">kname</span><span class="p">.</span><span class="n">str</span><span class="p">(),</span><span class="w"> </span><span class="s">&quot;mlx_ext&quot;</span><span class="p">);</span>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Metal Debugger &#8212; MLX 0.16.1 documentation</title>
<title>Metal Debugger &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -130,8 +130,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -456,8 +456,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>

View File

@ -85,6 +85,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="metal_2jit_2copy_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="metal_2jit_2copy_8h.html">copy.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="jit_2gemv__masked_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="jit_2gemv__masked_8h.html">gemv_masked.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="includes_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="includes_8h.html">includes.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="jit_2indexing_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="jit_2indexing_8h.html">indexing.h</a></td></tr>

View File

@ -86,7 +86,7 @@ Directories</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="kernels_2steel_2gemm_2gemm_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kernels_2steel_2gemm_2gemm_8h.html">gemm.h</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="gemm_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gemm_8h.html">gemm.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="gemm_2loader_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gemm_2loader_8h.html">loader.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@ -118,6 +118,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="gather_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gather_8h.html">gather.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="kernels_2gemv__masked_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kernels_2gemv__masked_8h.html">gemv_masked.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="metal_2kernels_2hadamard_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="metal_2kernels_2hadamard_8h.html">hadamard.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="kernels_2indexing_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="kernels_2indexing_8h.html">indexing.h</a></td></tr>

View File

@ -85,8 +85,6 @@ Directories</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1683daa6c50d5a1449f58a10604f9f12.html">mps</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>

View File

@ -39,6 +39,8 @@
<a href="radix_8h_source.html"/>
<a href="readwrite_8h_source.html"/>
<a href="gather_8h_source.html"/>
<a href="jit_2gemv__masked_8h_source.html"/>
<a href="kernels_2gemv__masked_8h_source.html"/>
<a href="common_2hadamard_8h_source.html"/>
<a href="metal_2kernels_2hadamard_8h_source.html"/>
<a href="jit_2indexing_8h_source.html"/>
@ -73,8 +75,7 @@
<a href="gemm_2params_8h_source.html"/>
<a href="defines_8h_source.html"/>
<a href="steel_2defines_8h_source.html"/>
<a href="kernels_2steel_2gemm_2gemm_8h_source.html"/>
<a href="mps_2gemm_8h_source.html"/>
<a href="gemm_8h_source.html"/>
<a href="steel__gemm__fused_8h_source.html"/>
<a href="steel__gemm__masked_8h_source.html"/>
<a href="steel__gemm__splitk_8h_source.html"/>
@ -165,6 +166,8 @@
<a href="radix_8h.html"/>
<a href="readwrite_8h.html"/>
<a href="gather_8h.html"/>
<a href="jit_2gemv__masked_8h.html"/>
<a href="kernels_2gemv__masked_8h.html"/>
<a href="common_2hadamard_8h.html"/>
<a href="metal_2kernels_2hadamard_8h.html"/>
<a href="jit_2indexing_8h.html"/>
@ -199,8 +202,7 @@
<a href="gemm_2params_8h.html"/>
<a href="defines_8h.html"/>
<a href="steel_2defines_8h.html"/>
<a href="kernels_2steel_2gemm_2gemm_8h.html"/>
<a href="mps_2gemm_8h.html"/>
<a href="gemm_8h.html"/>
<a href="steel__gemm__fused_8h.html"/>
<a href="steel__gemm__masked_8h.html"/>
<a href="steel__gemm__splitk_8h.html"/>
@ -334,6 +336,10 @@
<a href="struct_floor-members.html"/>
<a href="struct_floor_divide.html"/>
<a href="struct_floor_divide-members.html"/>
<a href="struct_g_e_m_v_kernel.html"/>
<a href="struct_g_e_m_v_kernel-members.html"/>
<a href="struct_g_e_m_v_t_kernel.html"/>
<a href="struct_g_e_m_v_t_kernel-members.html"/>
<a href="struct_greater.html"/>
<a href="struct_greater-members.html"/>
<a href="struct_greater_equal.html"/>
@ -844,6 +850,8 @@
<a href="structmlx_1_1core_1_1distributed_1_1_group-members.html"/>
<a href="namespacemlx_1_1core_1_1distributed_1_1detail.html"/>
<a href="namespacemlx_1_1core_1_1fast.html"/>
<a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html"/>
<a href="classmlx_1_1core_1_1fast_1_1_affine_quantize-members.html"/>
<a href="classmlx_1_1core_1_1fast_1_1_custom.html"/>
<a href="classmlx_1_1core_1_1fast_1_1_custom-members.html"/>
<a href="classmlx_1_1core_1_1fast_1_1_layer_norm.html"/>
@ -942,25 +950,6 @@
<a href="structmlx_1_1steel_1_1_transform_axpby-members.html"/>
<a href="structmlx_1_1steel_1_1_transform_none.html"/>
<a href="structmlx_1_1steel_1_1_transform_none-members.html"/>
<a href="namespace_m_p_s.html"/>
<a href="class_m_p_s_1_1_kernel.html"/>
<a href="class_m_p_s_1_1_kernel-members.html"/>
<a href="class_m_p_s_1_1_matrix.html"/>
<a href="class_m_p_s_1_1_matrix-members.html"/>
<a href="class_m_p_s_1_1_matrix_descriptor.html"/>
<a href="class_m_p_s_1_1_matrix_descriptor-members.html"/>
<a href="class_m_p_s_1_1_matrix_multiplication.html"/>
<a href="class_m_p_s_1_1_matrix_multiplication-members.html"/>
<a href="class_m_p_s_1_1_matrix_vector_multiplication.html"/>
<a href="class_m_p_s_1_1_matrix_vector_multiplication-members.html"/>
<a href="class_m_p_s_1_1_vector.html"/>
<a href="class_m_p_s_1_1_vector-members.html"/>
<a href="class_m_p_s_1_1_vector_descriptor.html"/>
<a href="class_m_p_s_1_1_vector_descriptor-members.html"/>
<a href="namespace_m_t_l.html"/>
<a href="namespace_m_t_l_1_1_private.html"/>
<a href="namespace_m_t_l_1_1_private_1_1_class.html"/>
<a href="namespace_m_t_l_1_1_private_1_1_selector.html"/>
<a href="namespacepocketfft.html"/>
<a href="namespacepocketfft_1_1detail.html"/>
<a href="structpocketfft_1_1detail_1_1add__vec.html"/>
@ -1041,7 +1030,6 @@
<a href="dir_ba4426224ef60f409462a2a12fa18f06.html"/>
<a href="dir_d0c977ea65824390717cdb7efc36c157.html"/>
<a href="dir_938ab0ecf10b8b860ff766c820f665fd.html"/>
<a href="dir_1683daa6c50d5a1449f58a10604f9f12.html"/>
<a href="dir_f60cd69d27fd3faa641c79056fff0e2d.html"/>
<a href="dir_76215a6c54e2b67053e723fc2395583c.html"/>
<a href="dir_47795aa8999234f6f402f7e89d34d08e.html"/>
@ -1050,7 +1038,6 @@
<a href="topics.html"/>
<a href="namespaces.html"/>
<a href="namespacemembers.html"/>
<a href="namespacemembers_a.html"/>
<a href="namespacemembers_b.html"/>
<a href="namespacemembers_c.html"/>
<a href="namespacemembers_d.html"/>
@ -1075,7 +1062,6 @@
<a href="namespacemembers_w.html"/>
<a href="namespacemembers_z.html"/>
<a href="namespacemembers_func.html"/>
<a href="namespacemembers_func_a.html"/>
<a href="namespacemembers_func_b.html"/>
<a href="namespacemembers_func_c.html"/>
<a href="namespacemembers_func_d.html"/>
@ -1121,8 +1107,6 @@
<a href="namespacemembers_type.html"/>
<a href="namespacemembers_enum.html"/>
<a href="namespacemembers_enum.html"/>
<a href="namespacemembers_enum.html"/>
<a href="namespacemembers_eval.html"/>
<a href="namespacemembers_eval.html"/>
<a href="namespacemembers_eval.html"/>
<a href="annotated.html"/>
@ -1186,6 +1170,7 @@
<a href="functions_vars_e.html"/>
<a href="functions_vars_f.html"/>
<a href="functions_vars_g.html"/>
<a href="functions_vars_h.html"/>
<a href="functions_vars_i.html"/>
<a href="functions_vars_j.html"/>
<a href="functions_vars_k.html"/>

View File

@ -85,8 +85,6 @@ $(function() {
<div class="contents">
<div class="textblock"><code>#include &lt;complex&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;ostream&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &quot;<a class="el" href="types_2complex_8h_source.html">mlx/types/complex.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="half__types_8h_source.html">mlx/types/half_types.h</a>&quot;</code><br />
</div>
@ -122,10 +120,6 @@ Functions</h2></td></tr>
<tr class="separator:add4794cc0ffe5d717fc146084a235d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad527b86818823db040195785efd7d724" id="r_ad527b86818823db040195785efd7d724"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Dtype::Kind</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">mlx::core::kindof</a> (const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;t)</td></tr>
<tr class="separator:ad527b86818823db040195785efd7d724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80509820694d2f74f0d262d13a90774b" id="r_a80509820694d2f74f0d262d13a90774b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a80509820694d2f74f0d262d13a90774b">mlx::core::dtype_to_array_protocol</a> (const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;t)</td></tr>
<tr class="separator:a80509820694d2f74f0d262d13a90774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14e0dfe96b41a04be91553799eb07594" id="r_a14e0dfe96b41a04be91553799eb07594"><td class="memItemLeft" align="right" valign="top"><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#a14e0dfe96b41a04be91553799eb07594">mlx::core::dtype_from_array_protocol</a> (std::string_view t)</td></tr>
<tr class="separator:a14e0dfe96b41a04be91553799eb07594"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>

View File

@ -89,155 +89,146 @@ $(function() { codefold.init(0); });
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;complex&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;<a class="code" href="types_2complex_8h.html">mlx/types/complex.h</a>&quot;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="half__types_8h.html">mlx/types/half_types.h</a>&quot;</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="preprocessor">#include &quot;<a class="code" href="types_2complex_8h.html">mlx/types/complex.h</a>&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;<a class="code" href="half__types_8h.html">mlx/types/half_types.h</a>&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</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">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="foldopen" id="foldopen00015" data-start="{" data-end="};">
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html"> 15</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> {</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_1_dtype.html#ade845ef5dcebead13a37fe696436e1da"> 16</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b">bool_</a>,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a">uint8</a>,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f">uint16</a>,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e">uint32</a>,</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07">uint64</a>,</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac">int8</a>,</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23">int16</a>,</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f">int32</a>,</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8">int64</a>,</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6">float16</a>,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3">float32</a>,</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa444fe01f3a7a54d1809aef0912846a47">bfloat16</a>,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa8c022579455bcd2c681f007e84f4e2cf">complex64</a>,</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> };</div>
<div class="foldopen" id="foldopen00013" data-start="{" data-end="};">
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html"> 13</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> {</div>
<div class="foldopen" id="foldopen00014" data-start="{" data-end="};">
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da"> 14</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa467afb5838aa377d55cce81f84c5512b">bool_</a>,</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa5f423e669d0a8f4ab7c4c3e6da27161a">uint8</a>,</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaa00ef2ef85ff67b7b39339886f19044f">uint16</a>,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa3de84ad0700f2a1571f633d399e1900e">uint32</a>,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa2e8d31865e5d4b9d8611e1b991baed07">uint64</a>,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac">int8</a>,</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23">int16</a>,</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f">int32</a>,</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</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"> 24</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"> 25</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"> 26</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"> 27</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>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </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="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715"> 32</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="l00033" name="l00033"></a><span class="lineno"> 33</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="l00034" name="l00034"></a><span class="lineno"> 34</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="l00035" name="l00035"></a><span class="lineno"> 35</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="l00036" name="l00036"></a><span class="lineno"> 36</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="l00037" name="l00037"></a><span class="lineno"> 37</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="l00038" name="l00038"></a><span class="lineno"> 38</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="l00039" name="l00039"></a><span class="lineno"> 39</span> };</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"> 31</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"> 32</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"> 33</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"> 34</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"> 35</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"> 36</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>
<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_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2d"> 41</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="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dafb203630099d501ff7c255a574bc4812">complexfloating</a>,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17">floating</a>,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9">inexact</a>,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10">signedinteger</a>,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da9c035d4e66b2c72f583cde964cf3a0d3">unsignedinteger</a>,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8">integer</a>,</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dab1bc248a7ff2b2e95569f56de68615df">number</a>,</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">generic</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> };</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"> 40</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"> 41</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"> 42</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"> 43</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"> 44</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"> 45</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"> 46</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"> 47</span> <span class="keyword">generic</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> };</div>
</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb"> 52</a></span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66"> 53</a></span> <span class="keyword">const</span> uint8_t <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1"> 54</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_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>, uint8_t <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>), <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>) {}</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#a3b3bc059be5836476da3cb88a4f5e9fd"> 55</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="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</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#ac80e96d51ba9e1ce651cac2a6d3b63bb"> 50</a></span> <a class="code hl_enumeration" href="structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1da">Val</a> <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66"> 51</a></span> <span class="keyword">const</span> uint8_t <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1"> 52</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_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>, uint8_t <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>), <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>) {}</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> <a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">val</a>;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>};</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</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"><a class="line" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82"> 58</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="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a113d2bac7e4aa6a4cb4a5c3242527b82"> 60</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="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68"> 62</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="l00063" name="l00063"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812"> 63</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="l00064" name="l00064"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e"> 64</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="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8"> 65</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="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#a892e934e146dd938d144cee8813ca672"> 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#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="l00068" name="l00068"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07"> 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#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="l00069" name="l00069"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3"> 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#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="l00070" name="l00070"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8"> 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#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="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec"> 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#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="l00073" name="l00073"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319"> 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#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="l00074" name="l00074"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7"> 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#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="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4"> 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#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="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a70b8e88c9df750af984757105af33423"> 77</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="l00078" name="l00078"></a><span class="lineno"> 78</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="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a"> 79</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="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534"> 80</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="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001"> 81</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="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81"> 82</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="l00083" name="l00083"></a><span class="lineno"> 83</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="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b"> 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#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="l00085" name="l00085"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d"> 85</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="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2"> 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> <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="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7"> 88</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="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704"> 89</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="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8"> 90</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="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d"> 91</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="l00060" name="l00060"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9778d50afbf456b0bd738751243b3b68"> 60</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="l00061" name="l00061"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a312a70c487366968af5e6cbf5038c812"> 61</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="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac63820d6fe10545907c33faf466a929e"> 62</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="l00063" name="l00063"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1f42e3dd4787d2ecec7114a12daefec8"> 63</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="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672"> 65</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="l00066" name="l00066"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07"> 66</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="l00067" name="l00067"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3"> 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#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="l00068" name="l00068"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8"> 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#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="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#abf228ee9d8ec48c03bb15adcc4e1f3ec"> 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#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="l00071" name="l00071"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319"> 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#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="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a514cf8b4e6f0a6af3a867e752f4338f7"> 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#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="l00073" name="l00073"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af99db87e0078bfcdb383f5689bc874d4"> 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#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="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#a70b8e88c9df750af984757105af33423"> 75</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="l00076" name="l00076"></a><span class="lineno"> 76</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="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a"> 77</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="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534"> 78</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="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001"> 79</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="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a42e9706a5521bb25eaf12ccad94bfc81"> 80</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="l00081" name="l00081"></a><span class="lineno"> 81</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="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b"> 82</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="l00083" name="l00083"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a069c0aab6b36aef34419534ec4a4310d"> 83</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="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2"> 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> <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="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#aca9e69b06f4212eba44bf0ce6711d5f7"> 86</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="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704"> 87</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="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8"> 88</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="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d"> 89</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="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497"> 91</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="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a505922e54acd43114308e3bdbda0e497"> 93</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="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="foldopen" id="foldopen00095" data-start="{" data-end="}">
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95"> 95</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="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> t.<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</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="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95"> 93</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="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> t.<a class="code hl_variable" href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">size</a>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>}</div>
</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#ad527b86818823db040195785efd7d724"> 97</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="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724"> 99</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="l00100" name="l00100"></a><span class="lineno"> 100</span> </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="structmlx_1_1core_1_1_type_to_dtype.html"> 102</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="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13"> 103</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="l00104" name="l00104"></a><span class="lineno"> 104</span>};</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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_1_type_to_dtype.html"> 100</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="l00101" name="l00101"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_type_to_dtype.html#aefdd0fd6a5bbf0197a3996ccd4adea13"> 101</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="l00102" name="l00102"></a><span class="lineno"> 102</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"> 106</span><span class="comment">// Array protocol typestring for Dtype</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a80509820694d2f74f0d262d13a90774b"> 107</a></span>std::string <a class="code hl_function" href="namespacemlx_1_1core.html#a80509820694d2f74f0d262d13a90774b">dtype_to_array_protocol</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="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment">// Dtype from array protocol type string</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a14e0dfe96b41a04be91553799eb07594"> 109</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#a14e0dfe96b41a04be91553799eb07594">dtype_from_array_protocol</a>(std::string_view t);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</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:85</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:84</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:60</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a14e0dfe96b41a04be91553799eb07594"><div class="ttname"><a href="namespacemlx_1_1core.html#a14e0dfe96b41a04be91553799eb07594">mlx::core::dtype_from_array_protocol</a></div><div class="ttdeci">Dtype dtype_from_array_protocol(std::string_view t)</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:65</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:81</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:63</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:82</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:83</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:82</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:58</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:63</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:79</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:61</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:80</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:74</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:80</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:69</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:73</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:77</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:68</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a80509820694d2f74f0d262d13a90774b"><div class="ttname"><a href="namespacemlx_1_1core.html#a80509820694d2f74f0d262d13a90774b">mlx::core::dtype_to_array_protocol</a></div><div class="ttdeci">std::string dtype_to_array_protocol(const Dtype &amp;t)</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:67</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:70</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:62</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:72</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:64</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:79</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:72</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:78</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:67</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:71</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: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:66</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:65</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:68</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:60</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:70</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:62</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:77</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:95</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:75</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:15</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:41</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:93</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:73</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_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>
<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>
<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>
@ -246,16 +237,16 @@ $(function() { codefold.init(0); });
<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>
<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>
<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>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac80e96d51ba9e1ce651cac2a6d3b63bb"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">mlx::core::Dtype::val</a></div><div class="ttdeci">Val val</div><div class="ttdef"><b>Definition</b> dtype.h:52</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:32</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_ac80e96d51ba9e1ce651cac2a6d3b63bb"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#ac80e96d51ba9e1ce651cac2a6d3b63bb">mlx::core::Dtype::val</a></div><div class="ttdeci">Val val</div><div class="ttdef"><b>Definition</b> dtype.h:50</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>
<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>
<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>
<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>
<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>
<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>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adc24e03df52237e9ba03e2451f321b66"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">mlx::core::Dtype::size</a></div><div class="ttdeci">const uint8_t size</div><div class="ttdef"><b>Definition</b> dtype.h:53</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:16</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adc24e03df52237e9ba03e2451f321b66"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adc24e03df52237e9ba03e2451f321b66">mlx::core::Dtype::size</a></div><div class="ttdeci">const uint8_t size</div><div class="ttdef"><b>Definition</b> dtype.h:51</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>
<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>
<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>
@ -269,8 +260,8 @@ $(function() { codefold.init(0); });
<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>
<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>
<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>
<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:54</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:102</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:52</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:100</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:34</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="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Linear Regression &#8212; MLX 0.16.1 documentation</title>
<title>Linear Regression &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -131,8 +131,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -457,8 +457,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>LLM inference &#8212; MLX 0.16.1 documentation</title>
<title>LLM inference &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -131,8 +131,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -457,8 +457,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>
@ -864,7 +866,7 @@ is defined in less than 200 lines of python.</p>
module to concisely define the model architecture.</p>
<section id="attention-layer">
<h3>Attention layer<a class="headerlink" href="#attention-layer" title="Link to this heading">#</a></h3>
<p>We will start with the llama attention layer which notably uses the RoPE
<p>We will start with the Llama attention layer which notably uses the RoPE
positional encoding. <a class="footnote-reference brackets" href="#id4" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a> In addition, our attention layer will optionally use a
key/value cache that will be concatenated with the provided keys and values to
support efficient inference.</p>

View File

@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Multi-Layer Perceptron &#8212; MLX 0.16.1 documentation</title>
<title>Multi-Layer Perceptron &#8212; MLX 0.16.2 documentation</title>
@ -36,7 +36,7 @@
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>
<script src="../_static/documentation_options.js?v=179565df"></script>
<script src="../_static/documentation_options.js?v=00e1e5b9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@ -131,8 +131,8 @@
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.1 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.1 documentation - Home"/>`);</script>
<img src="../_static/mlx_logo.png" class="logo__image only-light" alt="MLX 0.16.2 documentation - Home"/>
<script>document.write(`<img src="../_static/mlx_logo_dark.png" class="logo__image only-dark" alt="MLX 0.16.2 documentation - Home"/>`);</script>
</a></div>
@ -457,8 +457,10 @@
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../python/linalg.html">Linear Algebra</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-9"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.inv.html">mlx.core.linalg.inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.tri_inv.html">mlx.core.linalg.tri_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.norm.html">mlx.core.linalg.norm</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky.html">mlx.core.linalg.cholesky</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.cholesky_inv.html">mlx.core.linalg.cholesky_inv</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.qr.html">mlx.core.linalg.qr</a></li>
<li class="toctree-l2"><a class="reference internal" href="../python/_autosummary/mlx.core.linalg.svd.html">mlx.core.linalg.svd</a></li>
</ul>
@ -884,7 +886,7 @@ set:</p>
</div>
<p>Next, setup the problem parameters and load the data. To load the data, you need our
<a class="reference external" href="https://github.com/ml-explore/mlx-examples/blob/main/mnist/mnist.py">mnist data loader</a>, which
we will import as <cite>mnist</cite>.</p>
we will import as <code class="docutils literal notranslate"><span class="pre">mnist</span></code>.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">num_layers</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">hidden_dim</span> <span class="o">=</span> <span class="mi">32</span>
<span class="n">num_classes</span> <span class="o">=</span> <span class="mi">10</span>

View File

@ -106,6 +106,12 @@ Functions</h2></td></tr>
<tr class="memitem:a5a48ce1f5ec64ef14fd8a3c42e4fcba9" id="r_a5a48ce1f5ec64ef14fd8a3c42e4fcba9"><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_1_1fast.html#a5a48ce1f5ec64ef14fd8a3c42e4fcba9">mlx::core::fast::scaled_dot_product_attention</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;queries, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;keys, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;values, const float scale, const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;mask=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:a5a48ce1f5ec64ef14fd8a3c42e4fcba9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes: O = softmax(Q @ K.T) @ V. <br /></td></tr>
<tr class="separator:a5a48ce1f5ec64ef14fd8a3c42e4fcba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b5f6886b2288cb6dfdd8598579f080" id="r_aa4b5f6886b2288cb6dfdd8598579f080"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080">mlx::core::fast::affine_quantize</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:aa4b5f6886b2288cb6dfdd8598579f080"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a638c7e9b9ea8677f01786d8f9738baf8" id="r_a638c7e9b9ea8677f01786d8f9738baf8"><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_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8">mlx::core::fast::affine_quantize</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;scales, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;biases, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:a638c7e9b9ea8677f01786d8f9738baf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c7ef41409d6fb378008e67b6fab328" id="r_a12c7ef41409d6fb378008e67b6fab328"><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_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328">mlx::core::fast::affine_dequantize</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;scales, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;biases, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:a12c7ef41409d6fb378008e67b6fab328"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->

View File

@ -124,13 +124,37 @@ $(function() { codefold.init(0); });
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> std::optional&lt;array&gt;&amp; mask = std::nullopt,</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s = {});</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="comment">// namespace mlx::core::fast</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080"> 42</a></span>std::tuple&lt;array, array, array&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080">affine_quantize</a>(</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; w,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">int</span> group_size = 64,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">int</span> bits = 4,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s = {});</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"><a class="line" href="namespacemlx_1_1core_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8"> 48</a></span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080">affine_quantize</a>(</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; w,</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; scales,</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; biases,</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">int</span> group_size = 64,</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> bits = 4,</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s = {});</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"><a class="line" href="namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328"> 56</a></span><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328">affine_dequantize</a>(</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; w,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; scales,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; biases,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">int</span> group_size = 64,</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">int</span> bits = 4,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s = {});</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="comment">// namespace mlx::core::fast</span></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:20</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html">mlx::core::fast</a></div><div class="ttdef"><b>Definition</b> fast.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_a01bd533ebd0e2415c4ee30032d51d7bf"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#a01bd533ebd0e2415c4ee30032d51d7bf">mlx::core::fast::layer_norm</a></div><div class="ttdeci">array layer_norm(const array &amp;x, const std::optional&lt; array &gt; &amp;weight, const std::optional&lt; array &gt; &amp;bias, float eps, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_a12c7ef41409d6fb378008e67b6fab328"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328">mlx::core::fast::affine_dequantize</a></div><div class="ttdeci">array affine_dequantize(const array &amp;w, const array &amp;scales, const array &amp;biases, int group_size=64, int bits=4, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_a44a77225d1e90fd5bf81caccf8c20061"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#a44a77225d1e90fd5bf81caccf8c20061">mlx::core::fast::rope</a></div><div class="ttdeci">array rope(const array &amp;x, int dims, bool traditional, float base, float scale, int offset, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_a5a48ce1f5ec64ef14fd8a3c42e4fcba9"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#a5a48ce1f5ec64ef14fd8a3c42e4fcba9">mlx::core::fast::scaled_dot_product_attention</a></div><div class="ttdeci">array scaled_dot_product_attention(const array &amp;queries, const array &amp;keys, const array &amp;values, const float scale, const std::optional&lt; array &gt; &amp;mask=std::nullopt, StreamOrDevice s={})</div><div class="ttdoc">Computes: O = softmax(Q @ K.T) @ V.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_aa4b5f6886b2288cb6dfdd8598579f080"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080">mlx::core::fast::affine_quantize</a></div><div class="ttdeci">std::tuple&lt; array, array, array &gt; affine_quantize(const array &amp;w, int group_size=64, int bits=4, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html_ac7b620275c6386f822b7aacc6b312e62"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html#ac7b620275c6386f822b7aacc6b312e62">mlx::core::fast::rms_norm</a></div><div class="ttdeci">array rms_norm(const array &amp;x, const array &amp;weight, float eps, StreamOrDevice s={})</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a95fc1013cc48fbfee0c54310711a5e58"><div class="ttname"><a href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">mlx::core::StreamOrDevice</a></div><div class="ttdeci">std::variant&lt; std::monostate, Stream, Device &gt; StreamOrDevice</div><div class="ttdef"><b>Definition</b> utils.h:14</div></div>
<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div></div>

View File

@ -101,6 +101,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">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html">mlx::core::fast::ScaledDotProductAttention</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>

View File

@ -339,11 +339,52 @@ $(function() { codefold.init(0); });
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</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="comment">// namespace mlx::core::fast</span></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="classmlx_1_1core_1_1fast_1_1_affine_quantize.html"> 215</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a> : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_custom.html">Custom</a> {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">public</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="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473"> 217</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473">AffineQuantize</a>(</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> std::function&lt;std::vector&lt;array&gt;(std::vector&lt;array&gt;)&gt; fallback,</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordtype">int</span> group_size,</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">int</span> bits,</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077">dequantize</a>)</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> : <a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_custom.html">Custom</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, fallback),</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> group_size_(group_size),</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> bits_(bits),</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> dequantize_(<a class="code hl_function" href="group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077">dequantize</a>) {}</div>
</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="foldopen" id="foldopen00228" data-start="{" data-end="}">
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd"> 228</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)<span class="keyword"></span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="keyword"> override </span>{</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;NYI&quot;</span>);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> }</div>
</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"><a class="line" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628"> 233</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587"> 236</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587">DEFINE_PRINT</a>(<a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">AffineQuantize</a>);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> std::function&lt;std::vector&lt;array&gt;(std::vector&lt;array&gt;)&gt; fallback_;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordtype">int</span> group_size_;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordtype">int</span> bits_;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">bool</span> dequantize_;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>};</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">// namespace mlx::core::fast</span></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_a46e6257397a662528f9f831842ac456a"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">mlx::core::Primitive::stream</a></div><div class="ttdeci">const Stream &amp; stream()</div><div class="ttdoc">The stream the primitive will run on.</div><div class="ttdef"><b>Definition</b> primitives.h:58</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a6140a502af4c2bbbc776ab26e9afebcd"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">mlx::core::Primitive::is_equivalent</a></div><div class="ttdeci">virtual bool is_equivalent(const Primitive &amp;other) const</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:107</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:20</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_affine_quantize_html"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html">mlx::core::fast::AffineQuantize</a></div><div class="ttdef"><b>Definition</b> fast_primitives.h:215</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_affine_quantize_html_a3b5d628628d245b38911118d4a0ff9fd"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd">mlx::core::fast::AffineQuantize::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div><div class="ttdef"><b>Definition</b> fast_primitives.h:228</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_affine_quantize_html_a4b8f1b1f633002c8ca6fa8f0ef4dd587"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587">mlx::core::fast::AffineQuantize::DEFINE_PRINT</a></div><div class="ttdeci">DEFINE_PRINT(AffineQuantize)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_affine_quantize_html_a63812b2abaf26ad7e7fa4c9e82db1628"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628">mlx::core::fast::AffineQuantize::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_affine_quantize_html_a84d5fa9e8c3de407fbcc5f38d2ed1473"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473">mlx::core::fast::AffineQuantize::AffineQuantize</a></div><div class="ttdeci">AffineQuantize(Stream stream, std::function&lt; std::vector&lt; array &gt;(std::vector&lt; array &gt;)&gt; fallback, int group_size, int bits, bool dequantize)</div><div class="ttdef"><b>Definition</b> fast_primitives.h:217</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html">mlx::core::fast::Custom</a></div><div class="ttdef"><b>Definition</b> fast_primitives.h:10</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html_a4186fea23f7156c38960426821fca313"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html#a4186fea23f7156c38960426821fca313">mlx::core::fast::Custom::Custom</a></div><div class="ttdeci">Custom(Stream stream, std::function&lt; std::vector&lt; array &gt;(std::vector&lt; array &gt;)&gt; fallback)</div><div class="ttdef"><b>Definition</b> fast_primitives.h:12</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html_a74be4bcd0382f7f6400bf73fd5569c91"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91">mlx::core::fast::Custom::vjp</a></div><div class="ttdeci">virtual std::vector&lt; array &gt; vjp(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) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
@ -384,6 +425,7 @@ $(function() { codefold.init(0); });
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention_html_ad51666e69f670e286293aff96eb435a9"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ad51666e69f670e286293aff96eb435a9">mlx::core::fast::ScaledDotProductAttention::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out)</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention_html_ae20851e002f7fcb6d4f97817596f6328"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328">mlx::core::fast::ScaledDotProductAttention::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div><div class="ttdef"><b>Definition</b> fast_primitives.h:194</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention_html_af08b1294f3f93505a96fdfa85b1edd62"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62">mlx::core::fast::ScaledDotProductAttention::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &amp;other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
<div class="ttc" id="agroup__ops_html_gabff758a5c1ce32ad7e8b78aba0164077"><div class="ttname"><a href="group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077">mlx::core::dequantize</a></div><div class="ttdeci">array dequantize(const array &amp;w, const array &amp;scales, const array &amp;biases, int group_size=64, int bits=4, StreamOrDevice s={})</div><div class="ttdoc">Dequantize a matrix produced by quantize()</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html">mlx::core::fast</a></div><div class="ttdef"><b>Definition</b> fast.h:9</div></div>
<div class="ttc" id="aprimitives_8h_html"><div class="ttname"><a href="primitives_8h.html">primitives.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_stream_html"><div class="ttname"><a href="structmlx_1_1core_1_1_stream.html">mlx::core::Stream</a></div><div class="ttdef"><b>Definition</b> stream.h:9</div></div>

View File

@ -102,13 +102,14 @@ $(function() {
<tr id="row_0_1_2_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_1_2_0_" class="arrow" onclick="dynsection.toggleFolder('0_1_2_0_')">&#9658;</span><span id="img_0_1_2_0_" class="iconfclosed" onclick="dynsection.toggleFolder('0_1_2_0_')">&#160;</span><a class="el" href="dir_4336740ec0075891704443b417fef6cb.html" target="_self">jit</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2jit_2arange_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2jit_2arange_8h.html" target="_self">arange.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2jit_2copy_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2jit_2copy_8h.html" target="_self">copy.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="includes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="includes_8h.html" target="_self">includes.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2indexing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2indexing_8h.html" target="_self">indexing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2jit_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2jit_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2scan_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2scan_8h.html" target="_self">scan.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2softmax_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2softmax_8h.html" target="_self">softmax.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2steel__conv_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2steel__conv_8h.html" target="_self">steel_conv.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="steel__gemm_8h_source.html"><span class="icondoc"></span></a><a class="el" href="steel__gemm_8h.html" target="_self">steel_gemm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2gemv__masked_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2gemv__masked_8h.html" target="_self">gemv_masked.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="includes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="includes_8h.html" target="_self">includes.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2indexing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2indexing_8h.html" target="_self">indexing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2jit_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2jit_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2scan_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2scan_8h.html" target="_self">scan.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2softmax_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2softmax_8h.html" target="_self">softmax.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="jit_2steel__conv_8h_source.html"><span class="icondoc"></span></a><a class="el" href="jit_2steel__conv_8h.html" target="_self">steel_conv.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_0_9_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="steel__gemm_8h_source.html"><span class="icondoc"></span></a><a class="el" href="steel__gemm_8h.html" target="_self">steel_gemm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_1_2_1_" class="arrow" onclick="dynsection.toggleFolder('0_1_2_1_')">&#9658;</span><span id="img_0_1_2_1_" class="iconfclosed" onclick="dynsection.toggleFolder('0_1_2_1_')">&#160;</span><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html" target="_self">kernels</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_0_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span id="arr_0_1_2_1_0_" class="arrow" onclick="dynsection.toggleFolder('0_1_2_1_0_')">&#9658;</span><span id="img_0_1_2_1_0_" class="iconfclosed" onclick="dynsection.toggleFolder('0_1_2_1_0_')">&#160;</span><a class="el" href="dir_8c751ccfa9f494753d976761a9d60a84.html" target="_self">fft</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><a href="radix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="radix_8h.html" target="_self">radix.h</a></td><td class="desc"></td></tr>
@ -136,7 +137,7 @@ $(function() {
<tr id="row_0_1_2_1_2_1_0_0_" class="odd" style="display:none;"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="steel__gemm__fused_8h_source.html"><span class="icondoc"></span></a><a class="el" href="steel__gemm__fused_8h.html" target="_self">steel_gemm_fused.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_0_1_" class="odd" style="display:none;"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="steel__gemm__masked_8h_source.html"><span class="icondoc"></span></a><a class="el" href="steel__gemm__masked_8h.html" target="_self">steel_gemm_masked.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:128px;display:inline-block;">&#160;</span><a href="steel__gemm__splitk_8h_source.html"><span class="icondoc"></span></a><a class="el" href="steel__gemm__splitk_8h.html" target="_self">steel_gemm_splitk.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_1_" class="odd" style="display:none;"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="kernels_2steel_2gemm_2gemm_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2steel_2gemm_2gemm_8h.html" target="_self">gemm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_1_" class="odd" style="display:none;"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="gemm_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gemm_8h.html" target="_self">gemm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_2_" class="odd" style="display:none;"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="gemm_2loader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gemm_2loader_8h.html" target="_self">loader.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_3_" class="odd" style="display:none;"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="mma_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mma_8h.html" target="_self">mma.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_2_1_4_" class="odd" style="display:none;"><td class="entry"><span style="width:112px;display:inline-block;">&#160;</span><a href="gemm_2params_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gemm_2params_8h.html" target="_self">params.h</a></td><td class="desc"></td></tr>
@ -157,71 +158,70 @@ $(function() {
<tr id="row_0_1_2_1_14_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="expm1f_8h_source.html"><span class="icondoc"></span></a><a class="el" href="expm1f_8h.html" target="_self">expm1f.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_15_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="backend_2metal_2kernels_2fft_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2kernels_2fft_8h.html" target="_self">fft.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_16_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="gather_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gather_8h.html" target="_self">gather.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_17_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2hadamard_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2hadamard_8h.html" target="_self">hadamard.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_18_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2indexing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2indexing_8h.html" target="_self">indexing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_19_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="quantized_8h_source.html"><span class="icondoc"></span></a><a class="el" href="quantized_8h.html" target="_self">quantized.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_20_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_21_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="reduce__utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reduce__utils_8h.html" target="_self">reduce_utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_22_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="scaled__dot__product__attention__params_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scaled__dot__product__attention__params_8h.html" target="_self">scaled_dot_product_attention_params.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_23_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2scan_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2scan_8h.html" target="_self">scan.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_24_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="scatter_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scatter_8h.html" target="_self">scatter.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_25_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2softmax_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2softmax_8h.html" target="_self">softmax.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_26_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="sort_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sort_8h.html" target="_self">sort.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_27_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2ternary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2ternary_8h.html" target="_self">ternary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_28_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ternary__ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ternary__ops_8h.html" target="_self">ternary_ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_29_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2unary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2unary_8h.html" target="_self">unary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_30_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="unary__ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="unary__ops_8h.html" target="_self">unary_ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_31_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="backend_2metal_2kernels_2utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2kernels_2utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_2_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_1_2_2_" class="arrow" onclick="dynsection.toggleFolder('0_1_2_2_')">&#9658;</span><span id="img_0_1_2_2_" class="iconfclosed" onclick="dynsection.toggleFolder('0_1_2_2_')">&#160;</span><a class="el" href="dir_1683daa6c50d5a1449f58a10604f9f12.html" target="_self">mps</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="mps_2gemm_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mps_2gemm_8h.html" target="_self">gemm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2allocator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2allocator_8h.html" target="_self">allocator.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_4_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2binary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2binary_8h.html" target="_self">binary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2copy_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2copy_8h.html" target="_self">copy.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_6_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2device_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2device_8h.html" target="_self">device.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_7_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="kernels_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_8h.html" target="_self">kernels.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_8_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="matmul_8h_source.html"><span class="icondoc"></span></a><a class="el" href="matmul_8h.html" target="_self">matmul.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_9_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_8h.html" target="_self">metal.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_10_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal__impl_8h.html" target="_self">metal_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_11_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_12_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2slicing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2slicing_8h.html" target="_self">slicing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_13_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2ternary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2ternary_8h.html" target="_self">ternary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_14_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2unary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2unary_8h.html" target="_self">unary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_15_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="dynsection.toggleFolder('0_2_')">&#9660;</span><span id="img_0_2_" class="iconfopen" onclick="dynsection.toggleFolder('0_2_')">&#160;</span><a class="el" href="dir_23833761034051b43bb6c170b56e2cce.html" target="_self">distributed</a></td><td class="desc"></td></tr>
<tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_8h.html" target="_self">distributed.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_2ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_2ops_8h.html" target="_self">ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_2primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_2primitives_8h.html" target="_self">primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_3_" class="arrow" onclick="dynsection.toggleFolder('0_3_')">&#9660;</span><span id="img_0_3_" class="iconfopen" onclick="dynsection.toggleFolder('0_3_')">&#160;</span><a class="el" href="dir_2193406f5b2eae6fc53753d8a9a80df3.html" target="_self">io</a></td><td class="desc"></td></tr>
<tr id="row_0_3_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="gguf_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gguf_8h.html" target="_self">gguf.h</a></td><td class="desc"></td></tr>
<tr id="row_0_3_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="load_8h_source.html"><span class="icondoc"></span></a><a class="el" href="load_8h.html" target="_self">load.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="dynsection.toggleFolder('0_4_')">&#9660;</span><span id="img_0_4_" class="iconfopen" onclick="dynsection.toggleFolder('0_4_')">&#160;</span><a class="el" href="dir_47795aa8999234f6f402f7e89d34d08e.html" target="_self">types</a></td><td class="desc"></td></tr>
<tr id="row_0_4_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="types_2bf16_8h_source.html"><span class="icondoc"></span></a><a class="el" href="types_2bf16_8h.html" target="_self">bf16.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="types_2complex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="types_2complex_8h.html" target="_self">complex.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_2_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fp16_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fp16_8h.html" target="_self">fp16.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="half__types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="half__types_8h.html" target="_self">half_types.h</a></td><td class="desc"></td></tr>
<tr id="row_0_5_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="allocator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="allocator_8h.html" target="_self">allocator.h</a></td><td class="desc"></td></tr>
<tr id="row_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="array_8h_source.html"><span class="icondoc"></span></a><a class="el" href="array_8h.html" target="_self">array.h</a></td><td class="desc"></td></tr>
<tr id="row_0_7_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="compile_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compile_8h.html" target="_self">compile.h</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="compile__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compile__impl_8h.html" target="_self">compile_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_9_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="device_8h_source.html"><span class="icondoc"></span></a><a class="el" href="device_8h.html" target="_self">device.h</a></td><td class="desc"></td></tr>
<tr id="row_0_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="dtype_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dtype_8h.html" target="_self">dtype.h</a></td><td class="desc"></td></tr>
<tr id="row_0_11_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="einsum_8h_source.html"><span class="icondoc"></span></a><a class="el" href="einsum_8h.html" target="_self">einsum.h</a></td><td class="desc"></td></tr>
<tr id="row_0_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="event_8h_source.html"><span class="icondoc"></span></a><a class="el" href="event_8h.html" target="_self">event.h</a></td><td class="desc"></td></tr>
<tr id="row_0_13_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fast_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fast_8h.html" target="_self">fast.h</a></td><td class="desc"></td></tr>
<tr id="row_0_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fast__primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fast__primitives_8h.html" target="_self">fast_primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_15_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fft_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fft_8h.html" target="_self">fft.h</a></td><td class="desc"></td></tr>
<tr id="row_0_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="graph__utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="graph__utils_8h.html" target="_self">graph_utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_17_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="io_8h_source.html"><span class="icondoc"></span></a><a class="el" href="io_8h.html" target="_self">io.h</a></td><td class="desc"></td></tr>
<tr id="row_0_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="linalg_8h_source.html"><span class="icondoc"></span></a><a class="el" href="linalg_8h.html" target="_self">linalg.h</a></td><td class="desc"></td></tr>
<tr id="row_0_19_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mlx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mlx_8h.html" target="_self">mlx.h</a></td><td class="desc"></td></tr>
<tr id="row_0_20_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ops_8h.html" target="_self">ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_21_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="primitives_8h.html" target="_self">primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="random_8h_source.html"><span class="icondoc"></span></a><a class="el" href="random_8h.html" target="_self">random.h</a></td><td class="desc"></td></tr>
<tr id="row_0_23_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="scheduler_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scheduler_8h.html" target="_self">scheduler.h</a></td><td class="desc"></td></tr>
<tr id="row_0_24_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream_8h.html" target="_self">stream.h</a></td><td class="desc"></td></tr>
<tr id="row_0_25_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="transforms_8h_source.html"><span class="icondoc"></span></a><a class="el" href="transforms_8h.html" target="_self">transforms.h</a></td><td class="desc"></td></tr>
<tr id="row_0_26_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="transforms__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="transforms__impl_8h.html" target="_self">transforms_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_27_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_17_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2gemv__masked_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2gemv__masked_8h.html" target="_self">gemv_masked.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_18_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2hadamard_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2hadamard_8h.html" target="_self">hadamard.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_19_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2indexing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2indexing_8h.html" target="_self">indexing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_20_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="quantized_8h_source.html"><span class="icondoc"></span></a><a class="el" href="quantized_8h.html" target="_self">quantized.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_21_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_22_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="reduce__utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reduce__utils_8h.html" target="_self">reduce_utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_23_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="scaled__dot__product__attention__params_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scaled__dot__product__attention__params_8h.html" target="_self">scaled_dot_product_attention_params.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_24_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2scan_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2scan_8h.html" target="_self">scan.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_25_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="scatter_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scatter_8h.html" target="_self">scatter.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_26_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="kernels_2softmax_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_2softmax_8h.html" target="_self">softmax.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_27_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="sort_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sort_8h.html" target="_self">sort.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_28_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2ternary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2ternary_8h.html" target="_self">ternary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_29_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="ternary__ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ternary__ops_8h.html" target="_self">ternary_ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_30_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="metal_2kernels_2unary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2kernels_2unary_8h.html" target="_self">unary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_31_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="unary__ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="unary__ops_8h.html" target="_self">unary_ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_1_32_" class="odd" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><a href="backend_2metal_2kernels_2utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2kernels_2utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_2_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2allocator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2allocator_8h.html" target="_self">allocator.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2binary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2binary_8h.html" target="_self">binary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_4_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2copy_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2copy_8h.html" target="_self">copy.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2device_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2device_8h.html" target="_self">device.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_6_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="kernels_8h_source.html"><span class="icondoc"></span></a><a class="el" href="kernels_8h.html" target="_self">kernels.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_7_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="matmul_8h_source.html"><span class="icondoc"></span></a><a class="el" href="matmul_8h.html" target="_self">matmul.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_8_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_8h.html" target="_self">metal.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_9_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal__impl_8h.html" target="_self">metal_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_10_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2reduce_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2reduce_8h.html" target="_self">reduce.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_11_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2slicing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2slicing_8h.html" target="_self">slicing.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_12_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2ternary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2ternary_8h.html" target="_self">ternary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_13_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metal_2unary_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metal_2unary_8h.html" target="_self">unary.h</a></td><td class="desc"></td></tr>
<tr id="row_0_1_2_14_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backend_2metal_2utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="backend_2metal_2utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="dynsection.toggleFolder('0_2_')">&#9660;</span><span id="img_0_2_" class="iconfopen" onclick="dynsection.toggleFolder('0_2_')">&#160;</span><a class="el" href="dir_23833761034051b43bb6c170b56e2cce.html" target="_self">distributed</a></td><td class="desc"></td></tr>
<tr id="row_0_2_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_8h.html" target="_self">distributed.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_2ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_2ops_8h.html" target="_self">ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_2_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="distributed_2primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distributed_2primitives_8h.html" target="_self">primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_3_" class="arrow" onclick="dynsection.toggleFolder('0_3_')">&#9660;</span><span id="img_0_3_" class="iconfopen" onclick="dynsection.toggleFolder('0_3_')">&#160;</span><a class="el" href="dir_2193406f5b2eae6fc53753d8a9a80df3.html" target="_self">io</a></td><td class="desc"></td></tr>
<tr id="row_0_3_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="gguf_8h_source.html"><span class="icondoc"></span></a><a class="el" href="gguf_8h.html" target="_self">gguf.h</a></td><td class="desc"></td></tr>
<tr id="row_0_3_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="load_8h_source.html"><span class="icondoc"></span></a><a class="el" href="load_8h.html" target="_self">load.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="dynsection.toggleFolder('0_4_')">&#9660;</span><span id="img_0_4_" class="iconfopen" onclick="dynsection.toggleFolder('0_4_')">&#160;</span><a class="el" href="dir_47795aa8999234f6f402f7e89d34d08e.html" target="_self">types</a></td><td class="desc"></td></tr>
<tr id="row_0_4_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="types_2bf16_8h_source.html"><span class="icondoc"></span></a><a class="el" href="types_2bf16_8h.html" target="_self">bf16.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="types_2complex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="types_2complex_8h.html" target="_self">complex.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fp16_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fp16_8h.html" target="_self">fp16.h</a></td><td class="desc"></td></tr>
<tr id="row_0_4_3_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="half__types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="half__types_8h.html" target="_self">half_types.h</a></td><td class="desc"></td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="allocator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="allocator_8h.html" target="_self">allocator.h</a></td><td class="desc"></td></tr>
<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="array_8h_source.html"><span class="icondoc"></span></a><a class="el" href="array_8h.html" target="_self">array.h</a></td><td class="desc"></td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="compile_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compile_8h.html" target="_self">compile.h</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="compile__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compile__impl_8h.html" target="_self">compile_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="device_8h_source.html"><span class="icondoc"></span></a><a class="el" href="device_8h.html" target="_self">device.h</a></td><td class="desc"></td></tr>
<tr id="row_0_10_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="dtype_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dtype_8h.html" target="_self">dtype.h</a></td><td class="desc"></td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="einsum_8h_source.html"><span class="icondoc"></span></a><a class="el" href="einsum_8h.html" target="_self">einsum.h</a></td><td class="desc"></td></tr>
<tr id="row_0_12_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="event_8h_source.html"><span class="icondoc"></span></a><a class="el" href="event_8h.html" target="_self">event.h</a></td><td class="desc"></td></tr>
<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fast_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fast_8h.html" target="_self">fast.h</a></td><td class="desc"></td></tr>
<tr id="row_0_14_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fast__primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fast__primitives_8h.html" target="_self">fast_primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="fft_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fft_8h.html" target="_self">fft.h</a></td><td class="desc"></td></tr>
<tr id="row_0_16_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="graph__utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="graph__utils_8h.html" target="_self">graph_utils.h</a></td><td class="desc"></td></tr>
<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="io_8h_source.html"><span class="icondoc"></span></a><a class="el" href="io_8h.html" target="_self">io.h</a></td><td class="desc"></td></tr>
<tr id="row_0_18_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="linalg_8h_source.html"><span class="icondoc"></span></a><a class="el" href="linalg_8h.html" target="_self">linalg.h</a></td><td class="desc"></td></tr>
<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mlx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mlx_8h.html" target="_self">mlx.h</a></td><td class="desc"></td></tr>
<tr id="row_0_20_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ops_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ops_8h.html" target="_self">ops.h</a></td><td class="desc"></td></tr>
<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="primitives_8h_source.html"><span class="icondoc"></span></a><a class="el" href="primitives_8h.html" target="_self">primitives.h</a></td><td class="desc"></td></tr>
<tr id="row_0_22_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="random_8h_source.html"><span class="icondoc"></span></a><a class="el" href="random_8h.html" target="_self">random.h</a></td><td class="desc"></td></tr>
<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="scheduler_8h_source.html"><span class="icondoc"></span></a><a class="el" href="scheduler_8h.html" target="_self">scheduler.h</a></td><td class="desc"></td></tr>
<tr id="row_0_24_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream_8h.html" target="_self">stream.h</a></td><td class="desc"></td></tr>
<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="transforms_8h_source.html"><span class="icondoc"></span></a><a class="el" href="transforms_8h.html" target="_self">transforms.h</a></td><td class="desc"></td></tr>
<tr id="row_0_26_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="transforms__impl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="transforms__impl_8h.html" target="_self">transforms_impl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8h.html" target="_self">utils.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@ -83,9 +83,9 @@ $(function() {
<li>adj_out_hw&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#aed0ffd63fbc85fd5d5c4cc7b43f68363">mlx::steel::Conv2DGeneralJumpParams</a></li>
<li>adj_out_w&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#ab971bf879079895189331fbeaf33c211">mlx::steel::Conv2DGeneralJumpParams</a></li>
<li>advance()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c">pocketfft::detail::multi_iter&lt; N &gt;</a>, <a class="el" href="classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686">pocketfft::detail::rev_iter</a>, <a class="el" href="classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f">pocketfft::detail::simple_iter</a></li>
<li>AffineQuantize()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473">mlx::core::fast::AffineQuantize</a></li>
<li>aligned_allocator()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb">pocketfft::detail::threading::aligned_allocator&lt; T &gt;</a></li>
<li>AllGather()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#ac9d0f1ba0d9602fa22e8f2b60f1231e0">mlx::core::distributed::AllGather</a></li>
<li>alloc()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix.html#a906d97b4b2365bec4acf278ef22205b4">MPS::Matrix</a>, <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a9f1400b36672bd6f228a80982e5b2717">MPS::MatrixMultiplication</a>, <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#aeca798759333aae7fdd594835e93d16a">MPS::MatrixVectorMultiplication</a>, <a class="el" href="class_m_p_s_1_1_vector.html#ac08919c16342247963b14766e65332a3">MPS::Vector</a></li>
<li>allocate()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826">pocketfft::detail::threading::aligned_allocator&lt; T &gt;</a></li>
<li>Allocator()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">mlx::core::allocator::Allocator</a></li>
<li>allocator&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0">mlx::core::allocator::CommonAllocator</a>, <a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e">mlx::core::metal::MetalAllocator</a></li>

View File

@ -101,8 +101,10 @@ $(function() {
<li>block_merge_sort_t&#160;:&#160;<a class="el" href="struct_kernel_merge_sort.html#adae7850e057fc30d5328c7b3dcc998fa">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#af27e9af4b58640c0aa620bc4efc68dff">KernelMultiBlockMergeSort&lt; val_t, idx_t, 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#a56b644ec66f7fb5c01b280f124304be9">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#a322ed2eac315a561e0fd90af2fd577eb">KernelMultiBlockMergeSort&lt; val_t, idx_t, 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>blockM&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>BlockMaskedMM()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477">mlx::core::BlockMaskedMM</a></li>
<li>BlockMMA()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>blockN&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>Broadcast()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_broadcast.html#accbab8433c93e281608a268d11afaefb">mlx::core::Broadcast</a></li>
<li>BROWS&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aba1e1c8012e4e50f0e9bcfb9486c1781">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#ac070c6bd5be85b1ae805e18890db4fd4">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#a343984fb74ec579a4404278dbbc7e7b5">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#a10591ea957605a9c662f93d59ff3410d">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#ae9b86b05b23153ea1abaeead456c491c">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#a015a0c56de74a0c4d51953a7e94fbba8">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#acc8140aae84694f62e6324dbb6a614a4">mlx::steel::Conv2DWeightBlockLoaderSmallChannels&lt; T, BM, BN, BK, tgp_size, n_channels, tgp_padding &gt;</a></li>
<li>Bs_offset&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>

View File

@ -84,12 +84,12 @@ $(function() {
<li>default_()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1random_1_1_key_sequence.html#ab5993daeed822c6b970caddab7e3fd90">mlx::core::random::KeySequence</a></li>
<li>DefaultContiguousReduce()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html#aeb4fb7fa1a4c8e7d1da1f450ce95c57f">mlx::core::DefaultContiguousReduce&lt; T, U, Op &gt;</a></li>
<li>DefaultStridedReduce()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html#a477e5dd0dd33071e48769d11d19a13fb">mlx::core::DefaultStridedReduce&lt; T, U, Op &gt;</a></li>
<li>DEFINE_PRINT()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#a8af1e90d4aa56f31ec40ad152ebd2421">mlx::core::distributed::AllGather</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568">mlx::core::fast::LayerNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a5ab3eb5402c7e8060916056eb2b7887f">mlx::core::fast::LayerNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae6eea81b5e3789c2f6f376cc07f0a47c">mlx::core::fast::RMSNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a9895733eab845e11484d86cf6ecedced">mlx::core::fast::RMSNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a2b06fe64fa8feca65140632087065e16">mlx::core::fast::RoPE</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6cc2092fa5b8e7585921b8e0f3ec3db7">mlx::core::fast::ScaledDotProductAttention</a></li>
<li>DEFINE_PRINT()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#a8af1e90d4aa56f31ec40ad152ebd2421">mlx::core::distributed::AllGather</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587">mlx::core::fast::AffineQuantize</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568">mlx::core::fast::LayerNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a5ab3eb5402c7e8060916056eb2b7887f">mlx::core::fast::LayerNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae6eea81b5e3789c2f6f376cc07f0a47c">mlx::core::fast::RMSNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a9895733eab845e11484d86cf6ecedced">mlx::core::fast::RMSNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a2b06fe64fa8feca65140632087065e16">mlx::core::fast::RoPE</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6cc2092fa5b8e7585921b8e0f3ec3db7">mlx::core::fast::ScaledDotProductAttention</a></li>
<li>denorm_min()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>Depends()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">mlx::core::Depends</a></li>
<li>detach()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">mlx::core::array</a></li>
<li>Device()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_device.html#a481ccfb94d689994396bd353e966b489">mlx::core::Device</a>, <a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">mlx::core::metal::Device</a></li>
<li>device()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">mlx::core::Primitive</a>, <a class="el" href="structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb">mlx::core::Stream</a>, <a class="el" href="class_m_p_s_1_1_kernel.html#a46793d1c80a4df313c067103fcae6024">MPS::Kernel</a></li>
<li>device()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">mlx::core::Primitive</a>, <a class="el" href="structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb">mlx::core::Stream</a></li>
<li>DeviceType&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdb">mlx::core::Device</a></li>
<li>difference_type&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5">mlx::core::array::ArrayIterator</a></li>
<li>digits&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>

File diff suppressed because one or more lines are too long

View File

@ -78,9 +78,9 @@ $(function() {
<li>Add()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae">mlx::core::Add</a></li>
<li>AddMM()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550">mlx::core::AddMM</a></li>
<li>advance()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c">pocketfft::detail::multi_iter&lt; N &gt;</a>, <a class="el" href="classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686">pocketfft::detail::rev_iter</a>, <a class="el" href="classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f">pocketfft::detail::simple_iter</a></li>
<li>AffineQuantize()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473">mlx::core::fast::AffineQuantize</a></li>
<li>aligned_allocator()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb">pocketfft::detail::threading::aligned_allocator&lt; T &gt;</a></li>
<li>AllGather()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#ac9d0f1ba0d9602fa22e8f2b60f1231e0">mlx::core::distributed::AllGather</a></li>
<li>alloc()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix.html#a906d97b4b2365bec4acf278ef22205b4">MPS::Matrix</a>, <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a9f1400b36672bd6f228a80982e5b2717">MPS::MatrixMultiplication</a>, <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#aeca798759333aae7fdd594835e93d16a">MPS::MatrixVectorMultiplication</a>, <a class="el" href="class_m_p_s_1_1_vector.html#ac08919c16342247963b14766e65332a3">MPS::Vector</a></li>
<li>allocate()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826">pocketfft::detail::threading::aligned_allocator&lt; T &gt;</a></li>
<li>Allocator()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">mlx::core::allocator::Allocator</a></li>
<li>AllReduce()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a936b320f7b0a435f96e018c25f35e7ed">mlx::core::distributed::AllReduce</a></li>

View File

@ -83,12 +83,12 @@ $(function() {
<li>default_()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1random_1_1_key_sequence.html#ab5993daeed822c6b970caddab7e3fd90">mlx::core::random::KeySequence</a></li>
<li>DefaultContiguousReduce()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html#aeb4fb7fa1a4c8e7d1da1f450ce95c57f">mlx::core::DefaultContiguousReduce&lt; T, U, Op &gt;</a></li>
<li>DefaultStridedReduce()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html#a477e5dd0dd33071e48769d11d19a13fb">mlx::core::DefaultStridedReduce&lt; T, U, Op &gt;</a></li>
<li>DEFINE_PRINT()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#a8af1e90d4aa56f31ec40ad152ebd2421">mlx::core::distributed::AllGather</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568">mlx::core::fast::LayerNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a5ab3eb5402c7e8060916056eb2b7887f">mlx::core::fast::LayerNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae6eea81b5e3789c2f6f376cc07f0a47c">mlx::core::fast::RMSNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a9895733eab845e11484d86cf6ecedced">mlx::core::fast::RMSNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a2b06fe64fa8feca65140632087065e16">mlx::core::fast::RoPE</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6cc2092fa5b8e7585921b8e0f3ec3db7">mlx::core::fast::ScaledDotProductAttention</a></li>
<li>DEFINE_PRINT()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html#a8af1e90d4aa56f31ec40ad152ebd2421">mlx::core::distributed::AllGather</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587">mlx::core::fast::AffineQuantize</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568">mlx::core::fast::LayerNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a5ab3eb5402c7e8060916056eb2b7887f">mlx::core::fast::LayerNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae6eea81b5e3789c2f6f376cc07f0a47c">mlx::core::fast::RMSNorm</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a9895733eab845e11484d86cf6ecedced">mlx::core::fast::RMSNormVJP</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a2b06fe64fa8feca65140632087065e16">mlx::core::fast::RoPE</a>, <a class="el" href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6cc2092fa5b8e7585921b8e0f3ec3db7">mlx::core::fast::ScaledDotProductAttention</a></li>
<li>denorm_min()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>Depends()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">mlx::core::Depends</a></li>
<li>detach()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2">mlx::core::array</a></li>
<li>Device()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_device.html#a481ccfb94d689994396bd353e966b489">mlx::core::Device</a>, <a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">mlx::core::metal::Device</a></li>
<li>device()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">mlx::core::Primitive</a>, <a class="el" href="class_m_p_s_1_1_kernel.html#a46793d1c80a4df313c067103fcae6024">MPS::Kernel</a></li>
<li>device()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">mlx::core::Primitive</a></li>
<li>dispatchThreadgroups()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e">mlx::core::metal::CommandEncoder</a></li>
<li>dispatchThreads()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810">mlx::core::metal::CommandEncoder</a></li>
<li>DistPrimitive()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a9e4b0b92776aca0c1331450ae4955cef">mlx::core::distributed::DistPrimitive</a></li>

File diff suppressed because one or more lines are too long

View File

@ -78,10 +78,9 @@ $(function() {
<li>in_tracing()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html#ac52b8e2c3f808d3076c4e1ebaf9dc63d">mlx::core::detail::InTracing</a></li>
<li>increment_command_buffer_ops()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6">mlx::core::metal::Device</a></li>
<li>infinity()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>init()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix.html#a2398221610a7c610c85cf7fb3f18281b">MPS::Matrix</a>, <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a35b1a908807eb8ececd0241531dea823">MPS::MatrixMultiplication</a>, <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#a62c065490befe32c6a59b888b1347c80">MPS::MatrixVectorMultiplication</a>, <a class="el" href="class_m_p_s_1_1_vector.html#a2ea0c0575489e4689d19640d1da1b179">MPS::Vector</a></li>
<li>inputs()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff">mlx::core::array</a></li>
<li>InTracing()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70">mlx::core::detail::InTracing</a></li>
<li>Inverse()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_inverse.html#a4fcdda66a176b520fe4655ab91862aad">mlx::core::Inverse</a></li>
<li>Inverse()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">mlx::core::Inverse</a></li>
<li>iofs()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa">pocketfft::detail::multi_iter&lt; N &gt;</a></li>
<li>is_available()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">mlx::core::array</a></li>
<li>is_donatable()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array</a></li>

View File

@ -74,7 +74,7 @@ $(function() {
<div class="textblock">Here is a list of all functions with links to the classes they belong to:</div>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>label()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1io_1_1_file_reader.html#a7415da4cb14c328ed07901ff1c266221">mlx::core::io::FileReader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html#a5093dce80ff0c51ea036a87e3e5fb456">mlx::core::io::FileWriter</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html#a8c244daf52fd5ebb9a2c7e5f4ae793cd">mlx::core::io::Reader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html#a828125a9adcb7e90c8bcaba0fe47f854">mlx::core::io::Writer</a>, <a class="el" href="class_m_p_s_1_1_kernel.html#aaf646bce46266bc11c419464ec72cdfe">MPS::Kernel</a></li>
<li>label()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1io_1_1_file_reader.html#a7415da4cb14c328ed07901ff1c266221">mlx::core::io::FileReader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html#a5093dce80ff0c51ea036a87e3e5fb456">mlx::core::io::FileWriter</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html#a8c244daf52fd5ebb9a2c7e5f4ae793cd">mlx::core::io::Reader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html#a828125a9adcb7e90c8bcaba0fe47f854">mlx::core::io::Writer</a></li>
<li>largest_prime_factor()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1util.html#a0e9b92280f25063d1ebef942dd0d233c">pocketfft::detail::util</a></li>
<li>latch()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1threading_1_1latch.html#a9260c871bb927525f7f53caa23a19c15">pocketfft::detail::threading::latch</a></li>
<li>LayerNorm()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5ac38d50e62850589bf51ee313303153">mlx::core::fast::LayerNorm</a></li>
@ -88,9 +88,9 @@ $(function() {
<li>Load()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a">mlx::core::Load</a></li>
<li>load()&#160;:&#160;<a class="el" href="struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_padded()&#160;:&#160;<a class="el" href="struct_read_writer.html#add5bd3f647793a5a19d63197a19df73c">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_safe()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_safe()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_strided()&#160;:&#160;<a class="el" href="struct_read_writer.html#a998ef484bade81f726b9edfc6b878197">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_unsafe()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">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_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a">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#a961836be363409744e48e595d5e0c2ec">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#aa11d1a142bc868df462f48a7102147f3">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#a8034abc10483487fc94313e3674d1111">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#a69e2f7c9814d1cc1c5c267be8618dc55">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#a8f078982186421f5b484c0b53af9c655">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#a0e262b003ac0e7ee6272585eac921704">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#a86009527cb4b53e4c21fd6b1f78cfefc">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_unsafe()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">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_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a">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#a961836be363409744e48e595d5e0c2ec">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#aa11d1a142bc868df462f48a7102147f3">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#a8034abc10483487fc94313e3674d1111">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#a69e2f7c9814d1cc1c5c267be8618dc55">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#a8f078982186421f5b484c0b53af9c655">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#a0e262b003ac0e7ee6272585eac921704">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#a86009527cb4b53e4c21fd6b1f78cfefc">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>Log()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9">mlx::core::Log</a></li>
<li>Log1p()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a">mlx::core::Log1p</a></li>
<li>LogAddExp()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a">mlx::core::LogAddExp</a></li>

View File

@ -77,7 +77,6 @@ $(function() {
<li>make_arrays()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a1173db4e23f5a8230911cb8fba45d5e6">mlx::core::array</a></li>
<li>malloc()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4">mlx::core::allocator::Allocator</a>, <a class="el" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0">mlx::core::allocator::CommonAllocator</a>, <a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a6c0feb9b1ff9977f76c69745393944bc">mlx::core::metal::MetalAllocator</a></li>
<li>Matmul()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">mlx::core::Matmul</a></li>
<li>matrixDescriptor()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a7a99042b3c8afa037719ca316500a37b">MPS::MatrixDescriptor</a></li>
<li>max()&#160;:&#160;<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></li>
<li>Maximum()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816">mlx::core::Maximum</a></li>
<li>merge_partition()&#160;:&#160;<a class="el" href="struct_block_merge_sort.html#ab2300cbecb23f3433bad888924c831ca">BlockMergeSort&lt; val_t, idx_t, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a>, <a class="el" href="struct_kernel_multi_block_merge_sort.html#ab15895b4233aba0e279cc44a07a201fe">KernelMultiBlockMergeSort&lt; val_t, idx_t, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>

File diff suppressed because one or more lines are too long

View File

@ -100,8 +100,7 @@ $(function() {
<li>RoPE()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a031fa27aeba94cfa5ccc633137a12163">mlx::core::fast::RoPE</a></li>
<li>Round()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde">mlx::core::Round</a></li>
<li>round_error()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>rows()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a04ce0dd1d4632ff8c4328e4b62d71fc0">MPS::MatrixDescriptor</a></li>
<li>run()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>run()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->

View File

@ -93,11 +93,6 @@ $(function() {
<li>set_status()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">mlx::core::array</a></li>
<li>set_tracer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">mlx::core::array</a></li>
<li>set_value()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d">mlx::core::Event</a></li>
<li>setBatchSize()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#ac24cc7d71cdf3fd5bc4291ba2bfcd9e7">MPS::MatrixMultiplication</a></li>
<li>setBatchStart()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a82008429b4f14b5eba13142886b76cde">MPS::MatrixMultiplication</a></li>
<li>setLeftMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a8b905b75090af80d97cf09b05cdad528">MPS::MatrixMultiplication</a></li>
<li>setResultMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a86647678c55adffc51114d036445ba10">MPS::MatrixMultiplication</a></li>
<li>setRightMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#afaa45acd37397737ef4d94e8803be7e2">MPS::MatrixMultiplication</a></li>
<li>shape()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d">mlx::core::array</a>, <a class="el" href="classpocketfft_1_1detail_1_1arr__info.html#accada8146cb8d3ab7facb4c1e3413ec0">pocketfft::detail::arr_info</a></li>
<li>shutdown()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411">pocketfft::detail::threading::thread_pool</a></li>
<li>siblings()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d">mlx::core::array</a></li>

File diff suppressed because one or more lines are too long

View File

@ -75,6 +75,10 @@ $(function() {
<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>Hadamard()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923">mlx::core::Hadamard</a></li>
<li>has_mul_operand_mask&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ad47223ee49b3cb7bf3746a2cec45f883">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a8db6f01f96a36b216acd801c34a96ef5">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>has_mul_output_mask&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a0edbf2dd6a6563e7afa6dab6b670615c">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a8eb06f6569e4042e24fee220b11fa10d">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>has_operand_mask&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ab00784dff1512a7b0919fcb4cfa5d50e">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a6729d6e63e76a1e9c7c8e78d9aac4869">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>has_output_mask&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ab8b64c94f4c8f6f09c0777415589b487">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#aaefdf8f023da255bbb70a0c3e3408626">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>has_primitive()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#aa5aceab15241e7826cbaf8b8a41440c1">mlx::core::array</a></li>
</ul>
</div><!-- contents -->

View File

@ -85,7 +85,7 @@ $(function() {
<li>increment_command_buffer_ops()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a7a33d4d601423a3d3c23d5ad7072abb6">mlx::core::metal::Device</a></li>
<li>index&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1_device.html#a5e345748fe318a267833ab7398b364ac">mlx::core::Device</a>, <a class="el" href="structmlx_1_1core_1_1_stream.html#a9d0dafc1899333e1176eb2bbc0a8b626">mlx::core::Stream</a></li>
<li>infinity()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>init&#160;:&#160;<a class="el" href="struct_and.html#ab55eac58830ae01c45f18377eff021ea">And&lt; U &gt;</a>, <a class="el" href="struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4">CumMax&lt; U &gt;</a>, <a class="el" href="struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9">CumMin&lt; U &gt;</a>, <a class="el" href="struct_cum_prod.html#acf2ae2daa84d477b413deea679cab9e5">CumProd&lt; U &gt;</a>, <a class="el" href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">CumProd&lt; bool &gt;</a>, <a class="el" href="struct_cum_sum.html#a987f7a15eded60081b74abc103d3054b">CumSum&lt; U &gt;</a>, <a class="el" href="struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3">LessThan&lt; T &gt;</a>, <a class="el" href="struct_max.html#aa985471d570c1009e5cbb174efcb9131">Max&lt; U &gt;</a>, <a class="el" href="struct_min.html#a322a8241f9e9f60ffa040e68c02af97c">Min&lt; U &gt;</a>, <a class="el" href="class_m_p_s_1_1_matrix.html#a2398221610a7c610c85cf7fb3f18281b">MPS::Matrix</a>, <a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a35b1a908807eb8ececd0241531dea823">MPS::MatrixMultiplication</a>, <a class="el" href="class_m_p_s_1_1_matrix_vector_multiplication.html#a62c065490befe32c6a59b888b1347c80">MPS::MatrixVectorMultiplication</a>, <a class="el" href="class_m_p_s_1_1_vector.html#a2ea0c0575489e4689d19640d1da1b179">MPS::Vector</a>, <a class="el" href="struct_or.html#a6734c64e8048a209047fa18dd8bd49e8">Or&lt; U &gt;</a>, <a class="el" href="struct_prod.html#ac99f3882b6c3c0c17d70a82f2f2f2c56">Prod&lt; U &gt;</a>, <a class="el" href="struct_sum.html#a433bf0fe3ce751c18e5269bbc19daa65">Sum&lt; U &gt;</a></li>
<li>init&#160;:&#160;<a class="el" href="struct_and.html#ab55eac58830ae01c45f18377eff021ea">And&lt; U &gt;</a>, <a class="el" href="struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4">CumMax&lt; U &gt;</a>, <a class="el" href="struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9">CumMin&lt; U &gt;</a>, <a class="el" href="struct_cum_prod.html#acf2ae2daa84d477b413deea679cab9e5">CumProd&lt; U &gt;</a>, <a class="el" href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">CumProd&lt; bool &gt;</a>, <a class="el" href="struct_cum_sum.html#a987f7a15eded60081b74abc103d3054b">CumSum&lt; U &gt;</a>, <a class="el" href="struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3">LessThan&lt; T &gt;</a>, <a class="el" href="struct_max.html#aa985471d570c1009e5cbb174efcb9131">Max&lt; U &gt;</a>, <a class="el" href="struct_min.html#a322a8241f9e9f60ffa040e68c02af97c">Min&lt; U &gt;</a>, <a class="el" href="struct_or.html#a6734c64e8048a209047fa18dd8bd49e8">Or&lt; U &gt;</a>, <a class="el" href="struct_prod.html#ac99f3882b6c3c0c17d70a82f2f2f2c56">Prod&lt; U &gt;</a>, <a class="el" href="struct_sum.html#a433bf0fe3ce751c18e5269bbc19daa65">Sum&lt; U &gt;</a></li>
<li>inp_jump_c&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a78d30e843d65d1829623afb0b607f0a5">mlx::steel::ImplicitGemmConv2DParams</a></li>
<li>inp_jump_h&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a03685a4066cdb11ffb647408e2c5b122">mlx::steel::ImplicitGemmConv2DParams</a></li>
<li>inp_jump_w&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#acf168c72f4a86b72b8f5f386f07c9d8c">mlx::steel::ImplicitGemmConv2DParams</a></li>
@ -93,7 +93,7 @@ $(function() {
<li>InTracing()&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70">mlx::core::detail::InTracing</a></li>
<li>inv&#160;:&#160;<a class="el" href="struct_read_writer.html#a773fa8524515bdc2ff8b0e2060741813">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>INV_ALPHA&#160;:&#160;<a class="el" href="struct_m_l_x_scaled_dot_product_attention_params.html#a7461e0e17cdc7d3fed80bb00d58d8644">MLXScaledDotProductAttentionParams</a></li>
<li>Inverse()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_inverse.html#a4fcdda66a176b520fe4655ab91862aad">mlx::core::Inverse</a></li>
<li>Inverse()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">mlx::core::Inverse</a></li>
<li>iofs()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa">pocketfft::detail::multi_iter&lt; N &gt;</a></li>
<li>iS&#160;:&#160;<a class="el" href="struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6">MLXConvParams&lt; NDIM &gt;</a></li>
<li>is_available()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40">mlx::core::array</a></li>

View File

@ -74,7 +74,7 @@ $(function() {
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>label()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1io_1_1_file_reader.html#a7415da4cb14c328ed07901ff1c266221">mlx::core::io::FileReader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html#a5093dce80ff0c51ea036a87e3e5fb456">mlx::core::io::FileWriter</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html#a8c244daf52fd5ebb9a2c7e5f4ae793cd">mlx::core::io::Reader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html#a828125a9adcb7e90c8bcaba0fe47f854">mlx::core::io::Writer</a>, <a class="el" href="class_m_p_s_1_1_kernel.html#aaf646bce46266bc11c419464ec72cdfe">MPS::Kernel</a></li>
<li>label()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1io_1_1_file_reader.html#a7415da4cb14c328ed07901ff1c266221">mlx::core::io::FileReader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html#a5093dce80ff0c51ea036a87e3e5fb456">mlx::core::io::FileWriter</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html#a8c244daf52fd5ebb9a2c7e5f4ae793cd">mlx::core::io::Reader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html#a828125a9adcb7e90c8bcaba0fe47f854">mlx::core::io::Writer</a></li>
<li>largest_prime_factor()&#160;:&#160;<a class="el" href="structpocketfft_1_1detail_1_1util.html#a0e9b92280f25063d1ebef942dd0d233c">pocketfft::detail::util</a></li>
<li>latch()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1threading_1_1latch.html#a9260c871bb927525f7f53caa23a19c15">pocketfft::detail::threading::latch</a></li>
<li>LayerNorm()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5ac38d50e62850589bf51ee313303153">mlx::core::fast::LayerNorm</a></li>
@ -96,11 +96,11 @@ $(function() {
<li>LessEqual()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc">mlx::core::LessEqual</a></li>
<li>lib_name()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439">mlx::core::Compiled</a></li>
<li>Load()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a">mlx::core::Load</a></li>
<li>load()&#160;:&#160;<a class="el" href="struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load()&#160;:&#160;<a class="el" href="struct_read_writer.html#a8a97ba42db5692898ef7391db08d8fd0">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_padded()&#160;:&#160;<a class="el" href="struct_read_writer.html#add5bd3f647793a5a19d63197a19df73c">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_safe()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_safe()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_strided()&#160;:&#160;<a class="el" href="struct_read_writer.html#a998ef484bade81f726b9edfc6b878197">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>load_unsafe()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">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_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a">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#a961836be363409744e48e595d5e0c2ec">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#aa11d1a142bc868df462f48a7102147f3">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#a8034abc10483487fc94313e3674d1111">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#a69e2f7c9814d1cc1c5c267be8618dc55">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#a8f078982186421f5b484c0b53af9c655">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#a0e262b003ac0e7ee6272585eac921704">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#a86009527cb4b53e4c21fd6b1f78cfefc">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>load_unsafe()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">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_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a">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#a961836be363409744e48e595d5e0c2ec">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#aa11d1a142bc868df462f48a7102147f3">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#a8034abc10483487fc94313e3674d1111">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#a69e2f7c9814d1cc1c5c267be8618dc55">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#a8f078982186421f5b484c0b53af9c655">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#a0e262b003ac0e7ee6272585eac921704">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#a86009527cb4b53e4c21fd6b1f78cfefc">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>loader_a_t&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>loader_b_t&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>Log()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9">mlx::core::Log</a></li>

View File

@ -81,7 +81,6 @@ $(function() {
<li>mask_t&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a270ab3da7c98a12525a59952742cc97d">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>Matmul()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">mlx::core::Matmul</a></li>
<li>matrixDescriptor()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a7a99042b3c8afa037719ca316500a37b">MPS::MatrixDescriptor</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_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></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_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>

View File

@ -87,6 +87,7 @@ $(function() {
<li>nbytes()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array</a></li>
<li>ndarr()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1ndarr.html#a8f0037a172d96cb1ad915a5069175fa2">pocketfft::detail::ndarr&lt; T &gt;</a></li>
<li>ndim&#160;:&#160;<a class="el" href="struct_indices.html#a7dec359e91d0eb2b64e5461b54308313">Indices&lt; IdxT, NIDX &gt;</a>, <a class="el" href="classmlx_1_1core_1_1array.html#a53006e77d13d9d88b525ef577748939f">mlx::core::array</a>, <a class="el" href="classpocketfft_1_1detail_1_1arr__info.html#ac608c8af2a59a28a0012e308be7ee414">pocketfft::detail::arr_info</a></li>
<li>needs_tgp_reduction&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ae8113fddf6fb637acfd12efd978b704c">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a67be7ec69c3791f02e97ccdb00ae0e03">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>Negative()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70">mlx::core::Negative</a></li>
<li>new_queue()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html#a8135ae2a8c1e6f3861e84d4e60c28b67">mlx::core::metal::Device</a></li>
<li>new_stream()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a157c8da85fa1bddb8eacf8515a3cc879">mlx::core::scheduler::Scheduler</a></li>

File diff suppressed because one or more lines are too long

View File

@ -112,8 +112,7 @@ $(function() {
<li>Round()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde">mlx::core::Round</a></li>
<li>round_error()&#160;:&#160;<a class="el" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3">metal::_numeric_limits_impl&lt; bfloat16_t &gt;</a></li>
<li>row_contiguous&#160;:&#160;<a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">mlx::core::array::Flags</a></li>
<li>rows()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_descriptor.html#a04ce0dd1d4632ff8c4328e4b62d71fc0">MPS::MatrixDescriptor</a></li>
<li>run()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>run()&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->

View File

@ -96,11 +96,6 @@ $(function() {
<li>set_status()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c">mlx::core::array</a></li>
<li>set_tracer()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8">mlx::core::array</a></li>
<li>set_value()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d">mlx::core::Event</a></li>
<li>setBatchSize()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#ac24cc7d71cdf3fd5bc4291ba2bfcd9e7">MPS::MatrixMultiplication</a></li>
<li>setBatchStart()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a82008429b4f14b5eba13142886b76cde">MPS::MatrixMultiplication</a></li>
<li>setLeftMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a8b905b75090af80d97cf09b05cdad528">MPS::MatrixMultiplication</a></li>
<li>setResultMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#a86647678c55adffc51114d036445ba10">MPS::MatrixMultiplication</a></li>
<li>setRightMatrixOrigin()&#160;:&#160;<a class="el" href="class_m_p_s_1_1_matrix_multiplication.html#afaa45acd37397737ef4d94e8803be7e2">MPS::MatrixMultiplication</a></li>
<li>shape()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f">mlx::core::array</a>, <a class="el" href="structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae">mlx::core::ReductionPlan</a>, <a class="el" href="classpocketfft_1_1detail_1_1arr__info.html#ac601c660c64a4c252aa8be4ae7dfa7a8">pocketfft::detail::arr_info</a></li>
<li>shapes&#160;:&#160;<a class="el" href="struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f">Indices&lt; IdxT, NIDX &gt;</a></li>
<li>shp&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d">pocketfft::detail::arr_info</a></li>

View File

@ -83,7 +83,7 @@ $(function() {
<li>TCOLS&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ae25c676b7318d78462ee89bcd80dc805">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#a0b5303f3258e0a21862dead8e3f5401e">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#ad2508cd5cdb51b2f611057e743b8fc6f">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#a5adbd51e9adb6f7853724d83de4ff755">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#a80cb90674f839d5d4ecfde384fa0a7a2">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#aff021a6fae860b4ac01fb593b2720457">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#acd54132d0928d0f6fb15b2f367e5d5e8">mlx::steel::Conv2DWeightBlockLoaderSmallChannels&lt; T, BM, BN, BK, tgp_size, n_channels, tgp_padding &gt;</a></li>
<li>tell()&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1io_1_1_file_reader.html#aa47428656f87fb1ff89378a6041bf68f">mlx::core::io::FileReader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_file_writer.html#aa883a722789c962164fd0ddcc5f6ffc5">mlx::core::io::FileWriter</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html#a27697ccc1ce45da0233db3bd4f298aed">mlx::core::io::Reader</a>, <a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html#a11ad80749894993232fbb5c70fd7b282">mlx::core::io::Writer</a></li>
<li>ten&#160;:&#160;<a class="el" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1">mlx::core::Log</a></li>
<li>tgp_mem_size&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>tgp_mem_size&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a9ef4d0e62094d7033069f5dda5efb236">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a48a09a21d7b822f380d040c752b785d7">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>tgp_mem_size_a&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>tgp_mem_size_b&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
<li>tgp_padding_a&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">mlx::steel::GEMMKernel&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue &gt;</a></li>
@ -96,16 +96,18 @@ $(function() {
<li>thread_pool()&#160;:&#160;<a class="el" href="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a37a8121a99dd06a9d44b3e80ba0ea560">pocketfft::detail::threading::thread_pool</a></li>
<li>thread_sort_t&#160;:&#160;<a class="el" href="struct_block_merge_sort.html#ad2474d16721f4ceb954125728a0e2ea2">BlockMergeSort&lt; val_t, idx_t, ARG_SORT, BLOCK_THREADS, N_PER_THREAD, CompareOp &gt;</a></li>
<li>threads_per_tg&#160;:&#160;<a class="el" href="struct_read_writer.html#a64c58e358da22358df3075448ea23893">ReadWriter&lt; in_T, out_T, step, four_step_real &gt;</a></li>
<li>threadsM&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a1dd943fcbf5e7be435fc36bed589a641">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a4a53e73a581aa8881b1f86ce653519e6">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>threadsN&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a47bfab7d21dd18760d3e0937ad36b19d">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#ade6f15a9744616de9dd71498ad7e758d">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>tile_stride&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d">mlx::steel::BlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS &gt;</a>, <a class="el" href="struct_quantized_block_loader.html#ac3f651c1a645291d1037a2cc8ded2320">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<li>tile_stride_a&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>tile_stride_b&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>tiles_m&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_params.html#ad23a5a7f74cd5859741a36e4bc7823ca">mlx::steel::GEMMParams</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a0970989624e17088d5326c2e198cb95b">mlx::steel::GEMMSpiltKParams</a>, <a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a4c5e33edf70be99cf93ac5723c12eb24">mlx::steel::ImplicitGemmConv2DParams</a>, <a class="el" href="struct_m_l_x_fast_attention_params.html#a0df159c839fc27b9426b8ac4336cc0ad">MLXFastAttentionParams</a></li>
<li>tiles_n&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_params.html#a0e6b8b629232f1b43fbce9a395174bed">mlx::steel::GEMMParams</a>, <a class="el" href="structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a5b46dfb9cee3606efa05d217349a20a6">mlx::steel::GEMMSpiltKParams</a>, <a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a76f9f381e7187a993d65128b9b681b2d">mlx::steel::ImplicitGemmConv2DParams</a>, <a class="el" href="struct_m_l_x_fast_attention_params.html#a608aa256216ac6d80af00209303d2029">MLXFastAttentionParams</a></li>
<li>tm&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TM&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>tm&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TM_stride&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TN&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>tn&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#ad7a2033983cfbb474c50c2878057d8f1">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TN&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TN_stride&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>TransformAdd()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">mlx::steel::TransformAdd&lt; OutT, InT &gt;</a></li>
<li>TransformAxpby()&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9">mlx::steel::TransformAxpby&lt; OutT, InT &gt;</a></li>

File diff suppressed because one or more lines are too long

View File

@ -94,6 +94,8 @@ $(function() {
<li>biases&#160;:&#160;<a class="el" href="struct_quantized_block_loader.html#a17d01a6aba0833b073586ef2c09d0fbd">QuantizedBlockLoader&lt; T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits &gt;</a></li>
<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>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_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>blockM&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a7281520100658811076400060663903c">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a2ae8ce535d59cccf453381b4485a77f0">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>blockN&#160;:&#160;<a class="el" href="struct_g_e_m_v_kernel.html#a2fef17f9c9aa0bdf530ad3554fb0988b">GEMVKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a>, <a class="el" href="struct_g_e_m_v_t_kernel.html#a60be87666006ba0bf88bc8e6902da42a">GEMVTKernel&lt; T, out_mask_t, op_mask_t, BM, BN, SM, SN, TM, TN &gt;</a></li>
<li>BROWS&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aba1e1c8012e4e50f0e9bcfb9486c1781">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#ac070c6bd5be85b1ae805e18890db4fd4">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#a343984fb74ec579a4404278dbbc7e7b5">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#a10591ea957605a9c662f93d59ff3410d">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#ae9b86b05b23153ea1abaeead456c491c">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#a015a0c56de74a0c4d51953a7e94fbba8">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#acc8140aae84694f62e6324dbb6a614a4">mlx::steel::Conv2DWeightBlockLoaderSmallChannels&lt; T, BM, BN, BK, tgp_size, n_channels, tgp_padding &gt;</a></li>
<li>Bs_offset&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>
<li>Bsimd&#160;:&#160;<a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html#a3de506004b428d3487bae05ad9e757e6">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue &gt;</a></li>

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