This commit is contained in:
CircleCI Docs 2025-02-06 20:16:29 +00:00
parent 5808f70235
commit f77c575f41
2299 changed files with 64934 additions and 28640 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: b9afea4432e35a4ac5dbffb76ed39348
config: 81aaeaba965ad2156af7b499f90bc0e9
tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -57,7 +57,7 @@ with the Anaconda package manager as follows:
.. code:: shell
$ conda install openmpi
$ conda install conda-forge::openmpi
Installing with Homebrew may require specifying the location of ``libmpi.dyld``
so that MLX can find it and load it at runtime. This can simply be achieved by

View File

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

View File

@ -0,0 +1,253 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/accelerate_fp16_simd.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('accelerate__fp16__simd_8h.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">accelerate_fp16_simd.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="base__simd_8h_source.html">mlx/backend/cpu/simd/base_simd.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="neon__fp16__simd_8h_source.html">mlx/backend/cpu/simd/neon_fp16_simd.h</a>&quot;</code><br />
</div>
<p><a href="accelerate__fp16__simd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><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>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</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="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a60af883c0392ecab270ecc1146f5e8a2" id="r_a60af883c0392ecab270ecc1146f5e8a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(op)</td></tr>
<tr class="separator:a60af883c0392ecab270ecc1146f5e8a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6437645d67e6a8b7c1349b0040aaa6bb" id="r_a6437645d67e6a8b7c1349b0040aaa6bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6437645d67e6a8b7c1349b0040aaa6bb">SIMD_FP16_DEFAULT_BINARY</a>(op)</td></tr>
<tr class="separator:a6437645d67e6a8b7c1349b0040aaa6bb"><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:ae623449dfa7aab3031aa2f14c1b10a2d" id="r_ae623449dfa7aab3031aa2f14c1b10a2d"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ae623449dfa7aab3031aa2f14c1b10a2d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ae623449dfa7aab3031aa2f14c1b10a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8a64e7742fcd8f759f723a36a7c826" id="r_a4f8a64e7742fcd8f759f723a36a7c826"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a4f8a64e7742fcd8f759f723a36a7c826"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a4f8a64e7742fcd8f759f723a36a7c826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c7723fc49137394fa817136a7ffb50f" id="r_a9c7723fc49137394fa817136a7ffb50f"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a9c7723fc49137394fa817136a7ffb50f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a9c7723fc49137394fa817136a7ffb50f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa76bdf1db09261d84da51d394837f5d" id="r_aaa76bdf1db09261d84da51d394837f5d"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:aaa76bdf1db09261d84da51d394837f5d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aaa76bdf1db09261d84da51d394837f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7550a1210e50c996d0db84034b8a22e" id="r_aa7550a1210e50c996d0db84034b8a22e"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:aa7550a1210e50c996d0db84034b8a22e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aa7550a1210e50c996d0db84034b8a22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18d330fd2c7360b2890a722232ba35b7" id="r_a18d330fd2c7360b2890a722232ba35b7"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a18d330fd2c7360b2890a722232ba35b7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a18d330fd2c7360b2890a722232ba35b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedc18b6fdb820cce9125c977c02833aa" id="r_aedc18b6fdb820cce9125c977c02833aa"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:aedc18b6fdb820cce9125c977c02833aa"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aedc18b6fdb820cce9125c977c02833aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9407980793ecff5d5eb19c9a2cbda1eb" id="r_a9407980793ecff5d5eb19c9a2cbda1eb"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a9407980793ecff5d5eb19c9a2cbda1eb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a9407980793ecff5d5eb19c9a2cbda1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cec82f4fb15bfd31d7554c6c09ceed4" id="r_a8cec82f4fb15bfd31d7554c6c09ceed4"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a8cec82f4fb15bfd31d7554c6c09ceed4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a8cec82f4fb15bfd31d7554c6c09ceed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66426c28a4324b9f617b7018d9354ea1" id="r_a66426c28a4324b9f617b7018d9354ea1"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a66426c28a4324b9f617b7018d9354ea1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a66426c28a4324b9f617b7018d9354ea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb6ea94836e999c07329b34c501ed85" id="r_a3cb6ea94836e999c07329b34c501ed85"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a3cb6ea94836e999c07329b34c501ed85"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a3cb6ea94836e999c07329b34c501ed85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad06680bbc041e76efe2dbff4e11b9a13" id="r_ad06680bbc041e76efe2dbff4e11b9a13"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ad06680bbc041e76efe2dbff4e11b9a13"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ad06680bbc041e76efe2dbff4e11b9a13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09a2f3f2bc999c16babf3d8d90994d6e" id="r_a09a2f3f2bc999c16babf3d8d90994d6e"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a09a2f3f2bc999c16babf3d8d90994d6e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a09a2f3f2bc999c16babf3d8d90994d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a445ddc4ed928656df64d889942588cfd" id="r_a445ddc4ed928656df64d889942588cfd"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a445ddc4ed928656df64d889942588cfd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a445ddc4ed928656df64d889942588cfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa244fbe7456b653aa50a473108fd6a2b" id="r_aa244fbe7456b653aa50a473108fd6a2b"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:aa244fbe7456b653aa50a473108fd6a2b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aa244fbe7456b653aa50a473108fd6a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23dba4ee3f0811b41c381733a6e6ff16" id="r_a23dba4ee3f0811b41c381733a6e6ff16"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a23dba4ee3f0811b41c381733a6e6ff16"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a23dba4ee3f0811b41c381733a6e6ff16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac66bdf1a8e86a4d350c85037bc764da5" id="r_ac66bdf1a8e86a4d350c85037bc764da5"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ac66bdf1a8e86a4d350c85037bc764da5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ac66bdf1a8e86a4d350c85037bc764da5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19d535de1fc179cc39ec9643c9863cbc" id="r_a19d535de1fc179cc39ec9643c9863cbc"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a19d535de1fc179cc39ec9643c9863cbc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; <a class="el" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a19d535de1fc179cc39ec9643c9863cbc"><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>
<tr class="memitem:a155df1de3c26e1a3725b63e9e97c0b53" id="r_a155df1de3c26e1a3725b63e9e97c0b53"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a155df1de3c26e1a3725b63e9e97c0b53"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a155df1de3c26e1a3725b63e9e97c0b53">mlx::core::simd::max_size&lt; float16_t &gt;</a> = <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a></td></tr>
<tr class="separator:a155df1de3c26e1a3725b63e9e97c0b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a6437645d67e6a8b7c1349b0040aaa6bb" name="a6437645d67e6a8b7c1349b0040aaa6bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6437645d67e6a8b7c1349b0040aaa6bb">&#9670;&#160;</a></span>SIMD_FP16_DEFAULT_BINARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIMD_FP16_DEFAULT_BINARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;&gt; \</div>
<div class="line"> <span class="keyword">inline</span> Simd&lt;float16_t, N&gt; op(Simd&lt;float16_t, N&gt; x, Simd&lt;float16_t, N&gt; y) { \</div>
<div class="line"> Simd&lt;float, N&gt; a = x; \</div>
<div class="line"> Simd&lt;float, N&gt; b = y; \</div>
<div class="line"> <span class="keywordflow">return</span> op(a, b); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a60af883c0392ecab270ecc1146f5e8a2" name="a60af883c0392ecab270ecc1146f5e8a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60af883c0392ecab270ecc1146f5e8a2">&#9670;&#160;</a></span>SIMD_FP16_DEFAULT_UNARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIMD_FP16_DEFAULT_UNARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;&gt; \</div>
<div class="line"> <span class="keyword">inline</span> Simd&lt;float16_t, N&gt; op(Simd&lt;float16_t, N&gt; v) { \</div>
<div class="line"> Simd&lt;float, N&gt; in = v; \</div>
<div class="line"> <span class="keywordflow">return</span> op(in); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="accelerate__fp16__simd_8h.html">accelerate_fp16_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,24 @@
var accelerate__fp16__simd_8h =
[
[ "SIMD_FP16_DEFAULT_BINARY", "accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb", null ],
[ "SIMD_FP16_DEFAULT_UNARY", "accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2", null ],
[ "mlx::core::simd::acos", "namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d", null ],
[ "mlx::core::simd::acosh", "namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826", null ],
[ "mlx::core::simd::asin", "namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f", null ],
[ "mlx::core::simd::asinh", "namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d", null ],
[ "mlx::core::simd::atan", "namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e", null ],
[ "mlx::core::simd::atan2", "namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16", null ],
[ "mlx::core::simd::atanh", "namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7", null ],
[ "mlx::core::simd::cosh", "namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa", null ],
[ "mlx::core::simd::expm1", "namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb", null ],
[ "mlx::core::simd::log", "namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4", null ],
[ "mlx::core::simd::log10", "namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85", null ],
[ "mlx::core::simd::log1p", "namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13", null ],
[ "mlx::core::simd::log2", "namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1", null ],
[ "mlx::core::simd::pow", "namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc", null ],
[ "mlx::core::simd::remainder", "namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5", null ],
[ "mlx::core::simd::sinh", "namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e", null ],
[ "mlx::core::simd::tan", "namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd", null ],
[ "mlx::core::simd::tanh", "namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b", null ],
[ "mlx::core::simd::max_size< float16_t >", "namespacemlx_1_1core_1_1simd.html#a155df1de3c26e1a3725b63e9e97c0b53", null ]
];

View File

@ -0,0 +1,208 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/accelerate_fp16_simd.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('accelerate__fp16__simd_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">accelerate_fp16_simd.h</div></div>
</div><!--header-->
<div class="contents">
<a href="accelerate__fp16__simd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &quot;<a class="code" href="base__simd_8h.html">mlx/backend/cpu/simd/base_simd.h</a>&quot;</span></div>
<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">#if MLX_SIMD_LIBRARY_VERSION &lt; 6</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;<a class="code" href="neon__fp16__simd_8h.html">mlx/backend/cpu/simd/neon_fp16_simd.h</a>&quot;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="foldopen" id="foldopen00009" data-start="{" data-end="}">
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html"> 9</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a> {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#if MLX_SIMD_LIBRARY_VERSION &gt;= 6</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> = 8;</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a>&lt;<a class="code hl_typedef" href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">float16_t</a>, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49">v</a> = _Float16;</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"> 17</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a155df1de3c26e1a3725b63e9e97c0b53"> 20</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;float16_t&gt;</a> = <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</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="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2"> 22</a></span><span class="preprocessor">#define SIMD_FP16_DEFAULT_UNARY(op) \</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor"> template &lt;&gt; \</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor"> inline Simd&lt;float16_t, N&gt; op(Simd&lt;float16_t, N&gt; v) { \</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor"> Simd&lt;float, N&gt; in = v; \</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor"> return op(in); \</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d"> 29</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826"> 30</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>)</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f"> 31</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d"> 32</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e"> 33</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7"> 34</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa"> 35</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb"> 36</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4"> 37</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1"> 38</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85"> 39</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>)</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13"> 40</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e"> 41</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd"> 42</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b"> 43</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</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="accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb"> 45</a></span><span class="preprocessor">#define SIMD_FP16_DEFAULT_BINARY(op) \</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor"> template &lt;&gt; \</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor"> inline Simd&lt;float16_t, N&gt; op(Simd&lt;float16_t, N&gt; x, Simd&lt;float16_t, N&gt; y) { \</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor"> Simd&lt;float, N&gt; a = x; \</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor"> Simd&lt;float, N&gt; b = y; \</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"> return op(a, b); \</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16"> 52</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb">SIMD_FP16_DEFAULT_BINARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>)</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5"> 53</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb">SIMD_FP16_DEFAULT_BINARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>)</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc"> 54</a></span><a class="code hl_define" href="accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb">SIMD_FP16_DEFAULT_BINARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>)</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>} <span class="comment">// namespace mlx::core::simd</span></div>
</div>
<div class="ttc" id="aaccelerate__fp16__simd_8h_html_a60af883c0392ecab270ecc1146f5e8a2"><div class="ttname"><a href="accelerate__fp16__simd_8h.html#a60af883c0392ecab270ecc1146f5e8a2">SIMD_FP16_DEFAULT_UNARY</a></div><div class="ttdeci">#define SIMD_FP16_DEFAULT_UNARY(op)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:22</div></div>
<div class="ttc" id="aaccelerate__fp16__simd_8h_html_a6437645d67e6a8b7c1349b0040aaa6bb"><div class="ttname"><a href="accelerate__fp16__simd_8h.html#a6437645d67e6a8b7c1349b0040aaa6bb">SIMD_FP16_DEFAULT_BINARY</a></div><div class="ttdeci">#define SIMD_FP16_DEFAULT_BINARY(op)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:45</div></div>
<div class="ttc" id="abase__simd_8h_html"><div class="ttname"><a href="base__simd_8h.html">base_simd.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a09a2f3f2bc999c16babf3d8d90994d6e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; sinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:41</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a18d330fd2c7360b2890a722232ba35b7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:34</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a3cb6ea94836e999c07329b34c501ed85"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log10(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:39</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a445ddc4ed928656df64d889942588cfd"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_afbd2769c30e721afc85a7b9fb55b8e52"><div class="ttname"><a href="namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52">mlx::core::float16_t</a></div><div class="ttdeci">struct _MLX_Float16 float16_t</div><div class="ttdef"><b>Definition</b> half_types.h:17</div></div>
<div class="ttc" id="aneon__fp16__simd_8h_html"><div class="ttname"><a href="neon__fp16__simd_8h.html">neon_fp16_simd.h</a></div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">mlx::core::simd::ScalarT</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_html_af165519c33808c4f815143f77739db49"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49">mlx::core::simd::ScalarT::v</a></div><div class="ttdeci">T v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:35</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="accelerate__fp16__simd_8h.html">accelerate_fp16_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

572
docs/build/html/accelerate__simd_8h.html vendored Normal file
View File

@ -0,0 +1,572 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/accelerate_simd.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('accelerate__simd_8h.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">accelerate_simd.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="math_8h_source.html">simd/math.h</a>&gt;</code><br />
<code>#include &lt;simd/vector.h&gt;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
<code>#include &quot;<a class="el" href="base__simd_8h_source.html">mlx/backend/cpu/simd/base_simd.h</a>&quot;</code><br />
</div>
<p><a href="accelerate__simd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">mlx::core::simd::ScalarT&lt; T, N &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html">mlx::core::simd::ScalarT&lt; bool, N &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html">mlx::core::simd::ScalarT&lt; int8_t, N &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html">mlx::core::simd::ScalarT&lt; uint64_t, N &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html">mlx::core::simd::ScalarT&lt; int64_t, N &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">mlx::core::simd::Simd&lt; T, N &gt;</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>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><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>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</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="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a628420ebe2f37d352c8c4b0dd0db59d0" id="r_a628420ebe2f37d352c8c4b0dd0db59d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a628420ebe2f37d352c8c4b0dd0db59d0">MLX_SIMD_LIBRARY_VERSION</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:a628420ebe2f37d352c8c4b0dd0db59d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b449b9ce2c623ab4dce3f6fe349bb6d" id="r_a3b449b9ce2c623ab4dce3f6fe349bb6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(name, op)</td></tr>
<tr class="separator:a3b449b9ce2c623ab4dce3f6fe349bb6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aa795d90ddc485f24cd4a5268fe0e82" id="r_a9aa795d90ddc485f24cd4a5268fe0e82"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(OP)</td></tr>
<tr class="separator:a9aa795d90ddc485f24cd4a5268fe0e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca22aa431d399cea13c969926689b459" id="r_aca22aa431d399cea13c969926689b459"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(OP)</td></tr>
<tr class="separator:aca22aa431d399cea13c969926689b459"><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:a4f3cc8b2493586e83fd65640df3b60ad" id="r_a4f3cc8b2493586e83fd65640df3b60ad"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a4f3cc8b2493586e83fd65640df3b60ad"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a4f3cc8b2493586e83fd65640df3b60ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e22c484298d9af10b6604c835e52052" id="r_a8e22c484298d9af10b6604c835e52052"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a8e22c484298d9af10b6604c835e52052"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a8e22c484298d9af10b6604c835e52052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85999467c83b07e4fa5f093f7ddf19e1" id="r_a85999467c83b07e4fa5f093f7ddf19e1"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a85999467c83b07e4fa5f093f7ddf19e1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a85999467c83b07e4fa5f093f7ddf19e1">mlx::core::simd::acos</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a85999467c83b07e4fa5f093f7ddf19e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90092f3826ad3be4b2b1785f7ff4a86b" id="r_a90092f3826ad3be4b2b1785f7ff4a86b"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a90092f3826ad3be4b2b1785f7ff4a86b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a90092f3826ad3be4b2b1785f7ff4a86b">mlx::core::simd::acosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a90092f3826ad3be4b2b1785f7ff4a86b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a069963ffb15f06d1c48258054750dadf" id="r_a069963ffb15f06d1c48258054750dadf"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a069963ffb15f06d1c48258054750dadf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a069963ffb15f06d1c48258054750dadf">mlx::core::simd::asin</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a069963ffb15f06d1c48258054750dadf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b47a5f370e8e59e1debfa5405e13266" id="r_a7b47a5f370e8e59e1debfa5405e13266"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a7b47a5f370e8e59e1debfa5405e13266"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7b47a5f370e8e59e1debfa5405e13266">mlx::core::simd::asinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a7b47a5f370e8e59e1debfa5405e13266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99e84cece5722fb764844a2badc5426b" id="r_a99e84cece5722fb764844a2badc5426b"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a99e84cece5722fb764844a2badc5426b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a99e84cece5722fb764844a2badc5426b">mlx::core::simd::atan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a99e84cece5722fb764844a2badc5426b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae55fd26c3e18a6a27679d2b47566f8bc" id="r_ae55fd26c3e18a6a27679d2b47566f8bc"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ae55fd26c3e18a6a27679d2b47566f8bc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae55fd26c3e18a6a27679d2b47566f8bc">mlx::core::simd::atanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ae55fd26c3e18a6a27679d2b47566f8bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1d5460c58c507a0104d8dfa90343f12" id="r_ae1d5460c58c507a0104d8dfa90343f12"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ae1d5460c58c507a0104d8dfa90343f12"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ae1d5460c58c507a0104d8dfa90343f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5b4f7d3b776e8d16907e15a11800f01" id="r_aa5b4f7d3b776e8d16907e15a11800f01"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:aa5b4f7d3b776e8d16907e15a11800f01"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa5b4f7d3b776e8d16907e15a11800f01">mlx::core::simd::cosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aa5b4f7d3b776e8d16907e15a11800f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a464687a8809d0180035acc9af2943a94" id="r_a464687a8809d0180035acc9af2943a94"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a464687a8809d0180035acc9af2943a94"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a464687a8809d0180035acc9af2943a94">mlx::core::simd::expm1</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a464687a8809d0180035acc9af2943a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97a8ca857fe0edd84c68dc0f3dc2c6c4" id="r_a97a8ca857fe0edd84c68dc0f3dc2c6c4"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a97a8ca857fe0edd84c68dc0f3dc2c6c4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a97a8ca857fe0edd84c68dc0f3dc2c6c4">mlx::core::simd::log</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a97a8ca857fe0edd84c68dc0f3dc2c6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb1c49b90d029bc4a7eed257ec52791d" id="r_acb1c49b90d029bc4a7eed257ec52791d"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:acb1c49b90d029bc4a7eed257ec52791d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acb1c49b90d029bc4a7eed257ec52791d">mlx::core::simd::log2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:acb1c49b90d029bc4a7eed257ec52791d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba81b735e8f99cedf8b4846b2ab4e236" id="r_aba81b735e8f99cedf8b4846b2ab4e236"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:aba81b735e8f99cedf8b4846b2ab4e236"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aba81b735e8f99cedf8b4846b2ab4e236">mlx::core::simd::log10</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aba81b735e8f99cedf8b4846b2ab4e236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830591eb3007fef5d87dc296f5615108" id="r_a830591eb3007fef5d87dc296f5615108"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a830591eb3007fef5d87dc296f5615108"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a830591eb3007fef5d87dc296f5615108">mlx::core::simd::log1p</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a830591eb3007fef5d87dc296f5615108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a400d89d040f43d471b306a8e8bdb3974" id="r_a400d89d040f43d471b306a8e8bdb3974"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a400d89d040f43d471b306a8e8bdb3974"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">mlx::core::simd::rint</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a400d89d040f43d471b306a8e8bdb3974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a479ccddac341bd0760857b77e449e5e1" id="r_a479ccddac341bd0760857b77e449e5e1"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a479ccddac341bd0760857b77e449e5e1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a479ccddac341bd0760857b77e449e5e1">mlx::core::simd::sinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a479ccddac341bd0760857b77e449e5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae39b8e1d1fff94947406eeb8ec6e0414" id="r_ae39b8e1d1fff94947406eeb8ec6e0414"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ae39b8e1d1fff94947406eeb8ec6e0414"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ae39b8e1d1fff94947406eeb8ec6e0414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea75ddf8c696efc2e5e924667ed48e70" id="r_aea75ddf8c696efc2e5e924667ed48e70"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:aea75ddf8c696efc2e5e924667ed48e70"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:aea75ddf8c696efc2e5e924667ed48e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae344abefc91c7d9c0a9506c868a84d61" id="r_ae344abefc91c7d9c0a9506c868a84d61"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ae344abefc91c7d9c0a9506c868a84d61"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">mlx::core::simd::recip</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ae344abefc91c7d9c0a9506c868a84d61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a829842f854aecfae93b7d42f83aec9a7" id="r_a829842f854aecfae93b7d42f83aec9a7"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a829842f854aecfae93b7d42f83aec9a7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a829842f854aecfae93b7d42f83aec9a7">mlx::core::simd::tan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a829842f854aecfae93b7d42f83aec9a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad78f543dc5da87a14ca113a1dd9852fd" id="r_ad78f543dc5da87a14ca113a1dd9852fd"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ad78f543dc5da87a14ca113a1dd9852fd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ad78f543dc5da87a14ca113a1dd9852fd">mlx::core::simd::tanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:ad78f543dc5da87a14ca113a1dd9852fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5be79b8dada8f8e91ae7c03c16606ec" id="r_af5be79b8dada8f8e91ae7c03c16606ec"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:af5be79b8dada8f8e91ae7c03c16606ec"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#af5be79b8dada8f8e91ae7c03c16606ec">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:af5be79b8dada8f8e91ae7c03c16606ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f4422a037c3bef343fb11f71363b65" id="r_a05f4422a037c3bef343fb11f71363b65"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a05f4422a037c3bef343fb11f71363b65"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a05f4422a037c3bef343fb11f71363b65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a745e05627c77152ec13d8d90c19cc9bf" id="r_a745e05627c77152ec13d8d90c19cc9bf"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a745e05627c77152ec13d8d90c19cc9bf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">mlx::core::simd::operator!</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v)</td></tr>
<tr class="separator:a745e05627c77152ec13d8d90c19cc9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac6acd134f1498b4fb45fdbc882335bf" id="r_aac6acd134f1498b4fb45fdbc882335bf"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:aac6acd134f1498b4fb45fdbc882335bf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aac6acd134f1498b4fb45fdbc882335bf">mlx::core::simd::operator+</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:aac6acd134f1498b4fb45fdbc882335bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b622c47d07b171b2303ea744bf72284" id="r_a8b622c47d07b171b2303ea744bf72284"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a8b622c47d07b171b2303ea744bf72284"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8b622c47d07b171b2303ea744bf72284">mlx::core::simd::operator+</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a8b622c47d07b171b2303ea744bf72284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed655ffa017ade5e0f954f906d9f7ae6" id="r_aed655ffa017ade5e0f954f906d9f7ae6"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:aed655ffa017ade5e0f954f906d9f7ae6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aed655ffa017ade5e0f954f906d9f7ae6">mlx::core::simd::operator+</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:aed655ffa017ade5e0f954f906d9f7ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5761065b4a655cd086d88846ae08d97" id="r_ad5761065b4a655cd086d88846ae08d97"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:ad5761065b4a655cd086d88846ae08d97"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ad5761065b4a655cd086d88846ae08d97">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:ad5761065b4a655cd086d88846ae08d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc490f7f5195acfa7b7c5df7afb39438" id="r_acc490f7f5195acfa7b7c5df7afb39438"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:acc490f7f5195acfa7b7c5df7afb39438"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acc490f7f5195acfa7b7c5df7afb39438">mlx::core::simd::operator-</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:acc490f7f5195acfa7b7c5df7afb39438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a678cddce777549a39474449d56fd1de6" id="r_a678cddce777549a39474449d56fd1de6"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a678cddce777549a39474449d56fd1de6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a678cddce777549a39474449d56fd1de6">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a678cddce777549a39474449d56fd1de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac86a54a5e2ccc79bc92739f143bc0bef" id="r_ac86a54a5e2ccc79bc92739f143bc0bef"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:ac86a54a5e2ccc79bc92739f143bc0bef"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac86a54a5e2ccc79bc92739f143bc0bef">mlx::core::simd::operator/</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:ac86a54a5e2ccc79bc92739f143bc0bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5d10f465c21ab259041042ff0159187" id="r_ac5d10f465c21ab259041042ff0159187"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:ac5d10f465c21ab259041042ff0159187"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac5d10f465c21ab259041042ff0159187">mlx::core::simd::operator/</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ac5d10f465c21ab259041042ff0159187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18a2689f4ae197c5b204fe9b3370da4c" id="r_a18a2689f4ae197c5b204fe9b3370da4c"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a18a2689f4ae197c5b204fe9b3370da4c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a18a2689f4ae197c5b204fe9b3370da4c">mlx::core::simd::operator/</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a18a2689f4ae197c5b204fe9b3370da4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08c1e7a00b1b4bc60e30d1554f4f46f2" id="r_a08c1e7a00b1b4bc60e30d1554f4f46f2"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a08c1e7a00b1b4bc60e30d1554f4f46f2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a08c1e7a00b1b4bc60e30d1554f4f46f2">mlx::core::simd::operator*</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:a08c1e7a00b1b4bc60e30d1554f4f46f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ec5f1f081d20b46b13eb83eb1b6431" id="r_ae4ec5f1f081d20b46b13eb83eb1b6431"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:ae4ec5f1f081d20b46b13eb83eb1b6431"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae4ec5f1f081d20b46b13eb83eb1b6431">mlx::core::simd::operator*</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ae4ec5f1f081d20b46b13eb83eb1b6431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4555cd6a3b50af00700f97fdf00f63a7" id="r_a4555cd6a3b50af00700f97fdf00f63a7"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a4555cd6a3b50af00700f97fdf00f63a7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4555cd6a3b50af00700f97fdf00f63a7">mlx::core::simd::operator*</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a4555cd6a3b50af00700f97fdf00f63a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21cbfd232edd7fe0f6f6c9fa11a354e" id="r_ae21cbfd232edd7fe0f6f6c9fa11a354e"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:ae21cbfd232edd7fe0f6f6c9fa11a354e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae21cbfd232edd7fe0f6f6c9fa11a354e">mlx::core::simd::operator&lt;&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:ae21cbfd232edd7fe0f6f6c9fa11a354e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56fccba38270fe3ae9fa7b2ecdeb5e87" id="r_a56fccba38270fe3ae9fa7b2ecdeb5e87"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a56fccba38270fe3ae9fa7b2ecdeb5e87"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a56fccba38270fe3ae9fa7b2ecdeb5e87">mlx::core::simd::operator&lt;&lt;</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a56fccba38270fe3ae9fa7b2ecdeb5e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ecd782ffa497ac7dc2482a232b0dd00" id="r_a4ecd782ffa497ac7dc2482a232b0dd00"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a4ecd782ffa497ac7dc2482a232b0dd00"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4ecd782ffa497ac7dc2482a232b0dd00">mlx::core::simd::operator&lt;&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a4ecd782ffa497ac7dc2482a232b0dd00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e45c9c2f0591d9d5dd37a07ebcc3c2a" id="r_a6e45c9c2f0591d9d5dd37a07ebcc3c2a"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a6e45c9c2f0591d9d5dd37a07ebcc3c2a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a6e45c9c2f0591d9d5dd37a07ebcc3c2a">mlx::core::simd::operator&gt;&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:a6e45c9c2f0591d9d5dd37a07ebcc3c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa35a2aab733e4bfc80a9f4e3f508daee" id="r_aa35a2aab733e4bfc80a9f4e3f508daee"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:aa35a2aab733e4bfc80a9f4e3f508daee"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa35a2aab733e4bfc80a9f4e3f508daee">mlx::core::simd::operator&gt;&gt;</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:aa35a2aab733e4bfc80a9f4e3f508daee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf93b8179621e83bb3f3c4a8816eca8" id="r_aebf93b8179621e83bb3f3c4a8816eca8"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:aebf93b8179621e83bb3f3c4a8816eca8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aebf93b8179621e83bb3f3c4a8816eca8">mlx::core::simd::operator&gt;&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:aebf93b8179621e83bb3f3c4a8816eca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2b540d7329491000e7722f9b3ef797d" id="r_ab2b540d7329491000e7722f9b3ef797d"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:ab2b540d7329491000e7722f9b3ef797d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab2b540d7329491000e7722f9b3ef797d">mlx::core::simd::operator|</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:ab2b540d7329491000e7722f9b3ef797d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd57bba23daed624df5e2b06b676dca" id="r_a0cd57bba23daed624df5e2b06b676dca"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a0cd57bba23daed624df5e2b06b676dca"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a0cd57bba23daed624df5e2b06b676dca">mlx::core::simd::operator|</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a0cd57bba23daed624df5e2b06b676dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd57dc91aa205d9d3f8804df4261a7fb" id="r_acd57dc91aa205d9d3f8804df4261a7fb"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:acd57dc91aa205d9d3f8804df4261a7fb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acd57dc91aa205d9d3f8804df4261a7fb">mlx::core::simd::operator|</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:acd57dc91aa205d9d3f8804df4261a7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25b3de1947dbab7c4864b41ec226453b" id="r_a25b3de1947dbab7c4864b41ec226453b"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a25b3de1947dbab7c4864b41ec226453b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a25b3de1947dbab7c4864b41ec226453b">mlx::core::simd::operator^</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:a25b3de1947dbab7c4864b41ec226453b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93e69a8170b8fe14f0a3188b4e8ccd49" id="r_a93e69a8170b8fe14f0a3188b4e8ccd49"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a93e69a8170b8fe14f0a3188b4e8ccd49"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a93e69a8170b8fe14f0a3188b4e8ccd49">mlx::core::simd::operator^</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a93e69a8170b8fe14f0a3188b4e8ccd49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16c4a2c8fc59a2e2fcc05db243289706" id="r_a16c4a2c8fc59a2e2fcc05db243289706"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a16c4a2c8fc59a2e2fcc05db243289706"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a16c4a2c8fc59a2e2fcc05db243289706">mlx::core::simd::operator^</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a16c4a2c8fc59a2e2fcc05db243289706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0727c897502944659b3e32b3cde9ee9b" id="r_a0727c897502944659b3e32b3cde9ee9b"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a0727c897502944659b3e32b3cde9ee9b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a0727c897502944659b3e32b3cde9ee9b">mlx::core::simd::operator&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:a0727c897502944659b3e32b3cde9ee9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a832bbc02ed5589e70106c831c04500f1" id="r_a832bbc02ed5589e70106c831c04500f1"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a832bbc02ed5589e70106c831c04500f1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a832bbc02ed5589e70106c831c04500f1">mlx::core::simd::operator&amp;</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a832bbc02ed5589e70106c831c04500f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac790406f4cf51cbc40d750d377dd741b" id="r_ac790406f4cf51cbc40d750d377dd741b"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:ac790406f4cf51cbc40d750d377dd741b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac790406f4cf51cbc40d750d377dd741b">mlx::core::simd::operator&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ac790406f4cf51cbc40d750d377dd741b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c23e7ed6fe0ec6dfe4c61f7412a362" id="r_a85c23e7ed6fe0ec6dfe4c61f7412a362"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a85c23e7ed6fe0ec6dfe4c61f7412a362"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a85c23e7ed6fe0ec6dfe4c61f7412a362">mlx::core::simd::operator&amp;&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:a85c23e7ed6fe0ec6dfe4c61f7412a362"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a2c8aea209236b06c594c8451017ecb" id="r_a8a2c8aea209236b06c594c8451017ecb"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a8a2c8aea209236b06c594c8451017ecb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8a2c8aea209236b06c594c8451017ecb">mlx::core::simd::operator&amp;&amp;</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a8a2c8aea209236b06c594c8451017ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a070f1fa094cf2da5ab7d6baecbbf4f56" id="r_a070f1fa094cf2da5ab7d6baecbbf4f56"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:a070f1fa094cf2da5ab7d6baecbbf4f56"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a070f1fa094cf2da5ab7d6baecbbf4f56">mlx::core::simd::operator&amp;&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:a070f1fa094cf2da5ab7d6baecbbf4f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab380b8f73672727a38ea0931e731fe4a" id="r_ab380b8f73672727a38ea0931e731fe4a"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:ab380b8f73672727a38ea0931e731fe4a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a">mlx::core::simd::operator||</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, U y)</td></tr>
<tr class="separator:ab380b8f73672727a38ea0931e731fe4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac34f6b278627949d2ee68cdbf3d2f50f" id="r_ac34f6b278627949d2ee68cdbf3d2f50f"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:ac34f6b278627949d2ee68cdbf3d2f50f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac34f6b278627949d2ee68cdbf3d2f50f">mlx::core::simd::operator||</a> (T1 x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ac34f6b278627949d2ee68cdbf3d2f50f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2bc61c02b9096163e9db91a3f88788f" id="r_ab2bc61c02b9096163e9db91a3f88788f"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:ab2bc61c02b9096163e9db91a3f88788f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab2bc61c02b9096163e9db91a3f88788f">mlx::core::simd::operator||</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:ab2bc61c02b9096163e9db91a3f88788f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd37e62eff936a64677b5aba787b4d18" id="r_abd37e62eff936a64677b5aba787b4d18"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:abd37e62eff936a64677b5aba787b4d18"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#abd37e62eff936a64677b5aba787b4d18">mlx::core::simd::operator&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:abd37e62eff936a64677b5aba787b4d18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71a6902e729e3facdc609e93cd12d485" id="r_a71a6902e729e3facdc609e93cd12d485"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a71a6902e729e3facdc609e93cd12d485"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a71a6902e729e3facdc609e93cd12d485">mlx::core::simd::operator&gt;</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a71a6902e729e3facdc609e93cd12d485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7b291b3559792e18208e17432d25342" id="r_ab7b291b3559792e18208e17432d25342"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ab7b291b3559792e18208e17432d25342"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab7b291b3559792e18208e17432d25342">mlx::core::simd::operator&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ab7b291b3559792e18208e17432d25342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cd6e41660608d17ca8d38658d5e385c" id="r_a6cd6e41660608d17ca8d38658d5e385c"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a6cd6e41660608d17ca8d38658d5e385c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a6cd6e41660608d17ca8d38658d5e385c">mlx::core::simd::operator&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:a6cd6e41660608d17ca8d38658d5e385c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9bebf95b37fa0c6517be82af5ccd4eb" id="r_ad9bebf95b37fa0c6517be82af5ccd4eb"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:ad9bebf95b37fa0c6517be82af5ccd4eb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ad9bebf95b37fa0c6517be82af5ccd4eb">mlx::core::simd::operator&lt;</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ad9bebf95b37fa0c6517be82af5ccd4eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac962a14c88c87082fc70a9c0370f35b0" id="r_ac962a14c88c87082fc70a9c0370f35b0"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ac962a14c88c87082fc70a9c0370f35b0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac962a14c88c87082fc70a9c0370f35b0">mlx::core::simd::operator&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ac962a14c88c87082fc70a9c0370f35b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87e11ab36aae3328fe3d5230bdf31692" id="r_a87e11ab36aae3328fe3d5230bdf31692"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a87e11ab36aae3328fe3d5230bdf31692"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a87e11ab36aae3328fe3d5230bdf31692">mlx::core::simd::operator&gt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:a87e11ab36aae3328fe3d5230bdf31692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e65febbfa8b4df2970c1d78801b3c66" id="r_a4e65febbfa8b4df2970c1d78801b3c66"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a4e65febbfa8b4df2970c1d78801b3c66"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4e65febbfa8b4df2970c1d78801b3c66">mlx::core::simd::operator&gt;=</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a4e65febbfa8b4df2970c1d78801b3c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a673b4d8d228f35f06cf5b882335f04d5" id="r_a673b4d8d228f35f06cf5b882335f04d5"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a673b4d8d228f35f06cf5b882335f04d5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a673b4d8d228f35f06cf5b882335f04d5">mlx::core::simd::operator&gt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a673b4d8d228f35f06cf5b882335f04d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d5e4c31af23d2871e09b88c1f6e418c" id="r_a4d5e4c31af23d2871e09b88c1f6e418c"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a4d5e4c31af23d2871e09b88c1f6e418c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c">mlx::core::simd::operator&lt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:a4d5e4c31af23d2871e09b88c1f6e418c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0fcb84973e4762a543ad3843db4f153" id="r_ae0fcb84973e4762a543ad3843db4f153"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:ae0fcb84973e4762a543ad3843db4f153"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae0fcb84973e4762a543ad3843db4f153">mlx::core::simd::operator&lt;=</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ae0fcb84973e4762a543ad3843db4f153"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadd49786edc08f867e592d234327a031" id="r_aadd49786edc08f867e592d234327a031"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:aadd49786edc08f867e592d234327a031"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aadd49786edc08f867e592d234327a031">mlx::core::simd::operator&lt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:aadd49786edc08f867e592d234327a031"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a273fcc5387c1c9878e658ba6bc32f00c" id="r_a273fcc5387c1c9878e658ba6bc32f00c"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a273fcc5387c1c9878e658ba6bc32f00c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c">mlx::core::simd::operator==</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:a273fcc5387c1c9878e658ba6bc32f00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46ede415296683771bb22246a813482a" id="r_a46ede415296683771bb22246a813482a"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a46ede415296683771bb22246a813482a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a46ede415296683771bb22246a813482a">mlx::core::simd::operator==</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a46ede415296683771bb22246a813482a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63768090c16e5dcffccadf550d169abc" id="r_a63768090c16e5dcffccadf550d169abc"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a63768090c16e5dcffccadf550d169abc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a63768090c16e5dcffccadf550d169abc">mlx::core::simd::operator==</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a63768090c16e5dcffccadf550d169abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4971bfe7f9f9319f859b3040c18f39ca" id="r_a4971bfe7f9f9319f859b3040c18f39ca"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a4971bfe7f9f9319f859b3040c18f39ca"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca">mlx::core::simd::operator!=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, U b)</td></tr>
<tr class="separator:a4971bfe7f9f9319f859b3040c18f39ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c49123bf2647a5ca4f0579a54f3e53a" id="r_a5c49123bf2647a5ca4f0579a54f3e53a"><td class="memTemplParams" colspan="2">template&lt;int N, typename T, typename U&gt; </td></tr>
<tr class="memitem:a5c49123bf2647a5ca4f0579a54f3e53a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a5c49123bf2647a5ca4f0579a54f3e53a">mlx::core::simd::operator!=</a> (T a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; U, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a5c49123bf2647a5ca4f0579a54f3e53a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a125cbaa7c5dd0931b0abd11003ab584a" id="r_a125cbaa7c5dd0931b0abd11003ab584a"><td class="memTemplParams" colspan="2">template&lt;int N, typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a125cbaa7c5dd0931b0abd11003ab584a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a125cbaa7c5dd0931b0abd11003ab584a">mlx::core::simd::operator!=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a125cbaa7c5dd0931b0abd11003ab584a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6104b5667e0eb379528bf7e2de23bee" id="r_ac6104b5667e0eb379528bf7e2de23bee"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ac6104b5667e0eb379528bf7e2de23bee"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac6104b5667e0eb379528bf7e2de23bee">mlx::core::simd::atan2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ac6104b5667e0eb379528bf7e2de23bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7a298284e71ddbd2ba0bb6d98b0d16" id="r_a7f7a298284e71ddbd2ba0bb6d98b0d16"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a7f7a298284e71ddbd2ba0bb6d98b0d16"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a7f7a298284e71ddbd2ba0bb6d98b0d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1996e77a8c3c24b1ba706113ed9028c4" id="r_a1996e77a8c3c24b1ba706113ed9028c4"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a1996e77a8c3c24b1ba706113ed9028c4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:a1996e77a8c3c24b1ba706113ed9028c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab020d2c434fad0cdf79fd37b0f6c1676" id="r_ab020d2c434fad0cdf79fd37b0f6c1676"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ab020d2c434fad0cdf79fd37b0f6c1676"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab020d2c434fad0cdf79fd37b0f6c1676">mlx::core::simd::remainder</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; b)</td></tr>
<tr class="separator:ab020d2c434fad0cdf79fd37b0f6c1676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb3bcbd8d8b34128cd0c8eb677a170ef" id="r_afb3bcbd8d8b34128cd0c8eb677a170ef"><td class="memTemplParams" colspan="2">template&lt;typename MaskT, typename T1, typename T2, int N&gt; </td></tr>
<tr class="memitem:afb3bcbd8d8b34128cd0c8eb677a170ef"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; MaskT, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; mask, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y)</td></tr>
<tr class="separator:afb3bcbd8d8b34128cd0c8eb677a170ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab18b3a88a2439fd026b6551b38d1f14a" id="r_ab18b3a88a2439fd026b6551b38d1f14a"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ab18b3a88a2439fd026b6551b38d1f14a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a">mlx::core::simd::pow</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; base, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; <a class="el" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)</td></tr>
<tr class="separator:ab18b3a88a2439fd026b6551b38d1f14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4be4d88cd8eba7a8c1784fd53b86edb" id="r_ae4be4d88cd8eba7a8c1784fd53b86edb"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:ae4be4d88cd8eba7a8c1784fd53b86edb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; v, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; <a class="el" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; <a class="el" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>)</td></tr>
<tr class="separator:ae4be4d88cd8eba7a8c1784fd53b86edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ddc7f119cc1dc04372ec1adcaf55f70" id="r_a9ddc7f119cc1dc04372ec1adcaf55f70"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U, int N&gt; </td></tr>
<tr class="memitem:a9ddc7f119cc1dc04372ec1adcaf55f70"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; y, U z)</td></tr>
<tr class="separator:a9ddc7f119cc1dc04372ec1adcaf55f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5109118acb6766855878b9e8a56b156a" id="r_a5109118acb6766855878b9e8a56b156a"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a5109118acb6766855878b9e8a56b156a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:a5109118acb6766855878b9e8a56b156a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d968537ad5ef18630f5afce8453b30e" id="r_a9d968537ad5ef18630f5afce8453b30e"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a9d968537ad5ef18630f5afce8453b30e"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:a9d968537ad5ef18630f5afce8453b30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53b547b886918dc13d4da88eeb8811d2" id="r_a53b547b886918dc13d4da88eeb8811d2"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a53b547b886918dc13d4da88eeb8811d2"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:a53b547b886918dc13d4da88eeb8811d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fcea259041cecfd042d0c4e6afc4b8f" id="r_a6fcea259041cecfd042d0c4e6afc4b8f"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a6fcea259041cecfd042d0c4e6afc4b8f"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:a6fcea259041cecfd042d0c4e6afc4b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd4196d0c66204cfae70b064c305e146" id="r_acd4196d0c66204cfae70b064c305e146"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:acd4196d0c66204cfae70b064c305e146"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:acd4196d0c66204cfae70b064c305e146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a271cedfc48efc69db43813e8c424bf7c" id="r_a271cedfc48efc69db43813e8c424bf7c"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a271cedfc48efc69db43813e8c424bf7c"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:a271cedfc48efc69db43813e8c424bf7c"><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>
<tr class="memitem:ac368e4701363cfece4935e57f3c709b1" id="r_ac368e4701363cfece4935e57f3c709b1"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ac368e4701363cfece4935e57f3c709b1"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac368e4701363cfece4935e57f3c709b1">mlx::core::simd::max_size&lt; int8_t &gt;</a> = 16</td></tr>
<tr class="separator:ac368e4701363cfece4935e57f3c709b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e63a5eb08898b84fd4000dadc460fd9" id="r_a7e63a5eb08898b84fd4000dadc460fd9"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a7e63a5eb08898b84fd4000dadc460fd9"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7e63a5eb08898b84fd4000dadc460fd9">mlx::core::simd::max_size&lt; int16_t &gt;</a> = 16</td></tr>
<tr class="separator:a7e63a5eb08898b84fd4000dadc460fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab25fc96fa6f00d0a8c335b8da293fbbb" id="r_ab25fc96fa6f00d0a8c335b8da293fbbb"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ab25fc96fa6f00d0a8c335b8da293fbbb"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab25fc96fa6f00d0a8c335b8da293fbbb">mlx::core::simd::max_size&lt; int &gt;</a> = 8</td></tr>
<tr class="separator:ab25fc96fa6f00d0a8c335b8da293fbbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7913cb2854ffc37efcf26635a097f0a9" id="r_a7913cb2854ffc37efcf26635a097f0a9"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a7913cb2854ffc37efcf26635a097f0a9"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7913cb2854ffc37efcf26635a097f0a9">mlx::core::simd::max_size&lt; int64_t &gt;</a> = 4</td></tr>
<tr class="separator:a7913cb2854ffc37efcf26635a097f0a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f731e5a287c714dfc92879fe37503d5" id="r_a8f731e5a287c714dfc92879fe37503d5"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a8f731e5a287c714dfc92879fe37503d5"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8f731e5a287c714dfc92879fe37503d5">mlx::core::simd::max_size&lt; uint8_t &gt;</a> = 16</td></tr>
<tr class="separator:a8f731e5a287c714dfc92879fe37503d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cc9ca2925c25d2eb225af9125bd6bc4" id="r_a0cc9ca2925c25d2eb225af9125bd6bc4"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a0cc9ca2925c25d2eb225af9125bd6bc4"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a0cc9ca2925c25d2eb225af9125bd6bc4">mlx::core::simd::max_size&lt; uint16_t &gt;</a> = 16</td></tr>
<tr class="separator:a0cc9ca2925c25d2eb225af9125bd6bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06cb29f91deeaec69471058044abd2aa" id="r_a06cb29f91deeaec69471058044abd2aa"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a06cb29f91deeaec69471058044abd2aa"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a06cb29f91deeaec69471058044abd2aa">mlx::core::simd::max_size&lt; uint32_t &gt;</a> = 8</td></tr>
<tr class="separator:a06cb29f91deeaec69471058044abd2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab367b9b65be2fda4830a56fc9cc0cd2f" id="r_ab367b9b65be2fda4830a56fc9cc0cd2f"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ab367b9b65be2fda4830a56fc9cc0cd2f"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab367b9b65be2fda4830a56fc9cc0cd2f">mlx::core::simd::max_size&lt; uint64_t &gt;</a> = 4</td></tr>
<tr class="separator:ab367b9b65be2fda4830a56fc9cc0cd2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae745e117cacfe455df39aa4569c34c11" id="r_ae745e117cacfe455df39aa4569c34c11"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:ae745e117cacfe455df39aa4569c34c11"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae745e117cacfe455df39aa4569c34c11">mlx::core::simd::max_size&lt; float &gt;</a> = 8</td></tr>
<tr class="separator:ae745e117cacfe455df39aa4569c34c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fa3d1f571027c5cdd1dce5d2cd041e3" id="r_a3fa3d1f571027c5cdd1dce5d2cd041e3"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a3fa3d1f571027c5cdd1dce5d2cd041e3"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a3fa3d1f571027c5cdd1dce5d2cd041e3">mlx::core::simd::max_size&lt; double &gt;</a> = 4</td></tr>
<tr class="separator:a3fa3d1f571027c5cdd1dce5d2cd041e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a628420ebe2f37d352c8c4b0dd0db59d0" name="a628420ebe2f37d352c8c4b0dd0db59d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a628420ebe2f37d352c8c4b0dd0db59d0">&#9670;&#160;</a></span>MLX_SIMD_LIBRARY_VERSION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MLX_SIMD_LIBRARY_VERSION&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9aa795d90ddc485f24cd4a5268fe0e82" name="a9aa795d90ddc485f24cd4a5268fe0e82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9aa795d90ddc485f24cd4a5268fe0e82">&#9670;&#160;</a></span>SIMD_DEFAULT_BINARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIMD_DEFAULT_BINARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>OP</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keywordtype">int</span> N&gt; \</div>
<div class="line"> Simd&lt;T, N&gt; <span class="keyword">operator</span> OP(Simd&lt;T, N&gt; x, U y) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;typename Simd&lt;T, N&gt;::scalar_t&gt;(x.value OP y); \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keywordtype">int</span> N&gt; \</div>
<div class="line"> Simd&lt;T2, N&gt; <span class="keyword">operator</span> OP(T1 x, Simd&lt;T2, N&gt; y) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;typename Simd&lt;T2, N&gt;::scalar_t&gt;(x OP y.value); \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keywordtype">int</span> N&gt; \</div>
<div class="line"> Simd&lt;T1, N&gt; <span class="keyword">operator</span> OP(Simd&lt;T1, N&gt; x, Simd&lt;T2, N&gt; y) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;typename Simd&lt;T1, N&gt;::scalar_t&gt;(x.value OP y.value); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aca22aa431d399cea13c969926689b459" name="aca22aa431d399cea13c969926689b459"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca22aa431d399cea13c969926689b459">&#9670;&#160;</a></span>SIMD_DEFAULT_COMPARISONS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIMD_DEFAULT_COMPARISONS</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>OP</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt; \</div>
<div class="line"> Simd&lt;bool, N&gt; <span class="keyword">operator</span> OP(Simd&lt;T, N&gt; a, U b) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(a.value OP b); \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt; \</div>
<div class="line"> Simd&lt;bool, N&gt; <span class="keyword">operator</span> OP(T a, Simd&lt;U, N&gt; b) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(a OP b.value); \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> Simd&lt;bool, N&gt; <span class="keyword">operator</span> OP(Simd&lt;T1, N&gt; a, Simd&lt;T2, N&gt; b) { \</div>
<div class="line"> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(a.value OP b.value); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3b449b9ce2c623ab4dce3f6fe349bb6d" name="a3b449b9ce2c623ab4dce3f6fe349bb6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b449b9ce2c623ab4dce3f6fe349bb6d">&#9670;&#160;</a></span>SIMD_DEFAULT_UNARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIMD_DEFAULT_UNARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt; \</div>
<div class="line"> Simd&lt;T, N&gt; name(Simd&lt;T, N&gt; v) { \</div>
<div class="line"> <span class="keywordflow">return</span> op(v.value); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="accelerate__simd_8h.html">accelerate_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

113
docs/build/html/accelerate__simd_8h.js vendored Normal file
View File

@ -0,0 +1,113 @@
var accelerate__simd_8h =
[
[ "mlx::core::simd::ScalarT< T, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t.html", "structmlx_1_1core_1_1simd_1_1_scalar_t" ],
[ "mlx::core::simd::ScalarT< bool, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4" ],
[ "mlx::core::simd::ScalarT< int8_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4" ],
[ "mlx::core::simd::ScalarT< uint64_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4" ],
[ "mlx::core::simd::ScalarT< int64_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4" ],
[ "mlx::core::simd::Simd< T, N >", "structmlx_1_1core_1_1simd_1_1_simd.html", "structmlx_1_1core_1_1simd_1_1_simd" ],
[ "MLX_SIMD_LIBRARY_VERSION", "accelerate__simd_8h.html#a628420ebe2f37d352c8c4b0dd0db59d0", null ],
[ "SIMD_DEFAULT_BINARY", "accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82", null ],
[ "SIMD_DEFAULT_COMPARISONS", "accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459", null ],
[ "SIMD_DEFAULT_UNARY", "accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d", null ],
[ "mlx::core::simd::abs", "namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad", null ],
[ "mlx::core::simd::acos", "namespacemlx_1_1core_1_1simd.html#a85999467c83b07e4fa5f093f7ddf19e1", null ],
[ "mlx::core::simd::acosh", "namespacemlx_1_1core_1_1simd.html#a90092f3826ad3be4b2b1785f7ff4a86b", null ],
[ "mlx::core::simd::all", "namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a", null ],
[ "mlx::core::simd::any", "namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e", null ],
[ "mlx::core::simd::asin", "namespacemlx_1_1core_1_1simd.html#a069963ffb15f06d1c48258054750dadf", null ],
[ "mlx::core::simd::asinh", "namespacemlx_1_1core_1_1simd.html#a7b47a5f370e8e59e1debfa5405e13266", null ],
[ "mlx::core::simd::atan", "namespacemlx_1_1core_1_1simd.html#a99e84cece5722fb764844a2badc5426b", null ],
[ "mlx::core::simd::atan2", "namespacemlx_1_1core_1_1simd.html#ac6104b5667e0eb379528bf7e2de23bee", null ],
[ "mlx::core::simd::atanh", "namespacemlx_1_1core_1_1simd.html#ae55fd26c3e18a6a27679d2b47566f8bc", null ],
[ "mlx::core::simd::ceil", "namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12", null ],
[ "mlx::core::simd::clamp", "namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb", null ],
[ "mlx::core::simd::cosh", "namespacemlx_1_1core_1_1simd.html#aa5b4f7d3b776e8d16907e15a11800f01", null ],
[ "mlx::core::simd::expm1", "namespacemlx_1_1core_1_1simd.html#a464687a8809d0180035acc9af2943a94", null ],
[ "mlx::core::simd::floor", "namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052", null ],
[ "mlx::core::simd::fma", "namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70", null ],
[ "mlx::core::simd::isnan", "namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65", null ],
[ "mlx::core::simd::log", "namespacemlx_1_1core_1_1simd.html#a97a8ca857fe0edd84c68dc0f3dc2c6c4", null ],
[ "mlx::core::simd::log10", "namespacemlx_1_1core_1_1simd.html#aba81b735e8f99cedf8b4846b2ab4e236", null ],
[ "mlx::core::simd::log1p", "namespacemlx_1_1core_1_1simd.html#a830591eb3007fef5d87dc296f5615108", null ],
[ "mlx::core::simd::log2", "namespacemlx_1_1core_1_1simd.html#acb1c49b90d029bc4a7eed257ec52791d", null ],
[ "mlx::core::simd::max", "namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f", null ],
[ "mlx::core::simd::maximum", "namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16", null ],
[ "mlx::core::simd::min", "namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146", null ],
[ "mlx::core::simd::minimum", "namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4", null ],
[ "mlx::core::simd::operator!", "namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#a125cbaa7c5dd0931b0abd11003ab584a", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#a5c49123bf2647a5ca4f0579a54f3e53a", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#a0727c897502944659b3e32b3cde9ee9b", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#ac790406f4cf51cbc40d750d377dd741b", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#a832bbc02ed5589e70106c831c04500f1", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#a85c23e7ed6fe0ec6dfe4c61f7412a362", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#a070f1fa094cf2da5ab7d6baecbbf4f56", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#a8a2c8aea209236b06c594c8451017ecb", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#a08c1e7a00b1b4bc60e30d1554f4f46f2", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#a4555cd6a3b50af00700f97fdf00f63a7", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#ae4ec5f1f081d20b46b13eb83eb1b6431", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#aac6acd134f1498b4fb45fdbc882335bf", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#aed655ffa017ade5e0f954f906d9f7ae6", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#a8b622c47d07b171b2303ea744bf72284", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#af5be79b8dada8f8e91ae7c03c16606ec", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#ad5761065b4a655cd086d88846ae08d97", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#a678cddce777549a39474449d56fd1de6", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#acc490f7f5195acfa7b7c5df7afb39438", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#ac86a54a5e2ccc79bc92739f143bc0bef", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#a18a2689f4ae197c5b204fe9b3370da4c", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#ac5d10f465c21ab259041042ff0159187", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#a6cd6e41660608d17ca8d38658d5e385c", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#ac962a14c88c87082fc70a9c0370f35b0", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#ad9bebf95b37fa0c6517be82af5ccd4eb", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#ae21cbfd232edd7fe0f6f6c9fa11a354e", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#a4ecd782ffa497ac7dc2482a232b0dd00", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#a56fccba38270fe3ae9fa7b2ecdeb5e87", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#aadd49786edc08f867e592d234327a031", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#ae0fcb84973e4762a543ad3843db4f153", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a63768090c16e5dcffccadf550d169abc", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a46ede415296683771bb22246a813482a", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#abd37e62eff936a64677b5aba787b4d18", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#ab7b291b3559792e18208e17432d25342", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#a71a6902e729e3facdc609e93cd12d485", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#a87e11ab36aae3328fe3d5230bdf31692", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#a673b4d8d228f35f06cf5b882335f04d5", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#a4e65febbfa8b4df2970c1d78801b3c66", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#a6e45c9c2f0591d9d5dd37a07ebcc3c2a", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#aebf93b8179621e83bb3f3c4a8816eca8", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#aa35a2aab733e4bfc80a9f4e3f508daee", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a25b3de1947dbab7c4864b41ec226453b", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a16c4a2c8fc59a2e2fcc05db243289706", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a93e69a8170b8fe14f0a3188b4e8ccd49", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#ab2b540d7329491000e7722f9b3ef797d", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#acd57dc91aa205d9d3f8804df4261a7fb", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#a0cd57bba23daed624df5e2b06b676dca", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ab2bc61c02b9096163e9db91a3f88788f", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#ac34f6b278627949d2ee68cdbf3d2f50f", null ],
[ "mlx::core::simd::pow", "namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a", null ],
[ "mlx::core::simd::prod", "namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c", null ],
[ "mlx::core::simd::recip", "namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61", null ],
[ "mlx::core::simd::remainder", "namespacemlx_1_1core_1_1simd.html#ab020d2c434fad0cdf79fd37b0f6c1676", null ],
[ "mlx::core::simd::rint", "namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974", null ],
[ "mlx::core::simd::rsqrt", "namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70", null ],
[ "mlx::core::simd::select", "namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef", null ],
[ "mlx::core::simd::sinh", "namespacemlx_1_1core_1_1simd.html#a479ccddac341bd0760857b77e449e5e1", null ],
[ "mlx::core::simd::sqrt", "namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414", null ],
[ "mlx::core::simd::sum", "namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2", null ],
[ "mlx::core::simd::tan", "namespacemlx_1_1core_1_1simd.html#a829842f854aecfae93b7d42f83aec9a7", null ],
[ "mlx::core::simd::tanh", "namespacemlx_1_1core_1_1simd.html#ad78f543dc5da87a14ca113a1dd9852fd", null ],
[ "mlx::core::simd::max_size< double >", "namespacemlx_1_1core_1_1simd.html#a3fa3d1f571027c5cdd1dce5d2cd041e3", null ],
[ "mlx::core::simd::max_size< float >", "namespacemlx_1_1core_1_1simd.html#ae745e117cacfe455df39aa4569c34c11", null ],
[ "mlx::core::simd::max_size< int >", "namespacemlx_1_1core_1_1simd.html#ab25fc96fa6f00d0a8c335b8da293fbbb", null ],
[ "mlx::core::simd::max_size< int16_t >", "namespacemlx_1_1core_1_1simd.html#a7e63a5eb08898b84fd4000dadc460fd9", null ],
[ "mlx::core::simd::max_size< int64_t >", "namespacemlx_1_1core_1_1simd.html#a7913cb2854ffc37efcf26635a097f0a9", null ],
[ "mlx::core::simd::max_size< int8_t >", "namespacemlx_1_1core_1_1simd.html#ac368e4701363cfece4935e57f3c709b1", null ],
[ "mlx::core::simd::max_size< uint16_t >", "namespacemlx_1_1core_1_1simd.html#a0cc9ca2925c25d2eb225af9125bd6bc4", null ],
[ "mlx::core::simd::max_size< uint32_t >", "namespacemlx_1_1core_1_1simd.html#a06cb29f91deeaec69471058044abd2aa", null ],
[ "mlx::core::simd::max_size< uint64_t >", "namespacemlx_1_1core_1_1simd.html#ab367b9b65be2fda4830a56fc9cc0cd2f", null ],
[ "mlx::core::simd::max_size< uint8_t >", "namespacemlx_1_1core_1_1simd.html#a8f731e5a287c714dfc92879fe37503d5", null ]
];

View File

@ -0,0 +1,545 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/accelerate_simd.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('accelerate__simd_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">accelerate_simd.h</div></div>
</div><!--header-->
<div class="contents">
<a href="accelerate__simd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &lt;<a class="code" href="math_8h.html">simd/math.h</a>&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;simd/vector.h&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;complex&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="base__simd_8h.html">mlx/backend/cpu/simd/base_simd.h</a>&quot;</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="comment">// There seems to be a bug in sims/base.h</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">// __XROS_2_0 is not defined, the expression evaluates</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// to true instead of false setting the SIMD library</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">// higher than it should be even on macOS &lt; 15</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 150000 || \</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor"> __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 180000 || \</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor"> __WATCH_OS_VERSION_MIN_REQUIRED &gt;= 110000 || \</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor"> __WATCH_OS_VERSION_MIN_REQUIRED &gt;= 110000 || \</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor"> __TV_OS_VERSION_MIN_REQUIRED &gt;= 180000</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define MLX_SIMD_LIBRARY_VERSION 6</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#a628420ebe2f37d352c8c4b0dd0db59d0"> 23</a></span><span class="preprocessor">#define MLX_SIMD_LIBRARY_VERSION 5</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a> {</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"> 28</span><span class="comment">// Apple simd namespace</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">namespace </span>asd = ::simd;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">// This indirection is needed to remap certain types to ones that accelerate</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">// SIMD can handle</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="};">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html"> 34</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a> {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49"> 35</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49">v</a> = T;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>};</div>
</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="};">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html"> 38</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a>&lt;bool, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html#a3d47d5ad1ff8981bd9876a5fc1870174"> 39</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html#a3d47d5ad1ff8981bd9876a5fc1870174">v</a> = char;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div>
</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00042" data-start="{" data-end="};">
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html"> 42</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a>&lt;int8_t, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html#af2775b07509324182bd715aac65b7eb0"> 43</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html#af2775b07509324182bd715aac65b7eb0">v</a> = char;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>};</div>
</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html"> 46</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a>&lt;uint64_t, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html#aaf352e77f7ab310c40a31d3dd2bde0eb"> 47</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html#aaf352e77f7ab310c40a31d3dd2bde0eb">v</a> = <span class="keywordtype">unsigned</span> long;</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><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00050" data-start="{" data-end="};">
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html"> 50</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">ScalarT</a>&lt;int64_t, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html#aa36db163e4909aea98b7129764184801"> 51</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html#aa36db163e4909aea98b7129764184801">v</a> = long;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="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_1simd_1_1_simd.html"> 55</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd</a> {</div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="}">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab"> 56</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#aa2b56facc70ba4e8d33a74def204a1fd">size</a> = <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd.html#a26040194a37172b6aed7c5d1685362fb"> 57</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_simd.html#a26040194a37172b6aed7c5d1685362fb">scalar_t</a> = <span class="keyword">typename</span> <a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49">ScalarT&lt;T, N&gt;::v</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N&gt;</a>() {}</div>
</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N&gt;</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;U, N&gt;</a> other) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>(asd::convert&lt;<a class="code hl_typedef" href="structmlx_1_1core_1_1simd_1_1_simd.html#a26040194a37172b6aed7c5d1685362fb">scalar_t</a>&gt;(other.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)) {}</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N&gt;</a>(U v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>(v){};</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"> 67</span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N&gt;</a>(<a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N / 2&gt;</a> x, <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">Simd&lt;T, N / 2&gt;</a> y) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a> = asd::make&lt;typename asd::Vector&lt;scalar_t, N&gt;::packed_t&gt;(</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> x.value, y.value);</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"> 71</span> </div>
<div class="foldopen" id="foldopen00072" data-start="{" data-end="}">
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd.html#a235268dc56eb1bb5b86cd3aade67b77c"> 72</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#a235268dc56eb1bb5b86cd3aade67b77c">operator[]</a>(<span class="keywordtype">int</span> idx)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T*<span class="keyword">&gt;</span>(&amp;<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)[idx];</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="}">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd.html#ae877ce4884241399de8e28090441f557"> 76</a></span> T&amp; <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd.html#ae877ce4884241399de8e28090441f557">operator[]</a>(<span class="keywordtype">int</span> idx) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T*<span class="keyword">&gt;</span>(&amp;<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)[idx];</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf"> 80</a></span> <span class="keyword">typename</span> asd::Vector&lt;scalar_t, N&gt;::packed_t <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>};</div>
</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment">// Values chosen based on benchmarks on M3 Max</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">// TODO: consider choosing these more optimally</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac368e4701363cfece4935e57f3c709b1"> 86</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;int8_t&gt;</a> = 16;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7e63a5eb08898b84fd4000dadc460fd9"> 88</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;int16_t&gt;</a> = 16;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab25fc96fa6f00d0a8c335b8da293fbbb"> 90</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;int&gt;</a> = 8;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7913cb2854ffc37efcf26635a097f0a9"> 92</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;int64_t&gt;</a> = 4;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8f731e5a287c714dfc92879fe37503d5"> 94</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;uint8_t&gt;</a> = 16;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a0cc9ca2925c25d2eb225af9125bd6bc4"> 96</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;uint16_t&gt;</a> = 16;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a06cb29f91deeaec69471058044abd2aa"> 98</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;uint32_t&gt;</a> = 8;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab367b9b65be2fda4830a56fc9cc0cd2f"> 100</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;uint64_t&gt;</a> = 4;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae745e117cacfe455df39aa4569c34c11"> 102</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;float&gt;</a> = 8;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3fa3d1f571027c5cdd1dce5d2cd041e3"> 104</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size&lt;double&gt;</a> = 4;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="foldopen" id="foldopen00106" data-start="" data-end="">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d"> 106</a></span><span class="preprocessor">#define SIMD_DEFAULT_UNARY(name, op) \</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"> template &lt;typename T, int N&gt; \</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor"> Simd&lt;T, N&gt; name(Simd&lt;T, N&gt; v) { \</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor"> return op(v.value); \</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor"> }</span></div>
</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"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad"> 112</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">abs</a>, asd::abs)</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052"> 113</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>)</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a85999467c83b07e4fa5f093f7ddf19e1"> 114</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>)</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a90092f3826ad3be4b2b1785f7ff4a86b"> 115</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>)</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a069963ffb15f06d1c48258054750dadf"> 116</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>)</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7b47a5f370e8e59e1debfa5405e13266"> 117</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a99e84cece5722fb764844a2badc5426b"> 118</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae55fd26c3e18a6a27679d2b47566f8bc"> 119</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12"> 120</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa5b4f7d3b776e8d16907e15a11800f01"> 121</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a464687a8809d0180035acc9af2943a94"> 122</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a97a8ca857fe0edd84c68dc0f3dc2c6c4"> 123</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>)</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acb1c49b90d029bc4a7eed257ec52791d"> 124</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>)</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aba81b735e8f99cedf8b4846b2ab4e236"> 125</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a830591eb3007fef5d87dc296f5615108"> 126</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>)</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974"> 127</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a479ccddac341bd0760857b77e449e5e1"> 128</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414"> 129</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70"> 130</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61"> 131</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">recip</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">recip</a>)</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a829842f854aecfae93b7d42f83aec9a7"> 132</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ad78f543dc5da87a14ca113a1dd9852fd"> 133</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>, asd::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</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>template &lt;typename T, <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt;</div>
<div class="foldopen" id="foldopen00136" data-start="{" data-end="}">
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af5be79b8dada8f8e91ae7c03c16606ec"> 136</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; operator-(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; v) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> -v.value;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>}</div>
</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><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="}">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65"> 141</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a> != v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>}</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">// No simd_boolN in accelerate, use int8_t instead</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00147" data-start="{" data-end="}">
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf"> 147</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">operator!</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">return</span> asd::convert&lt;char&gt;(!v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>}</div>
</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="foldopen" id="foldopen00151" data-start="" data-end="">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82"> 151</a></span><span class="preprocessor">#define SIMD_DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor"> template &lt;typename T, typename U, int N&gt; \</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor"> Simd&lt;T, N&gt; operator OP(Simd&lt;T, N&gt; x, U y) { \</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T, N&gt;::scalar_t&gt;(x.value OP y); \</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor"> Simd&lt;T2, N&gt; operator OP(T1 x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T2, N&gt;::scalar_t&gt;(x OP y.value); \</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor"> template &lt;typename T1, typename T2, int N&gt; \</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor"> Simd&lt;T1, N&gt; operator OP(Simd&lt;T1, N&gt; x, Simd&lt;T2, N&gt; y) { \</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor"> return asd::convert&lt;typename Simd&lt;T1, N&gt;::scalar_t&gt;(x.value OP y.value); \</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aac6acd134f1498b4fb45fdbc882335bf"> 165</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ad5761065b4a655cd086d88846ae08d97"> 166</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac86a54a5e2ccc79bc92739f143bc0bef"> 167</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a08c1e7a00b1b4bc60e30d1554f4f46f2"> 168</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6e45c9c2f0591d9d5dd37a07ebcc3c2a"> 170</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab2b540d7329491000e7722f9b3ef797d"> 171</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a25b3de1947dbab7c4864b41ec226453b"> 172</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a0727c897502944659b3e32b3cde9ee9b"> 173</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a85c23e7ed6fe0ec6dfe4c61f7412a362"> 174</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab380b8f73672727a38ea0931e731fe4a"> 175</a></span><a class="code hl_define" href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="foldopen" id="foldopen00177" data-start="" data-end="">
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459"> 177</a></span><span class="preprocessor">#define SIMD_DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T, N&gt; a, U b) { \</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b); \</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="preprocessor"> template &lt;int N, typename T, typename U&gt; \</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(T a, Simd&lt;U, N&gt; b) { \</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a OP b.value); \</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor"> template &lt;int N, typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="preprocessor"> Simd&lt;bool, N&gt; operator OP(Simd&lt;T1, N&gt; a, Simd&lt;T2, N&gt; b) { \</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="preprocessor"> return asd::convert&lt;char&gt;(a.value OP b.value); \</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6cd6e41660608d17ca8d38658d5e385c"> 191</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;)</div>
</div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4d5e4c31af23d2871e09b88c1f6e418c"> 193</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(&lt;=)</div>
</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a273fcc5387c1c9878e658ba6bc32f00c"> 195</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4971bfe7f9f9319f859b3040c18f39ca"> 196</a></span><a class="code hl_define" href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span>template &lt;typename T, <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt;</div>
<div class="foldopen" id="foldopen00199" data-start="{" data-end="}">
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac6104b5667e0eb379528bf7e2de23bee"> 199</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a>&gt; b) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> asd::atan2(a.value, b.value);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16"> 204</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">return</span> asd::max(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span>}</div>
</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00210" data-start="{" data-end="}">
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4"> 210</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// TODO add isnan</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> asd::min(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span>}</div>
</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00216" data-start="{" data-end="}">
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab020d2c434fad0cdf79fd37b0f6c1676"> 216</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> b) {</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> r;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> r = asd::remainder(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> r = a - b * (a / b);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">auto</span> mask = r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> r = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(mask, r + b, r);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> }</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span>}</div>
</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> MaskT, <span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00231" data-start="{" data-end="}">
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef"> 231</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;MaskT, N&gt;</a> mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T1, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T2, N&gt;</a> y) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 1) {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;char&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 2) {</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;short&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<span class="keyword">sizeof</span>(T1) == 4) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;int&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">return</span> asd::bitselect(y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, asd::convert&lt;long&gt;(mask.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>));</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00244" data-start="{" data-end="}">
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab18b3a88a2439fd026b6551b38d1f14a"> 244</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> base, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">return</span> asd::pow(base.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>.value);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> res = 1;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>)) {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> res = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1, res * base, res);</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> base = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>, base * base, base);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt; 1;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span>}</div>
</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00259" data-start="{" data-end="}">
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb"> 259</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">return</span> asd::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>}</div>
</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00264" data-start="{" data-end="}">
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70"> 264</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> y, U z) {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">return</span> asd::muladd(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span>}</div>
</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> </div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment">// Reductions</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00271" data-start="{" data-end="}">
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a"> 271</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> asd::all(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span>}</div>
</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00275" data-start="{" data-end="}">
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e"> 275</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> asd::any(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span>}</div>
</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00279" data-start="{" data-end="}">
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2"> 279</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> asd::reduce_add(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span>}</div>
</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f"> 283</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">return</span> asd::reduce_max(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span>}</div>
</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00287" data-start="{" data-end="}">
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146"> 287</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> asd::reduce_min(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span>}</div>
</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00292" data-start="{" data-end="}">
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c"> 292</a></span>T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">auto</span> ptr = (T*)&amp;x;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">auto</span> lhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">auto</span> rhs = <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>&lt;T, <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2&gt;(ptr + <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> / 2);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>(lhs * rhs);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span>}</div>
</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor">#if __ARM_FEATURE_FP16_VECTOR_ARITHMETIC</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="preprocessor">#include &quot;<a class="code" href="accelerate__fp16__simd_8h.html">mlx/backend/cpu/simd/accelerate_fp16_simd.h</a>&quot;</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aaccelerate__fp16__simd_8h_html"><div class="ttname"><a href="accelerate__fp16__simd_8h.html">accelerate_fp16_simd.h</a></div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_a3b449b9ce2c623ab4dce3f6fe349bb6d"><div class="ttname"><a href="accelerate__simd_8h.html#a3b449b9ce2c623ab4dce3f6fe349bb6d">SIMD_DEFAULT_UNARY</a></div><div class="ttdeci">#define SIMD_DEFAULT_UNARY(name, op)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:106</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_a9aa795d90ddc485f24cd4a5268fe0e82"><div class="ttname"><a href="accelerate__simd_8h.html#a9aa795d90ddc485f24cd4a5268fe0e82">SIMD_DEFAULT_BINARY</a></div><div class="ttdeci">#define SIMD_DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:151</div></div>
<div class="ttc" id="aaccelerate__simd_8h_html_aca22aa431d399cea13c969926689b459"><div class="ttname"><a href="accelerate__simd_8h.html#aca22aa431d399cea13c969926689b459">SIMD_DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define SIMD_DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:177</div></div>
<div class="ttc" id="abase__simd_8h_html"><div class="ttname"><a href="base__simd_8h.html">base_simd.h</a></div></div>
<div class="ttc" id="amath_8h_html"><div class="ttname"><a href="math_8h.html">math.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a09a2f3f2bc999c16babf3d8d90994d6e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; sinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:41</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a18d330fd2c7360b2890a722232ba35b7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:34</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:210</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a3cb6ea94836e999c07329b34c501ed85"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log10(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:39</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a400d89d040f43d471b306a8e8bdb3974"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">mlx::core::simd::rint</a></div><div class="ttdeci">Simd&lt; T, N &gt; rint(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:127</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a445ddc4ed928656df64d889942588cfd"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f3cc8b2493586e83fd65640df3b60ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a></div><div class="ttdeci">Simd&lt; T, N &gt; abs(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:112</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:271</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:279</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:283</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a745e05627c77152ec13d8d90c19cc9bf"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a745e05627c77152ec13d8d90c19cc9bf">mlx::core::simd::operator!</a></div><div class="ttdeci">Simd&lt; bool, N &gt; operator!(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:147</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:204</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8e22c484298d9af10b6604c835e52052"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a></div><div class="ttdeci">Simd&lt; T, N &gt; floor(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:113</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:275</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:287</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae1d5460c58c507a0104d8dfa90343f12"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a></div><div class="ttdeci">Simd&lt; T, N &gt; ceil(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae344abefc91c7d9c0a9506c868a84d61"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">mlx::core::simd::recip</a></div><div class="ttdeci">Simd&lt; T, N &gt; recip(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:131</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae39b8e1d1fff94947406eeb8ec6e0414"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; sqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:129</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:259</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aea75ddf8c696efc2e5e924667ed48e70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; rsqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:130</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4_html_a3d47d5ad1ff8981bd9876a5fc1870174"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html#a3d47d5ad1ff8981bd9876a5fc1870174">mlx::core::simd::ScalarT&lt; bool, N &gt;::v</a></div><div class="ttdeci">char v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:39</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4_html_aa36db163e4909aea98b7129764184801"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html#aa36db163e4909aea98b7129764184801">mlx::core::simd::ScalarT&lt; int64_t, N &gt;::v</a></div><div class="ttdeci">long v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:51</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4_html_af2775b07509324182bd715aac65b7eb0"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html#af2775b07509324182bd715aac65b7eb0">mlx::core::simd::ScalarT&lt; int8_t, N &gt;::v</a></div><div class="ttdeci">char v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:43</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4_html_aaf352e77f7ab310c40a31d3dd2bde0eb"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html#aaf352e77f7ab310c40a31d3dd2bde0eb">mlx::core::simd::ScalarT&lt; uint64_t, N &gt;::v</a></div><div class="ttdeci">unsigned long v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:47</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t.html">mlx::core::simd::ScalarT</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_scalar_t_html_af165519c33808c4f815143f77739db49"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_scalar_t.html#af165519c33808c4f815143f77739db49">mlx::core::simd::ScalarT::v</a></div><div class="ttdeci">T v</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:35</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html">mlx::core::simd::Simd</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a235268dc56eb1bb5b86cd3aade67b77c"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a235268dc56eb1bb5b86cd3aade67b77c">mlx::core::simd::Simd::operator[]</a></div><div class="ttdeci">T operator[](int idx) const</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:72</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a26040194a37172b6aed7c5d1685362fb"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a26040194a37172b6aed7c5d1685362fb">mlx::core::simd::Simd::scalar_t</a></div><div class="ttdeci">typename ScalarT&lt; T, N &gt;::v scalar_t</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:57</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a36e2b7db5ce6eb4dd456e99a4cd2c2cf"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">mlx::core::simd::Simd::value</a></div><div class="ttdeci">asd::Vector&lt; scalar_t, N &gt;::packed_t value</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:80</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a5c24246e05e833fd81d900226a29e6ab"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a5c24246e05e833fd81d900226a29e6ab">mlx::core::simd::Simd::Simd</a></div><div class="ttdeci">Simd()</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:59</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_aa2b56facc70ba4e8d33a74def204a1fd"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#aa2b56facc70ba4e8d33a74def204a1fd">mlx::core::simd::Simd::size</a></div><div class="ttdeci">static constexpr int size</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:56</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_ae877ce4884241399de8e28090441f557"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#ae877ce4884241399de8e28090441f557">mlx::core::simd::Simd::operator[]</a></div><div class="ttdeci">T &amp; operator[](int idx)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:76</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="accelerate__simd_8h.html">accelerate_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/allocator.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -148,7 +148,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="allocator_8h.html">allocator.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/allocator.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -213,7 +213,7 @@ $(function(){initNavTree('allocator_8h_source.html',''); initResizable(true); })
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="allocator_8h.html">allocator.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -113,10 +113,10 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_0_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="structmetal_1_1is__static.html" target="_self">is_static</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1make__void.html" target="_self">make_void</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1pointer__element.html" target="_self">pointer_element</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1pointer__element.html" target="_self">pointer_element&lt; constant T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1pointer__element.html" target="_self">pointer_element&lt; device T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_7_" 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="structmetal_1_1pointer__element.html" target="_self">pointer_element&lt; thread T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" 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="structmetal_1_1pointer__element.html" target="_self">pointer_element&lt; threadgroup T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html" target="_self">pointer_element&lt; constant T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_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="structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html" target="_self">pointer_element&lt; device T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_7_" 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="structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html" target="_self">pointer_element&lt; thread T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" 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="structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html" target="_self">pointer_element&lt; threadgroup T * &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx.html" target="_self">mlx</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core.html" target="_self">core</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1allocator.html" target="_self">allocator</a></td><td class="desc"></td></tr>
@ -150,42 +150,41 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_0_1_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html" target="_self">IntOrFloat</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html" target="_self">InTracing</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_retain_graph.html" target="_self">RetainGraph</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_in_tracing.html" target="_self">InTracing</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_left_shift.html" target="_self">LeftShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log2.html" target="_self">Log2</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_34_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_35_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_36_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_37_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_38_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_39_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_40_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_41_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html" target="_self">NaNEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_42_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_43_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_44_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_45_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_46_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_47_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_retain_graph.html" target="_self">RetainGraph</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_48_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_right_shift.html" target="_self">RightShift</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_49_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_50_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_rsqrt.html" target="_self">Rsqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_51_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_52_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_53_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_54_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_55_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_56_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_57_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_58_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_59_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_2_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed.html" target="_self">distributed</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_2_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1detail_1_1_group_impl.html" target="_self">GroupImpl</a></td><td class="desc">Abstract base class of a distributed group implementation </td></tr>
@ -225,65 +224,73 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_7_" class="arrow" onclick="dynsection.toggleFolder('1_0_7_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1scheduler.html" target="_self">scheduler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_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_1scheduler_1_1_scheduler.html" target="_self">Scheduler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_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="structmlx_1_1core_1_1scheduler_1_1_stream_thread.html" target="_self">StreamThread</a></td><td class="desc"></td></tr>
<tr id="row_1_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="structmlx_1_1core_1_1___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_1_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="structmlx_1_1core_1_1___m_l_x___float16.html" target="_self">_MLX_Float16</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_add_m_m.html" target="_self">AddMM</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arange.html" target="_self">Arange</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_partition.html" target="_self">ArgPartition</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_reduce.html" target="_self">ArgReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_sort.html" target="_self">ArgSort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_24_" class="arrow" onclick="dynsection.toggleFolder('1_0_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1array.html" target="_self">array</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1array_1_1_array_iterator.html" target="_self">ArrayIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_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="structmlx_1_1core_1_1array_1_1_data.html" target="_self">Data</a></td><td class="desc"></td></tr>
<tr id="row_1_0_24_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="structmlx_1_1core_1_1array_1_1_flags.html" target="_self">Flags</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_as_strided.html" target="_self">AsStrided</a></td><td class="desc"></td></tr>
<tr id="row_1_0_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_type.html" target="_self">AsType</a></td><td class="desc"></td></tr>
<tr id="row_1_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html" target="_self">BitwiseBinary</a></td><td class="desc"></td></tr>
<tr id="row_1_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast_axes.html" target="_self">BroadcastAxes</a></td><td class="desc"></td></tr>
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_33_" class="arrow" onclick="dynsection.toggleFolder('1_0_33_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html" target="_self">DefaultContiguousReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html" target="_self">DefaultStridedReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice.html" target="_self">DynamicSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice_update.html" target="_self">DynamicSliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expand_dims.html" target="_self">ExpandDims</a></td><td class="desc"></td></tr>
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_8_" class="arrow" onclick="dynsection.toggleFolder('1_0_8_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1simd.html" target="_self">simd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1simd_1_1_scalar_t.html" target="_self">ScalarT</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html" target="_self">ScalarT&lt; bool, N &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html" target="_self">ScalarT&lt; int64_t, N &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html" target="_self">ScalarT&lt; int8_t, N &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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="structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html" target="_self">ScalarT&lt; uint64_t, N &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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="structmlx_1_1core_1_1simd_1_1_simd.html" target="_self">Simd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_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="structmlx_1_1core_1_1simd_1_1_simd_3_01float16__t_00_01_n_01_4.html" target="_self">Simd&lt; float16_t, N &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html" target="_self">Simd&lt; T, 1 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_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="structmlx_1_1core_1_1___m_l_x___b_float16.html" target="_self">_MLX_BFloat16</a></td><td class="desc"></td></tr>
<tr id="row_1_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="structmlx_1_1core_1_1___m_l_x___float16.html" target="_self">_MLX_Float16</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_abs.html" target="_self">Abs</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_add.html" target="_self">Add</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_add_m_m.html" target="_self">AddMM</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arange.html" target="_self">Arange</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_cos.html" target="_self">ArcCos</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_cosh.html" target="_self">ArcCosh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_sin.html" target="_self">ArcSin</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_sinh.html" target="_self">ArcSinh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tan.html" target="_self">ArcTan</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tan2.html" target="_self">ArcTan2</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arc_tanh.html" target="_self">ArcTanh</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_partition.html" target="_self">ArgPartition</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_reduce.html" target="_self">ArgReduce</a></td><td class="desc"></td></tr>
<tr id="row_1_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="classmlx_1_1core_1_1_arg_sort.html" target="_self">ArgSort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_25_" class="arrow" onclick="dynsection.toggleFolder('1_0_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1array.html" target="_self">array</a></td><td class="desc"></td></tr>
<tr id="row_1_0_25_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1array_1_1_array_iterator.html" target="_self">ArrayIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_25_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="structmlx_1_1core_1_1array_1_1_data.html" target="_self">Data</a></td><td class="desc"></td></tr>
<tr id="row_1_0_25_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="structmlx_1_1core_1_1array_1_1_flags.html" target="_self">Flags</a></td><td class="desc"></td></tr>
<tr id="row_1_0_26_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_strided.html" target="_self">AsStrided</a></td><td class="desc"></td></tr>
<tr id="row_1_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_as_type.html" target="_self">AsType</a></td><td class="desc"></td></tr>
<tr id="row_1_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html" target="_self">BitwiseBinary</a></td><td class="desc"></td></tr>
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast_axes.html" target="_self">BroadcastAxes</a></td><td class="desc"></td></tr>
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_34_" class="arrow" onclick="dynsection.toggleFolder('1_0_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_34_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice.html" target="_self">DynamicSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice_update.html" target="_self">DynamicSliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expand_dims.html" target="_self">ExpandDims</a></td><td class="desc"></td></tr>
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_fence.html" target="_self">Fence</a></td><td class="desc"></td></tr>
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1finfo.html" target="_self">finfo</a></td><td class="desc">Holds information about floating-point types </td></tr>
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_flatten.html" target="_self">Flatten</a></td><td class="desc"></td></tr>
@ -291,94 +298,97 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_function_exporter.html" target="_self">FunctionExporter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_imported_function.html" target="_self">ImportedFunction</a></td><td class="desc"></td></tr>
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_jit_compiler.html" target="_self">JitCompiler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_97_" class="arrow" onclick="dynsection.toggleFolder('1_0_97_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">bfloat_or_bits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_99_" class="arrow" onclick="dynsection.toggleFolder('1_0_99_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits&lt; float16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">half_or_bits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
<tr id="row_1_0_126_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_127_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_128_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_squeeze.html" target="_self">Squeeze</a></td><td class="desc"></td></tr>
<tr id="row_1_0_129_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
<tr id="row_1_0_130_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
<tr id="row_1_0_131_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_132_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_133_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
<tr id="row_1_0_134_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_135_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_136_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
<tr id="row_1_0_137_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_138_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_139_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unflatten.html" target="_self">Unflatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_140_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_axis.html" target="_self">GatherAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_imported_function.html" target="_self">ImportedFunction</a></td><td class="desc"></td></tr>
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_jit_compiler.html" target="_self">JitCompiler</a></td><td class="desc"></td></tr>
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html" target="_self">numeric_limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float_01_4.html" target="_self">numeric_limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html" target="_self">numeric_limits&lt; float16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_scalar_vector.html" target="_self">ScalarVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter_axis.html" target="_self">ScatterAxis</a></td><td class="desc"></td></tr>
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
<tr id="row_1_0_126_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
<tr id="row_1_0_127_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
<tr id="row_1_0_128_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
<tr id="row_1_0_129_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
<tr id="row_1_0_130_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
<tr id="row_1_0_131_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_squeeze.html" target="_self">Squeeze</a></td><td class="desc"></td></tr>
<tr id="row_1_0_132_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
<tr id="row_1_0_133_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
<tr id="row_1_0_134_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
<tr id="row_1_0_135_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
<tr id="row_1_0_136_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
<tr id="row_1_0_137_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
<tr id="row_1_0_138_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
<tr id="row_1_0_139_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
<tr id="row_1_0_140_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
<tr id="row_1_0_141_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
<tr id="row_1_0_142_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unflatten.html" target="_self">Unflatten</a></td><td class="desc"></td></tr>
<tr id="row_1_0_143_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_scalar.html" target="_self">VectorScalar</a></td><td class="desc"></td></tr>
<tr id="row_1_0_144_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_vector_vector.html" target="_self">VectorVector</a></td><td class="desc"></td></tr>
<tr id="row_1_0_145_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1steel.html" target="_self">steel</a></td><td class="desc"></td></tr>
<tr id="row_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_accum_helper.html" target="_self">AccumHelper</a></td><td class="desc"></td></tr>
<tr id="row_1_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_attn_params.html" target="_self">AttnParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_base_m_m_a_frag.html" target="_self">BaseMMAFrag</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_base_m_m_a_frag.html" target="_self">BaseMMAFrag&lt; T, 8, 8 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html" target="_self">BaseMMAFrag&lt; T, 8, 8 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_1_4_" class="arrow" onclick="dynsection.toggleFolder('1_1_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader.html" target="_self">BlockLoader</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html" target="_self">ReadVector</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_block_loader_t.html" target="_self">BlockLoaderT</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_block_m_m_a.html" target="_self">BlockMMA</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_block_swizzle.html" target="_self">BlockSwizzle</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper&lt; 1 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper&lt; 2 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper&lt; 3 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper&lt; 4 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html" target="_self">ChannelHelper&lt; 1 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html" target="_self">ChannelHelper&lt; 2 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html" target="_self">ChannelHelper&lt; 3 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html" target="_self">ChannelHelper&lt; 4 &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_conv2_d_general_base_info.html" target="_self">Conv2DGeneralBaseInfo</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_conv2_d_general_jump_params.html" target="_self">Conv2DGeneralJumpParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_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="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html" target="_self">Conv2DInputBlockLoaderGeneral</a></td><td class="desc"></td></tr>
@ -396,7 +406,7 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_1_1_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="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html" target="_self">ImplicitGemmConv2DParams</a></td><td class="desc"></td></tr>
<tr id="row_1_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1integral__constant.html" target="_self">integral_constant</a></td><td class="desc"></td></tr>
<tr id="row_1_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral.html" target="_self">is_integral</a></td><td class="desc"></td></tr>
<tr id="row_1_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral.html" target="_self">is_integral&lt; integral_constant&lt; T, v &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html" target="_self">is_integral&lt; integral_constant&lt; T, v &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_layout2_d.html" target="_self">Layout2D</a></td><td class="desc"></td></tr>
<tr id="row_1_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_loop_alignment.html" target="_self">LoopAlignment</a></td><td class="desc"></td></tr>
<tr id="row_1_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html" target="_self">MMATile</a></td><td class="desc"></td></tr>
@ -412,7 +422,7 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<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.html" target="_self">add_vec&lt; cmplx&lt; T &gt; &gt;</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>
@ -459,14 +469,14 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcomplex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType&lt; true, T, U &gt;</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html" target="_self">ConditionalType&lt; true, T, U &gt;</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_max.html" target="_self">CumMax</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_min.html" target="_self">CumMin</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd</a></td><td class="desc"></td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.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_prod_3_01bool_01_4.html" target="_self">CumProd&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_sum.html" target="_self">CumSum</a></td><td class="desc"></td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
@ -492,19 +502,19 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_53_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_than.html" target="_self">LessThan</a></td><td class="desc"></td></tr>
<tr id="row_55_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; complex64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; half &gt;</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; int16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; int8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; uint16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; uint32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits&lt; uint8_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_01bfloat16__t_01_4.html" target="_self">Limits&lt; bfloat16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bool_01_4.html" target="_self">Limits&lt; bool &gt;</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01complex64__t_01_4.html" target="_self">Limits&lt; complex64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01float_01_4.html" target="_self">Limits&lt; float &gt;</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01half_01_4.html" target="_self">Limits&lt; half &gt;</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int16__t_01_4.html" target="_self">Limits&lt; int16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int32__t_01_4.html" target="_self">Limits&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int64__t_01_4.html" target="_self">Limits&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int8__t_01_4.html" target="_self">Limits&lt; int8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint16__t_01_4.html" target="_self">Limits&lt; uint16_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint32__t_01_4.html" target="_self">Limits&lt; uint32_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint64__t_01_4.html" target="_self">Limits&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint8__t_01_4.html" target="_self">Limits&lt; uint8_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_69_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
<tr id="row_71_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
@ -514,15 +524,15 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_75_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
<tr id="row_77_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td><td class="desc"></td></tr>
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td><td class="desc"></td></tr>
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td><td class="desc"></td></tr>
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html" target="_self">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td><td class="desc"></td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max.html" target="_self">Max</a></td><td class="desc"></td></tr>
<tr id="row_81_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max_op.html" target="_self">MaxOp</a></td><td class="desc"></td></tr>
<tr id="row_83_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_min.html" target="_self">Min</a></td><td class="desc"></td></tr>
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
<tr id="row_85_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic</a></td><td class="desc"></td></tr>
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.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_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html" target="_self">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_87_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_conv_params.html" target="_self">MLXConvParams</a></td><td class="desc"></td></tr>
<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_mul_op.html" target="_self">MulOp</a></td><td class="desc"></td></tr>
<tr id="row_89_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
@ -564,7 +574,7 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -6,10 +6,10 @@ var annotated_dup =
[ "is_static", "structmetal_1_1is__static.html", null ],
[ "make_void", "structmetal_1_1make__void.html", "structmetal_1_1make__void" ],
[ "pointer_element", "structmetal_1_1pointer__element.html", null ],
[ "pointer_element< constant T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
[ "pointer_element< device T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
[ "pointer_element< thread T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
[ "pointer_element< threadgroup T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ]
[ "pointer_element< constant T * >", "structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html", "structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4" ],
[ "pointer_element< device T * >", "structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html", "structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4" ],
[ "pointer_element< thread T * >", "structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html", "structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4" ],
[ "pointer_element< threadgroup T * >", "structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html", "structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4" ]
] ],
[ "mlx", "namespacemlx.html", [
[ "core", "namespacemlx_1_1core.html", [
@ -45,7 +45,6 @@ var annotated_dup =
[ "Greater", "structmlx_1_1core_1_1detail_1_1_greater.html", "structmlx_1_1core_1_1detail_1_1_greater" ],
[ "GreaterEqual", "structmlx_1_1core_1_1detail_1_1_greater_equal.html", "structmlx_1_1core_1_1detail_1_1_greater_equal" ],
[ "Imag", "structmlx_1_1core_1_1detail_1_1_imag.html", "structmlx_1_1core_1_1detail_1_1_imag" ],
[ "IntOrFloat", "unionmlx_1_1core_1_1detail_1_1_int_or_float.html", "unionmlx_1_1core_1_1detail_1_1_int_or_float" ],
[ "InTracing", "structmlx_1_1core_1_1detail_1_1_in_tracing.html", "structmlx_1_1core_1_1detail_1_1_in_tracing" ],
[ "LeftShift", "structmlx_1_1core_1_1detail_1_1_left_shift.html", "structmlx_1_1core_1_1detail_1_1_left_shift" ],
[ "Less", "structmlx_1_1core_1_1detail_1_1_less.html", "structmlx_1_1core_1_1detail_1_1_less" ],
@ -127,6 +126,16 @@ var annotated_dup =
[ "Scheduler", "classmlx_1_1core_1_1scheduler_1_1_scheduler.html", "classmlx_1_1core_1_1scheduler_1_1_scheduler" ],
[ "StreamThread", "structmlx_1_1core_1_1scheduler_1_1_stream_thread.html", "structmlx_1_1core_1_1scheduler_1_1_stream_thread" ]
] ],
[ "simd", "namespacemlx_1_1core_1_1simd.html", [
[ "ScalarT", "structmlx_1_1core_1_1simd_1_1_scalar_t.html", "structmlx_1_1core_1_1simd_1_1_scalar_t" ],
[ "ScalarT< bool, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01bool_00_01_n_01_4" ],
[ "ScalarT< int64_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int64__t_00_01_n_01_4" ],
[ "ScalarT< int8_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01int8__t_00_01_n_01_4" ],
[ "ScalarT< uint64_t, N >", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_scalar_t_3_01uint64__t_00_01_n_01_4" ],
[ "Simd", "structmlx_1_1core_1_1simd_1_1_simd.html", "structmlx_1_1core_1_1simd_1_1_simd" ],
[ "Simd< float16_t, N >", "structmlx_1_1core_1_1simd_1_1_simd_3_01float16__t_00_01_n_01_4.html", "structmlx_1_1core_1_1simd_1_1_simd_3_01float16__t_00_01_n_01_4" ],
[ "Simd< T, 1 >", "structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html", "structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4" ]
] ],
[ "_MLX_BFloat16", "structmlx_1_1core_1_1___m_l_x___b_float16.html", "structmlx_1_1core_1_1___m_l_x___b_float16" ],
[ "_MLX_Float16", "structmlx_1_1core_1_1___m_l_x___float16.html", "structmlx_1_1core_1_1___m_l_x___float16" ],
[ "Abs", "classmlx_1_1core_1_1_abs.html", "classmlx_1_1core_1_1_abs" ],
@ -165,8 +174,6 @@ var annotated_dup =
[ "Cos", "classmlx_1_1core_1_1_cos.html", "classmlx_1_1core_1_1_cos" ],
[ "Cosh", "classmlx_1_1core_1_1_cosh.html", "classmlx_1_1core_1_1_cosh" ],
[ "CustomTransforms", "classmlx_1_1core_1_1_custom_transforms.html", "classmlx_1_1core_1_1_custom_transforms" ],
[ "DefaultContiguousReduce", "structmlx_1_1core_1_1_default_contiguous_reduce.html", "structmlx_1_1core_1_1_default_contiguous_reduce" ],
[ "DefaultStridedReduce", "structmlx_1_1core_1_1_default_strided_reduce.html", "structmlx_1_1core_1_1_default_strided_reduce" ],
[ "Depends", "classmlx_1_1core_1_1_depends.html", "classmlx_1_1core_1_1_depends" ],
[ "Device", "structmlx_1_1core_1_1_device.html", "structmlx_1_1core_1_1_device" ],
[ "Divide", "classmlx_1_1core_1_1_divide.html", "classmlx_1_1core_1_1_divide" ],
@ -182,6 +189,7 @@ var annotated_dup =
[ "Exp", "classmlx_1_1core_1_1_exp.html", "classmlx_1_1core_1_1_exp" ],
[ "ExpandDims", "classmlx_1_1core_1_1_expand_dims.html", "classmlx_1_1core_1_1_expand_dims" ],
[ "Expm1", "classmlx_1_1core_1_1_expm1.html", "classmlx_1_1core_1_1_expm1" ],
[ "Fence", "classmlx_1_1core_1_1_fence.html", "classmlx_1_1core_1_1_fence" ],
[ "FFT", "classmlx_1_1core_1_1_f_f_t.html", "classmlx_1_1core_1_1_f_f_t" ],
[ "finfo", "structmlx_1_1core_1_1finfo.html", "structmlx_1_1core_1_1finfo" ],
[ "Flatten", "classmlx_1_1core_1_1_flatten.html", "classmlx_1_1core_1_1_flatten" ],
@ -189,6 +197,7 @@ var annotated_dup =
[ "Full", "classmlx_1_1core_1_1_full.html", "classmlx_1_1core_1_1_full" ],
[ "FunctionExporter", "structmlx_1_1core_1_1_function_exporter.html", "structmlx_1_1core_1_1_function_exporter" ],
[ "Gather", "classmlx_1_1core_1_1_gather.html", "classmlx_1_1core_1_1_gather" ],
[ "GatherAxis", "classmlx_1_1core_1_1_gather_axis.html", "classmlx_1_1core_1_1_gather_axis" ],
[ "GatherMM", "classmlx_1_1core_1_1_gather_m_m.html", "classmlx_1_1core_1_1_gather_m_m" ],
[ "GatherQMM", "classmlx_1_1core_1_1_gather_q_m_m.html", "classmlx_1_1core_1_1_gather_q_m_m" ],
[ "Greater", "classmlx_1_1core_1_1_greater.html", "classmlx_1_1core_1_1_greater" ],
@ -216,9 +225,9 @@ var annotated_dup =
[ "NotEqual", "classmlx_1_1core_1_1_not_equal.html", "classmlx_1_1core_1_1_not_equal" ],
[ "NumberOfElements", "classmlx_1_1core_1_1_number_of_elements.html", "classmlx_1_1core_1_1_number_of_elements" ],
[ "numeric_limits", "structmlx_1_1core_1_1numeric__limits.html", null ],
[ "numeric_limits< bfloat16_t >", "structmlx_1_1core_1_1numeric__limits.html", "structmlx_1_1core_1_1numeric__limits" ],
[ "numeric_limits< float >", "structmlx_1_1core_1_1numeric__limits.html", null ],
[ "numeric_limits< float16_t >", "structmlx_1_1core_1_1numeric__limits.html", "structmlx_1_1core_1_1numeric__limits" ],
[ "numeric_limits< bfloat16_t >", "structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4.html", "structmlx_1_1core_1_1numeric__limits_3_01bfloat16__t_01_4" ],
[ "numeric_limits< float >", "structmlx_1_1core_1_1numeric__limits_3_01float_01_4.html", null ],
[ "numeric_limits< float16_t >", "structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4.html", "structmlx_1_1core_1_1numeric__limits_3_01float16__t_01_4" ],
[ "Pad", "classmlx_1_1core_1_1_pad.html", "classmlx_1_1core_1_1_pad" ],
[ "Partition", "classmlx_1_1core_1_1_partition.html", "classmlx_1_1core_1_1_partition" ],
[ "Power", "classmlx_1_1core_1_1_power.html", "classmlx_1_1core_1_1_power" ],
@ -233,8 +242,10 @@ var annotated_dup =
[ "Remainder", "classmlx_1_1core_1_1_remainder.html", "classmlx_1_1core_1_1_remainder" ],
[ "Reshape", "classmlx_1_1core_1_1_reshape.html", "classmlx_1_1core_1_1_reshape" ],
[ "Round", "classmlx_1_1core_1_1_round.html", "classmlx_1_1core_1_1_round" ],
[ "ScalarVector", "structmlx_1_1core_1_1_scalar_vector.html", "structmlx_1_1core_1_1_scalar_vector" ],
[ "Scan", "classmlx_1_1core_1_1_scan.html", "classmlx_1_1core_1_1_scan" ],
[ "Scatter", "classmlx_1_1core_1_1_scatter.html", "classmlx_1_1core_1_1_scatter" ],
[ "ScatterAxis", "classmlx_1_1core_1_1_scatter_axis.html", "classmlx_1_1core_1_1_scatter_axis" ],
[ "Select", "classmlx_1_1core_1_1_select.html", "classmlx_1_1core_1_1_select" ],
[ "Sigmoid", "classmlx_1_1core_1_1_sigmoid.html", "classmlx_1_1core_1_1_sigmoid" ],
[ "Sign", "classmlx_1_1core_1_1_sign.html", "classmlx_1_1core_1_1_sign" ],
@ -259,22 +270,24 @@ var annotated_dup =
[ "TypeToDtype", "structmlx_1_1core_1_1_type_to_dtype.html", "structmlx_1_1core_1_1_type_to_dtype" ],
[ "UnaryPrimitive", "classmlx_1_1core_1_1_unary_primitive.html", "classmlx_1_1core_1_1_unary_primitive" ],
[ "Unflatten", "classmlx_1_1core_1_1_unflatten.html", "classmlx_1_1core_1_1_unflatten" ],
[ "VectorScalar", "structmlx_1_1core_1_1_vector_scalar.html", "structmlx_1_1core_1_1_vector_scalar" ],
[ "VectorVector", "structmlx_1_1core_1_1_vector_vector.html", "structmlx_1_1core_1_1_vector_vector" ],
[ "View", "classmlx_1_1core_1_1_view.html", "classmlx_1_1core_1_1_view" ]
] ],
[ "steel", "namespacemlx_1_1steel.html", [
[ "AccumHelper", "structmlx_1_1steel_1_1_accum_helper.html", "structmlx_1_1steel_1_1_accum_helper" ],
[ "AttnParams", "structmlx_1_1steel_1_1_attn_params.html", "structmlx_1_1steel_1_1_attn_params" ],
[ "BaseMMAFrag", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", null ],
[ "BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", "structmlx_1_1steel_1_1_base_m_m_a_frag" ],
[ "BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html", "structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4" ],
[ "BlockLoader", "structmlx_1_1steel_1_1_block_loader.html", "structmlx_1_1steel_1_1_block_loader" ],
[ "BlockLoaderT", "structmlx_1_1steel_1_1_block_loader_t.html", "structmlx_1_1steel_1_1_block_loader_t" ],
[ "BlockMMA", "structmlx_1_1steel_1_1_block_m_m_a.html", "structmlx_1_1steel_1_1_block_m_m_a" ],
[ "BlockSwizzle", "structmlx_1_1steel_1_1_block_swizzle.html", "structmlx_1_1steel_1_1_block_swizzle" ],
[ "ChannelHelper", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
[ "ChannelHelper< 1 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
[ "ChannelHelper< 2 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
[ "ChannelHelper< 3 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
[ "ChannelHelper< 4 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
[ "ChannelHelper< 1 >", "structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html", "structmlx_1_1steel_1_1_channel_helper_3_011_01_4" ],
[ "ChannelHelper< 2 >", "structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html", "structmlx_1_1steel_1_1_channel_helper_3_012_01_4" ],
[ "ChannelHelper< 3 >", "structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html", "structmlx_1_1steel_1_1_channel_helper_3_013_01_4" ],
[ "ChannelHelper< 4 >", "structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html", "structmlx_1_1steel_1_1_channel_helper_3_014_01_4" ],
[ "Conv2DGeneralBaseInfo", "structmlx_1_1steel_1_1_conv2_d_general_base_info.html", "structmlx_1_1steel_1_1_conv2_d_general_base_info" ],
[ "Conv2DGeneralJumpParams", "structmlx_1_1steel_1_1_conv2_d_general_jump_params.html", "structmlx_1_1steel_1_1_conv2_d_general_jump_params" ],
[ "Conv2DInputBlockLoaderGeneral", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_general" ],
@ -292,7 +305,7 @@ var annotated_dup =
[ "ImplicitGemmConv2DParams", "structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html", "structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params" ],
[ "integral_constant", "structmlx_1_1steel_1_1integral__constant.html", "structmlx_1_1steel_1_1integral__constant" ],
[ "is_integral", "structmlx_1_1steel_1_1is__integral.html", null ],
[ "is_integral< integral_constant< T, v > >", "structmlx_1_1steel_1_1is__integral.html", null ],
[ "is_integral< integral_constant< T, v > >", "structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html", null ],
[ "Layout2D", "structmlx_1_1steel_1_1_layout2_d.html", "structmlx_1_1steel_1_1_layout2_d" ],
[ "LoopAlignment", "structmlx_1_1steel_1_1_loop_alignment.html", null ],
[ "MMATile", "structmlx_1_1steel_1_1_m_m_a_tile.html", "structmlx_1_1steel_1_1_m_m_a_tile" ],
@ -311,7 +324,7 @@ var annotated_dup =
[ "thread_pool", "classpocketfft_1_1detail_1_1threading_1_1thread__pool.html", "classpocketfft_1_1detail_1_1threading_1_1thread__pool" ]
] ],
[ "add_vec", "structpocketfft_1_1detail_1_1add__vec.html", "structpocketfft_1_1detail_1_1add__vec" ],
[ "add_vec< cmplx< T > >", "structpocketfft_1_1detail_1_1add__vec.html", "structpocketfft_1_1detail_1_1add__vec" ],
[ "add_vec< cmplx< T > >", "structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html", "structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4" ],
[ "arr", "classpocketfft_1_1detail_1_1arr.html", "classpocketfft_1_1detail_1_1arr" ],
[ "arr_info", "classpocketfft_1_1detail_1_1arr__info.html", "classpocketfft_1_1detail_1_1arr__info" ],
[ "cfftp", "classpocketfft_1_1detail_1_1cfftp.html", "classpocketfft_1_1detail_1_1cfftp" ],
@ -359,14 +372,14 @@ var annotated_dup =
[ "Ceil", "struct_ceil.html", "struct_ceil" ],
[ "complex64_t", "structcomplex64__t.html", "structcomplex64__t" ],
[ "ConditionalType", "struct_conditional_type.html", "struct_conditional_type" ],
[ "ConditionalType< true, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
[ "ConditionalType< true, T, U >", "struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html", "struct_conditional_type_3_01true_00_01_t_00_01_u_01_4" ],
[ "Conjugate", "struct_conjugate.html", "struct_conjugate" ],
[ "Cos", "struct_cos.html", "struct_cos" ],
[ "Cosh", "struct_cosh.html", "struct_cosh" ],
[ "CumMax", "struct_cum_max.html", "struct_cum_max" ],
[ "CumMin", "struct_cum_min.html", "struct_cum_min" ],
[ "CumProd", "struct_cum_prod.html", null ],
[ "CumProd< bool >", "struct_cum_prod.html", "struct_cum_prod" ],
[ "CumProd< bool >", "struct_cum_prod_3_01bool_01_4.html", "struct_cum_prod_3_01bool_01_4" ],
[ "CumSum", "struct_cum_sum.html", null ],
[ "Divide", "struct_divide.html", "struct_divide" ],
[ "DivMod", "struct_div_mod.html", "struct_div_mod" ],
@ -392,19 +405,19 @@ var annotated_dup =
[ "LessEqual", "struct_less_equal.html", "struct_less_equal" ],
[ "LessThan", "struct_less_than.html", "struct_less_than" ],
[ "Limits", "struct_limits.html", "struct_limits" ],
[ "Limits< bfloat16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< bool >", "struct_limits.html", "struct_limits" ],
[ "Limits< complex64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< float >", "struct_limits.html", "struct_limits" ],
[ "Limits< half >", "struct_limits.html", "struct_limits" ],
[ "Limits< int16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int32_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int8_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint32_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint8_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< bfloat16_t >", "struct_limits_3_01bfloat16__t_01_4.html", "struct_limits_3_01bfloat16__t_01_4" ],
[ "Limits< bool >", "struct_limits_3_01bool_01_4.html", "struct_limits_3_01bool_01_4" ],
[ "Limits< complex64_t >", "struct_limits_3_01complex64__t_01_4.html", "struct_limits_3_01complex64__t_01_4" ],
[ "Limits< float >", "struct_limits_3_01float_01_4.html", "struct_limits_3_01float_01_4" ],
[ "Limits< half >", "struct_limits_3_01half_01_4.html", "struct_limits_3_01half_01_4" ],
[ "Limits< int16_t >", "struct_limits_3_01int16__t_01_4.html", "struct_limits_3_01int16__t_01_4" ],
[ "Limits< int32_t >", "struct_limits_3_01int32__t_01_4.html", "struct_limits_3_01int32__t_01_4" ],
[ "Limits< int64_t >", "struct_limits_3_01int64__t_01_4.html", "struct_limits_3_01int64__t_01_4" ],
[ "Limits< int8_t >", "struct_limits_3_01int8__t_01_4.html", "struct_limits_3_01int8__t_01_4" ],
[ "Limits< uint16_t >", "struct_limits_3_01uint16__t_01_4.html", "struct_limits_3_01uint16__t_01_4" ],
[ "Limits< uint32_t >", "struct_limits_3_01uint32__t_01_4.html", "struct_limits_3_01uint32__t_01_4" ],
[ "Limits< uint64_t >", "struct_limits_3_01uint64__t_01_4.html", "struct_limits_3_01uint64__t_01_4" ],
[ "Limits< uint8_t >", "struct_limits_3_01uint8__t_01_4.html", "struct_limits_3_01uint8__t_01_4" ],
[ "Log", "struct_log.html", "struct_log" ],
[ "Log10", "struct_log10.html", "struct_log10" ],
[ "Log1p", "struct_log1p.html", "struct_log1p" ],
@ -414,15 +427,15 @@ var annotated_dup =
[ "LogicalNot", "struct_logical_not.html", "struct_logical_not" ],
[ "LogicalOr", "struct_logical_or.html", "struct_logical_or" ],
[ "LoopedElemToLoc", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4" ],
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4" ],
[ "Max", "struct_max.html", "struct_max" ],
[ "Maximum", "struct_maximum.html", "struct_maximum" ],
[ "MaxOp", "struct_max_op.html", "struct_max_op" ],
[ "Min", "struct_min.html", null ],
[ "Minimum", "struct_minimum.html", "struct_minimum" ],
[ "mlx_atomic", "structmlx__atomic.html", "structmlx__atomic" ],
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic.html", "structmlx__atomic" ],
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html", "structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4" ],
[ "MLXConvParams", "struct_m_l_x_conv_params.html", "struct_m_l_x_conv_params" ],
[ "MulOp", "struct_mul_op.html", "struct_mul_op" ],
[ "Multiply", "struct_multiply.html", "struct_multiply" ],

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/array.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -168,7 +168,7 @@ Variables</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="array_8h.html">array.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/array.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -913,7 +913,7 @@ $(function(){initNavTree('array_8h_source.html',''); initResizable(true); });
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="array_8h.html">array.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/atomic.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -118,7 +118,7 @@ $(function(){initNavTree('atomic_8h.html',''); initResizable(true); });
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic.html">mlx_atomic&lt; T, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic.html">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;</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>
@ -544,7 +544,7 @@ template&lt;typename T&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="atomic_8h.html">atomic.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -1,7 +1,7 @@
var atomic_8h =
[
[ "mlx_atomic< T, typename >", "structmlx__atomic.html", "structmlx__atomic" ],
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic.html", "structmlx__atomic" ],
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html", "structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4" ],
[ "mlx_atomic_compare_exchange_weak_explicit", "atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f", null ],
[ "mlx_atomic_compare_exchange_weak_explicit", "atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5", null ],
[ "mlx_atomic_fetch_add_explicit", "atomic_8h.html#aad448d9e06e001700b65ca8317216a3b", null ],

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/atomic.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -135,8 +135,8 @@ $(function(){initNavTree('atomic_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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__atomic.html"> 30</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a>&lt;T, enable_if_t&lt;<a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt;T&gt;&gt;&gt; {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d"> 31</a></span> atomic&lt;T&gt; <a class="code hl_variable" href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d">val</a>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html"> 30</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a>&lt;T, enable_if_t&lt;<a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>&lt;T&gt;&gt;&gt; {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d"> 31</a></span> atomic&lt;T&gt; <a class="code hl_variable" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">val</a>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span></div>
@ -288,8 +288,8 @@ $(function(){initNavTree('atomic_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="keyword">struct </span>mlx_atomic_update_helper {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> uint operator()(uint_or_packed&lt;T&gt; init, T update, <span class="keywordtype">size_t</span> elem_offset) {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> Op op;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset] = op(update, <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset]);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.bits;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a24cdcd2aa23a3410a8973753ade3f772">init</a>.val[elem_offset] = op(update, <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a24cdcd2aa23a3410a8973753ade3f772">init</a>.val[elem_offset]);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a24cdcd2aa23a3410a8973753ade3f772">init</a>.bits;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span>};</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
@ -488,17 +488,17 @@ $(function(){initNavTree('atomic_8h_source.html',''); initResizable(true); });
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
<div class="ttc" id="anamespacemetal_html_a853c80479ab2264d9c4587c7bcac767b"><div class="ttname"><a href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">metal::max</a></div><div class="ttdeci">METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1distributed_html_a33633c058c7ec82cca4f237243c6810d"><div class="ttname"><a href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">mlx::core::distributed::init</a></div><div class="ttdeci">Group init(bool strict=false)</div><div class="ttdoc">Initialize the distributed backend and return the group containing all discoverable processes.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1distributed_html_a24cdcd2aa23a3410a8973753ade3f772"><div class="ttname"><a href="namespacemlx_1_1core_1_1distributed.html#a24cdcd2aa23a3410a8973753ade3f772">mlx::core::distributed::init</a></div><div class="ttdeci">Group init(bool strict=false, const std::string &amp;bk=&quot;any&quot;)</div><div class="ttdoc">Initialize the distributed backend and return the group containing all discoverable processes.</div></div>
<div class="ttc" id="astructmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4_html_a8dbf729fcd8c4a16e41b546c7405543d"><div class="ttname"><a href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;::val</a></div><div class="ttdeci">atomic&lt; T &gt; val</div><div class="ttdef"><b>Definition</b> atomic.h:31</div></div>
<div class="ttc" id="astructmlx__atomic_html"><div class="ttname"><a href="structmlx__atomic.html">mlx_atomic</a></div><div class="ttdef"><b>Definition</b> atomic.h:25</div></div>
<div class="ttc" id="astructmlx__atomic_html_a6f6651b8dd8149917c50cd99b13c6747"><div class="ttname"><a href="structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747">mlx_atomic::val</a></div><div class="ttdeci">atomic&lt; uint &gt; val</div><div class="ttdef"><b>Definition</b> atomic.h:26</div></div>
<div class="ttc" id="astructmlx__atomic_html_a8dbf729fcd8c4a16e41b546c7405543d"><div class="ttname"><a href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d">mlx_atomic&lt; T, enable_if_t&lt; is_metal_atomic&lt; T &gt; &gt; &gt;::val</a></div><div class="ttdeci">atomic&lt; T &gt; val</div><div class="ttdef"><b>Definition</b> atomic.h:31</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="atomic_8h.html">atomic.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/loader.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -136,7 +136,7 @@ Namespaces</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2loader_8h.html">loader.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/loader.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -127,7 +127,8 @@ $(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true);
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">short</span> n_reads = (BCOLS * BROWS) / (tgp_size),</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">short</span> TCOLS = BCOLS / n_reads,</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">short</span> TROWS = tgp_size / TCOLS&gt;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a> {</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_1steel_1_1_block_loader.html"> 25</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335">BlockLoader</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5"> 26</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5">n_rows</a> = (BROWS + TROWS - 1) / TROWS;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092"> 27</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a> = n_reads;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
@ -144,9 +145,11 @@ $(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true);
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2"> 39</a></span> threadgroup T* <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa"> 40</a></span> <span class="keyword">const</span> device T* <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">src</a>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(alignment * sizeof(T)) ReadVector {</div>
<div class="foldopen" id="foldopen00042" data-start="{" data-end="};">
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html"> 42</a></span> <span class="keyword">struct </span><span class="keyword">alignas</span>(alignment * sizeof(T)) <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">ReadVector</a> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d"> 43</a></span> uint8_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d">v</a>[<span class="keyword">sizeof</span>(T) * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a>];</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> };</div>
</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/* Constructor */</span></div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
@ -247,6 +250,7 @@ $(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true);
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> }</div>
</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>};</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keyword">template</span> &lt;<span class="keywordtype">int</span> R, <span class="keywordtype">int</span> C&gt;</div>
<div class="foldopen" id="foldopen00137" data-start="{" data-end="};">
@ -396,8 +400,8 @@ $(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true);
<div class="ttc" id="asteel_2defines_8h_html"><div class="ttname"><a href="steel_2defines_8h.html">defines.h</a></div></div>
<div class="ttc" id="asteel_2defines_8h_html_a5a5c3095b132a7589bc19cd5cb80e2c6"><div class="ttname"><a href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div><div class="ttdeci">#define STEEL_PRAGMA_UNROLL</div><div class="ttdef"><b>Definition</b> defines.h:4</div></div>
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_1_1_read_vector_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">mlx::steel::BlockLoader::ReadVector</a></div><div class="ttdef"><b>Definition</b> loader.h:42</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_1_1_read_vector_html_a20963f7191251defca48bf8a843d019d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d">mlx::steel::BlockLoader::ReadVector::v</a></div><div class="ttdeci">uint8_t v[sizeof(T) *vec_size]</div><div class="ttdef"><b>Definition</b> loader.h:43</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html">mlx::steel::BlockLoader</a></div><div class="ttdef"><b>Definition</b> loader.h:25</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a064e2cc77e0b1cf0f8027929e031775b"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">mlx::steel::BlockLoader&lt; T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size &gt;::thread_idx</a></div><div class="ttdeci">const short thread_idx</div><div class="ttdef"><b>Definition</b> loader.h:34</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a37aca066e63dff238865b5923a2d4335"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335">mlx::steel::BlockLoader::BlockLoader</a></div><div class="ttdeci">METAL_FUNC BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> loader.h:47</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a58bdf9b9c81962733e22ecdeae28c092"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">mlx::steel::BlockLoader&lt; T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size &gt;::vec_size</a></div><div class="ttdeci">STEEL_CONST short vec_size</div><div class="ttdef"><b>Definition</b> loader.h:27</div></div>
@ -435,7 +439,7 @@ $(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true);
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2loader_8h.html">loader.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/mma.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -126,7 +126,7 @@ Classes</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag&lt; T, kFragRows_, kFragCols_ &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">mlx::steel::MMATile&lt; T, kTileRows_, kTileCols_, MMAFrag_ &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -152,7 +152,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2mma_8h.html">mma.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@ var attn_2mma_8h =
[ "mlx::steel::Shape2D< RInt, CInt >", "structmlx_1_1steel_1_1_shape2_d.html", "structmlx_1_1steel_1_1_shape2_d" ],
[ "mlx::steel::Layout2D< Shape, Layout >", "structmlx_1_1steel_1_1_layout2_d.html", "structmlx_1_1steel_1_1_layout2_d" ],
[ "mlx::steel::BaseMMAFrag< T, kFragRows_, kFragCols_ >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", null ],
[ "mlx::steel::BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", "structmlx_1_1steel_1_1_base_m_m_a_frag" ],
[ "mlx::steel::BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html", "structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4" ],
[ "mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >", "structmlx_1_1steel_1_1_m_m_a_tile.html", "structmlx_1_1steel_1_1_m_m_a_tile" ],
[ "mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >", "structmlx_1_1steel_1_1_block_m_m_a.html", "structmlx_1_1steel_1_1_block_m_m_a" ],
[ "mlx::steel::tile_matmad", "namespacemlx_1_1steel.html#ad583e6038efc119542410f43b603d4ad", null ]

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/mma.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -143,7 +143,8 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
</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="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> kFragRows_, <span class="keywordtype">int</span> kFragCols_&gt;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag</a> {</div>
<div class="foldopen" id="foldopen00037" data-start="{" data-end="};">
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html"> 37</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag</a> {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static_assert</span>(</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> kFragRows_ == 8,</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="stringliteral">&quot;Only 8 x 8 fragment matrices are currently supported&quot;</span>);</div>
@ -151,28 +152,30 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> kFragCols_ == 8,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="stringliteral">&quot;Only 8 x 8 fragment matrices are currently supported&quot;</span>);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>};</div>
</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">struct </span>BaseMMAFrag&lt;T, 8, 8&gt; {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4"> 48</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> = 8;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f"> 49</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a> = 8;</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_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html"> 47</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag</a>&lt;T, 8, 8&gt; {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4"> 48</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> = 8;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f"> 49</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a> = 8;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0"> 51</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a> = (<a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a>) / 32;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0"> 51</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a> = (<a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a>) / 32;</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_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f"> 53</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> = 1;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd"> 54</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> = 2;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f"> 53</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> = 1;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd"> 54</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> = 2;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static_assert</span>(</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> == <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a>,</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> == <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a>,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="stringliteral">&quot;MMAFrag shape is not consistent with MMAFrag size&quot;</span>);</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="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9"> 60</a></span> <span class="keyword">typedef</span> metal::simdgroup_matrix&lt;T, kFragRows, kFragCols&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b"> 61</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemsPerFrag&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f"> 62</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemRows&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f">row_frag_type</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e"> 63</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemCols&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e">col_frag_type</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9"> 60</a></span> <span class="keyword">typedef</span> metal::simdgroup_matrix&lt;T, kFragRows, kFragCols&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b"> 61</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemsPerFrag&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3dcd4301390937f89ed1dde6d28e341f"> 62</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemRows&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3dcd4301390937f89ed1dde6d28e341f">row_frag_type</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#adbb262a3c872e26533b68a39db16459e"> 63</a></span> <span class="keyword">typedef</span> metal::vec&lt;T, kElemCols&gt; <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#adbb262a3c872e26533b68a39db16459e">col_frag_type</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="foldopen" id="foldopen00065" data-start="{" data-end="}">
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83"> 65</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> short2 <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83">get_coord</a>(ushort simd_lane_id</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83"> 65</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> short2 <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">get_coord</a>(ushort simd_lane_id</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> [[thread_index_in_simdgroup]]) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">const</span> <span class="keywordtype">short</span> qid = simd_lane_id / 4;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">const</span> <span class="keywordtype">short</span> fm = (qid &amp; 4) + ((simd_lane_id / 2) % 4);</div>
@ -184,12 +187,12 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> SrcPtrType, <span class="keyword">typename</span> StrX, <span class="keyword">typename</span> StrY&gt;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c"> 75</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c">load</a>(thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; dst, SrcPtrType src, StrX str_x, StrY str_y) {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c"> 75</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c">load</a>(thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; dst, SrcPtrType src, StrX str_x, StrY str_y) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> dst[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(src[i * str_x + j * str_y]);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> dst[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(src[i * str_x + j * str_y]);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> }</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
@ -204,8 +207,8 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">typename</span> OffX,</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typename</span> OffY&gt;</div>
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d"> 93</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d">load_safe</a>(</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; dst,</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d"> 93</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d">load_safe</a>(</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; dst,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> SrcPtrType src,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> StrX str_x,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> StrY str_y,</div>
@ -231,14 +234,14 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> DstPtrType, <span class="keyword">typename</span> StrX, <span class="keyword">typename</span> StrY&gt;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00118" data-start="{" data-end="}">
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb"> 118</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb">store</a>(<span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; src, DstPtrType dst, StrX str_x, StrY str_y) {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb"> 118</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb">store</a>(<span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; src, DstPtrType dst, StrX str_x, StrY str_y) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">using </span>U = <a class="code hl_typedef" href="namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9">pointer_element_t&lt;DstPtrType&gt;</a>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> dst[i * str_x + j * str_y] = <span class="keyword">static_cast&lt;</span>U<span class="keyword">&gt;</span>(src[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j]);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> dst[i * str_x + j * str_y] = <span class="keyword">static_cast&lt;</span>U<span class="keyword">&gt;</span>(src[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j]);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</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> }</div>
@ -253,8 +256,8 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">typename</span> OffX,</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">typename</span> OffY&gt;</div>
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328"> 138</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328">store_safe</a>(</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; src,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328"> 138</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328">store_safe</a>(</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; src,</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> DstPtrType dst,</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> StrX str_x,</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> StrY str_y,</div>
@ -278,40 +281,40 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="foldopen" id="foldopen00161" data-start="{" data-end="}">
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3"> 161</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; D,</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; A,</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; B,</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; C) {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> D_mat;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> A_mat;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> B_mat;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> C_mat;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3"> 161</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; D,</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; A,</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; B,</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; C) {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> D_mat;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> A_mat;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> B_mat;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> C_mat;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(A_mat.thread_elements()) = A;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(B_mat.thread_elements()) = B;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(C_mat.thread_elements()) = C;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(A_mat.thread_elements()) = A;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(B_mat.thread_elements()) = B;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(C_mat.thread_elements()) = C;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(D_mat, A_mat, B_mat, C_mat);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(D_mat, A_mat, B_mat, C_mat);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> D = <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(D_mat.thread_elements());</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> D = <span class="keyword">reinterpret_cast&lt;</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp;<span class="keyword">&gt;</span>(D_mat.thread_elements());</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946"> 180</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946">mma</a>(</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; D,</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; A,</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; B,</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; C) {</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946"> 180</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946">mma</a>(</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; D,</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; A,</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; B,</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>&amp; C) {</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> simdgroup_multiply_accumulate(D, A, B, C);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> }</div>
</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> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Op&gt;</div>
<div class="foldopen" id="foldopen00189" data-start="{" data-end="}">
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970"> 189</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970">row_reduce</a>(</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> thread <span class="keyword">const</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; inp_vals,</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970"> 189</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970">row_reduce</a>(</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> thread <span class="keyword">const</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; inp_vals,</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> thread T* reduced_vals) {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> T thr_reduce = Op::apply(inp_vals.x, inp_vals.y);</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
@ -327,27 +330,29 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Op&gt;</div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010"> 204</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010">row_bin_op</a>(</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; inp_vals,</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010"> 204</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010">row_bin_op</a>(</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&amp; inp_vals,</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> thread T* row_vals) {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] =</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> Op::apply(inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j], row_vals[i]);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j &lt; <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] =</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> Op::apply(inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j], row_vals[i]);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> }</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</div>
</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>};</div>
</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="keyword">template</span> &lt;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">typename</span> T,</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordtype">int</span> kTileRows_,</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">int</span> kTileCols_,</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">class </span>MMAFrag_ = BaseMMAFrag&lt;T, 8, 8&gt;&gt;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="keyword">struct </span>MMATile {</div>
<div class="foldopen" id="foldopen00223" data-start="{" data-end="};">
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html"> 223</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#aa3fb310dd08ec23c334511f7b316d1b6">MMATile</a> {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382"> 224</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382">MMAFrag_t</a> = MMAFrag_;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c"> 225</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a> = T;</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7"> 226</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a> = MMAFrag_t::kFragRows;</div>
@ -563,6 +568,7 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> }</div>
</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span>};</div>
</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, <span class="keywordtype">int</span> M, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> K&gt;</div>
<div class="foldopen" id="foldopen00413" data-start="{" data-end="}">
@ -603,7 +609,8 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <span class="keywordtype">short</span> ldb_tgp,</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keyword">typename</span> AccumType = float,</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">typename</span> Epilogue = TransformNone&lt;U, AccumType&gt;&gt;</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="keyword">struct </span>BlockMMA {</div>
<div class="foldopen" id="foldopen00449" data-start="{" data-end="};">
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html"> 449</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8">BlockMMA</a> {</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// MMAFrag size</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d"> 451</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d">kFragSize</a> = 8;</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c"> 452</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c">MMAFrag_acc_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag&lt;AccumType, kFragSize, kFragSize&gt;</a>;</div>
@ -896,6 +903,7 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> }</div>
</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span>};</div>
</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span>} <span class="comment">// namespace steel</span></div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span>} <span class="comment">// namespace mlx</span></div>
@ -911,25 +919,25 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="ttc" id="asteel_2defines_8h_html"><div class="ttname"><a href="steel_2defines_8h.html">defines.h</a></div></div>
<div class="ttc" id="asteel_2defines_8h_html_a5a5c3095b132a7589bc19cd5cb80e2c6"><div class="ttname"><a href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div><div class="ttdeci">#define STEEL_PRAGMA_UNROLL</div><div class="ttdef"><b>Definition</b> defines.h:4</div></div>
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag</a></div><div class="ttdef"><b>Definition</b> mma.h:23</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a1868f57d57c8adedab2c58492ec76946"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread mat_type &amp;D, thread mat_type &amp;A, thread mat_type &amp;B, thread mat_type &amp;C)</div><div class="ttdef"><b>Definition</b> mma.h:180</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a1f0b00daad8eba2f855bb306e70d2328"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::store_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void store_safe(const thread frag_type &amp;src, DstPtrType dst, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int&lt; 0 &gt;{}, OffY off_y=Int&lt; 0 &gt;{})</div><div class="ttdef"><b>Definition</b> mma.h:138</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a211102315e2afbcfcd2e2c201b638e9f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kFragCols</a></div><div class="ttdeci">STEEL_CONST int kFragCols</div><div class="ttdef"><b>Definition</b> mma.h:49</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a25675ae18947a97c6e04157b540103a9"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mat_type</a></div><div class="ttdeci">metal::simdgroup_matrix&lt; T, kFragRows, kFragCols &gt; mat_type</div><div class="ttdef"><b>Definition</b> mma.h:60</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a2fe53db449c692226f23f6b99fb2c0d4"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kFragRows</a></div><div class="ttdeci">STEEL_CONST int kFragRows</div><div class="ttdef"><b>Definition</b> mma.h:48</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a318c4279bdc7b39b7919f108b1cd8010"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_bin_op</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_bin_op(thread frag_type &amp;inp_vals, thread T *row_vals)</div><div class="ttdef"><b>Definition</b> mma.h:204</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a3c34dfdc944db110f4735f1b25307cf0"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemsPerFrag</a></div><div class="ttdeci">STEEL_CONST int kElemsPerFrag</div><div class="ttdef"><b>Definition</b> mma.h:51</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a3dcd4301390937f89ed1dde6d28e341f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemRows &gt; row_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:62</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a51d662e4cff88b5ad17d7c44bb6b6970"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_reduce</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_reduce(thread const frag_type &amp;inp_vals, thread T *reduced_vals)</div><div class="ttdef"><b>Definition</b> mma.h:189</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a7331fff1d12f2f8b72b0006a3ad0dd83"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::get_coord</a></div><div class="ttdeci">static METAL_FUNC constexpr short2 get_coord(ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> mma.h:65</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a76aa5aa690dbcc954e957d767fad661f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemRows</a></div><div class="ttdeci">STEEL_CONST int kElemRows</div><div class="ttdef"><b>Definition</b> mma.h:53</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a7c212200d86b4e93f274d99addf668bd"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemCols</a></div><div class="ttdeci">STEEL_CONST int kElemCols</div><div class="ttdef"><b>Definition</b> mma.h:54</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a8028512f5a3d2b6acaf966be529627a3"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread frag_type &amp;D, thread frag_type &amp;A, thread frag_type &amp;B, thread frag_type &amp;C)</div><div class="ttdef"><b>Definition</b> mma.h:161</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a8536bfaa108031c2ea3e9ccdc766ee5b"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemsPerFrag &gt; frag_type</div><div class="ttdef"><b>Definition</b> mma.h:61</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_aa8f50ea8961ec5b35c1b81366d64f2cb"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::store</a></div><div class="ttdeci">static METAL_FUNC constexpr void store(const thread frag_type &amp;src, DstPtrType dst, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:118</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_ac73006b36fc710feda3a7c796e21415c"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::load</a></div><div class="ttdeci">static METAL_FUNC constexpr void load(thread frag_type &amp;dst, SrcPtrType src, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:75</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_ad22aaee4a2938cbdd315b39eda84e07d"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::load_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void load_safe(thread frag_type &amp;dst, SrcPtrType src, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int&lt; 0 &gt;{}, OffY off_y=Int&lt; 0 &gt;{})</div><div class="ttdef"><b>Definition</b> mma.h:93</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_adbb262a3c872e26533b68a39db16459e"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::col_frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemCols &gt; col_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:63</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a1868f57d57c8adedab2c58492ec76946"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread mat_type &amp;D, thread mat_type &amp;A, thread mat_type &amp;B, thread mat_type &amp;C)</div><div class="ttdef"><b>Definition</b> mma.h:180</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a1f0b00daad8eba2f855bb306e70d2328"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::store_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void store_safe(const thread frag_type &amp;src, DstPtrType dst, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int&lt; 0 &gt;{}, OffY off_y=Int&lt; 0 &gt;{})</div><div class="ttdef"><b>Definition</b> mma.h:138</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a211102315e2afbcfcd2e2c201b638e9f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kFragCols</a></div><div class="ttdeci">STEEL_CONST int kFragCols</div><div class="ttdef"><b>Definition</b> mma.h:49</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a25675ae18947a97c6e04157b540103a9"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a25675ae18947a97c6e04157b540103a9">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mat_type</a></div><div class="ttdeci">metal::simdgroup_matrix&lt; T, kFragRows, kFragCols &gt; mat_type</div><div class="ttdef"><b>Definition</b> mma.h:60</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a2fe53db449c692226f23f6b99fb2c0d4"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kFragRows</a></div><div class="ttdeci">STEEL_CONST int kFragRows</div><div class="ttdef"><b>Definition</b> mma.h:48</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a318c4279bdc7b39b7919f108b1cd8010"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_bin_op</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_bin_op(thread frag_type &amp;inp_vals, thread T *row_vals)</div><div class="ttdef"><b>Definition</b> mma.h:204</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a3c34dfdc944db110f4735f1b25307cf0"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemsPerFrag</a></div><div class="ttdeci">STEEL_CONST int kElemsPerFrag</div><div class="ttdef"><b>Definition</b> mma.h:51</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a3dcd4301390937f89ed1dde6d28e341f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3dcd4301390937f89ed1dde6d28e341f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemRows &gt; row_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:62</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a51d662e4cff88b5ad17d7c44bb6b6970"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::row_reduce</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_reduce(thread const frag_type &amp;inp_vals, thread T *reduced_vals)</div><div class="ttdef"><b>Definition</b> mma.h:189</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a7331fff1d12f2f8b72b0006a3ad0dd83"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::get_coord</a></div><div class="ttdeci">static METAL_FUNC constexpr short2 get_coord(ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> mma.h:65</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a76aa5aa690dbcc954e957d767fad661f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemRows</a></div><div class="ttdeci">STEEL_CONST int kElemRows</div><div class="ttdef"><b>Definition</b> mma.h:53</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a7c212200d86b4e93f274d99addf668bd"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::kElemCols</a></div><div class="ttdeci">STEEL_CONST int kElemCols</div><div class="ttdef"><b>Definition</b> mma.h:54</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a8028512f5a3d2b6acaf966be529627a3"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread frag_type &amp;D, thread frag_type &amp;A, thread frag_type &amp;B, thread frag_type &amp;C)</div><div class="ttdef"><b>Definition</b> mma.h:161</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a8536bfaa108031c2ea3e9ccdc766ee5b"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8536bfaa108031c2ea3e9ccdc766ee5b">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemsPerFrag &gt; frag_type</div><div class="ttdef"><b>Definition</b> mma.h:61</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_aa8f50ea8961ec5b35c1b81366d64f2cb"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::store</a></div><div class="ttdeci">static METAL_FUNC constexpr void store(const thread frag_type &amp;src, DstPtrType dst, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:118</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_ac73006b36fc710feda3a7c796e21415c"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::load</a></div><div class="ttdeci">static METAL_FUNC constexpr void load(thread frag_type &amp;dst, SrcPtrType src, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:75</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_ad22aaee4a2938cbdd315b39eda84e07d"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::load_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void load_safe(thread frag_type &amp;dst, SrcPtrType src, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int&lt; 0 &gt;{}, OffY off_y=Int&lt; 0 &gt;{})</div><div class="ttdef"><b>Definition</b> mma.h:93</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_adbb262a3c872e26533b68a39db16459e"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#adbb262a3c872e26533b68a39db16459e">mlx::steel::BaseMMAFrag&lt; T, 8, 8 &gt;::col_frag_type</a></div><div class="ttdeci">metal::vec&lt; T, kElemCols &gt; col_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:63</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag</a></div><div class="ttdef"><b>Definition</b> mma.h:37</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a0461451ffb5041b6a916ea17ed34288b"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b">mlx::steel::BlockMMA::store_result</a></div><div class="ttdeci">METAL_FUNC void store_result(device U *D, const int ldd)</div><div class="ttdef"><b>Definition</b> mma.h:536</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a081ba538d30d1d02498a7f341e6bd611"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611">mlx::steel::BlockMMA::store_result_safe</a></div><div class="ttdeci">METAL_FUNC void store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)</div><div class="ttdef"><b>Definition</b> mma.h:550</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a138ed1bbad2ca88d3a3c7d162cd36562"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562">mlx::steel::BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue &gt;::As_offset</a></div><div class="ttdeci">short As_offset</div><div class="ttdef"><b>Definition</b> mma.h:485</div></div>
@ -961,7 +969,7 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div class="ttc" id="astructmlx_1_1steel_1_1_layout2_d_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_layout2_d.html">mlx::steel::Layout2D</a></div><div class="ttdef"><b>Definition</b> mma.h:31</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_layout2_d_html_a23183747ab1ddbdd3f1fcac6d0faa2cd"><div class="ttname"><a href="structmlx_1_1steel_1_1_layout2_d.html#a23183747ab1ddbdd3f1fcac6d0faa2cd">mlx::steel::Layout2D::shape</a></div><div class="ttdeci">Shape shape</div><div class="ttdef"><b>Definition</b> mma.h:32</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_layout2_d_html_a6beedf1677ee1b192fb48c83a29ac8a1"><div class="ttname"><a href="structmlx_1_1steel_1_1_layout2_d.html#a6beedf1677ee1b192fb48c83a29ac8a1">mlx::steel::Layout2D::layout</a></div><div class="ttdeci">Layout layout</div><div class="ttdef"><b>Definition</b> mma.h:33</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html">mlx::steel::MMATile</a></div><div class="ttdef"><b>Definition</b> mma.h:178</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html">mlx::steel::MMATile</a></div><div class="ttdef"><b>Definition</b> mma.h:223</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a1a6b1446e8c8da46885bbaa8e8fdc7e4"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4">mlx::steel::MMATile::frag_at</a></div><div class="ttdeci">METAL_FUNC constexpr thread frag_type &amp; frag_at(const short i, const short j)</div><div class="ttdef"><b>Definition</b> mma.h:256</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a1d126b14910385ab644e224ac1d0307a"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1d126b14910385ab644e224ac1d0307a">mlx::steel::MMATile::kTileRows</a></div><div class="ttdeci">STEEL_CONST int kTileRows</div><div class="ttdef"><b>Definition</b> mma.h:230</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a1ea49efd92696b15302ee4b52ecd548c"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1ea49efd92696b15302ee4b52ecd548c">mlx::steel::MMATile::kColsPerThread</a></div><div class="ttdeci">STEEL_CONST int kColsPerThread</div><div class="ttdef"><b>Definition</b> mma.h:240</div></div>
@ -1002,7 +1010,7 @@ $(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); })
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2mma_8h.html">mma.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/params.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -129,7 +129,7 @@ Namespaces</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2params_8h.html">params.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/params.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -165,7 +165,7 @@ $(function(){initNavTree('attn_2params_8h_source.html',''); initResizable(true);
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2params_8h.html">params.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/attn.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -137,7 +137,7 @@ Namespaces</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_8h.html">attn.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/attn.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -125,7 +125,7 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="namespacemlx_1_1steel.html"> 19</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> M_aligned, <span class="keywordtype">bool</span> N_aligned, <span class="keywordtype">bool</span> K_aligned&gt;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_loop_alignment.html">LoopAlignment</a> {};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_loop_alignment.html"> 22</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_loop_alignment.html">LoopAlignment</a> {};</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;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typename</span> T,</div>
@ -141,7 +141,8 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">bool</span> K_aligned,</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typename</span> AccumType = <span class="keyword">typename</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">AccumHelper&lt;T&gt;::accum_type</a>,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typename</span> Epilogue = <a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone&lt;U, AccumType&gt;</a>&gt;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html">GEMMKernel</a> {</div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="};">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html"> 38</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html">GEMMKernel</a> {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0"> 39</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">tgp_padding_a</a> = 16 / <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094"> 40</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094">tgp_padding_b</a> = 16 / <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f"> 41</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f">tgp_mem_size_a</a> =</div>
@ -399,6 +400,7 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span>};</div>
</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span>} <span class="comment">// namespace steel</span></div>
</div>
@ -416,8 +418,8 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html">mlx::steel::BlockLoader</a></div><div class="ttdef"><b>Definition</b> loader.h:25</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html">mlx::steel::BlockMMA</a></div><div class="ttdef"><b>Definition</b> mma.h:377</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html">mlx::steel::GEMMKernel</a></div><div class="ttdef"><b>Definition</b> gemm.h:37</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html">mlx::steel::BlockMMA</a></div><div class="ttdef"><b>Definition</b> mma.h:449</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html">mlx::steel::GEMMKernel</a></div><div class="ttdef"><b>Definition</b> attn.h:38</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a00e55d4a161758350ed7310817d2d2a5"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5">mlx::steel::GEMMKernel::run</a></div><div class="ttdeci">static METAL_FUNC void run(const device T *A, const device T *B, device U *D, const constant GEMMParams *params, threadgroup T *As, threadgroup T *Bs, uint simd_lane_id, uint simd_group_id, uint3 tid, uint3 lid)</div><div class="ttdef"><b>Definition</b> attn.h:141</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a105af1069668028c6f1bc6d6dd162298"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298">mlx::steel::GEMMKernel::tgp_mem_size_b</a></div><div class="ttdeci">STEEL_CONST short tgp_mem_size_b</div><div class="ttdef"><b>Definition</b> attn.h:43</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a1ec583584e69dcbbb72106390a4fc5da"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da">mlx::steel::GEMMKernel::tgp_mem_size</a></div><div class="ttdeci">STEEL_CONST short tgp_mem_size</div><div class="ttdef"><b>Definition</b> attn.h:45</div></div>
@ -430,7 +432,7 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_ad547704ccbff6c2076abeffa6628c5a0"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">mlx::steel::GEMMKernel::tgp_padding_a</a></div><div class="ttdeci">STEEL_CONST short tgp_padding_a</div><div class="ttdef"><b>Definition</b> attn.h:39</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_add8c6a31011a4895667c2a94a5af3782"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782">mlx::steel::GEMMKernel::mma_t</a></div><div class="ttdeci">BlockMMA&lt; T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue &gt; mma_t</div><div class="ttdef"><b>Definition</b> attn.h:63</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_params_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_params.html">mlx::steel::GEMMParams</a></div><div class="ttdef"><b>Definition</b> params.h:12</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_loop_alignment_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_loop_alignment.html">mlx::steel::LoopAlignment</a></div><div class="ttdef"><b>Definition</b> gemm.h:21</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_loop_alignment_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_loop_alignment.html">mlx::steel::LoopAlignment</a></div><div class="ttdef"><b>Definition</b> attn.h:22</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html">mlx::steel::TransformNone</a></div><div class="ttdef"><b>Definition</b> transforms.h:15</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
@ -438,7 +440,7 @@ $(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_8h.html">attn.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -1,4 +0,0 @@
var backend_2accelerate_2utils_8h =
[
[ "mlx::core::to_bnns_dtype", "namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb", null ]
];

View File

@ -1,160 +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.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/accelerate/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('backend_2accelerate_2utils_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">utils.h</div></div>
</div><!--header-->
<div class="contents">
<a href="backend_2accelerate_2utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2023-2024 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
<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;Accelerate/Accelerate.h&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;<a class="code" href="dtype_8h.html">mlx/dtype.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="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="foldopen" id="foldopen00010" data-start="{" data-end="}">
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb"> 10</a></span>BNNSDataType <a class="code hl_function" href="namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb">to_bnns_dtype</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> mlx_dtype) {</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> uint32_t size_bits = <a class="code hl_function" href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">size_of</a>(mlx_dtype) * 8;</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordflow">switch</span> (<a class="code hl_function" href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">kindof</a>(mlx_dtype)) {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">Dtype::Kind::b</a>:</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">return</span> BNNSDataTypeBoolean;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">Dtype::Kind::u</a>:</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeUIntBit | size_bits);</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">Dtype::Kind::i</a>:</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeIntBit | size_bits);</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">Dtype::Kind::f</a>:</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">return</span> BNNSDataType(BNNSDataTypeFloatBit | size_bits);</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">Dtype::Kind::V</a>:</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">return</span> BNNSDataTypeBFloat16;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">Dtype::Kind::c</a>:</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;BNNS does not support complex types&quot;</span>);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> }</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>}</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"> 28</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="adtype_8h_html"><div class="ttname"><a href="dtype_8h.html">dtype.h</a></div></div>
<div class="ttc" id="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:102</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 class="ttdef"><b>Definition</b> dtype.h:35</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div><div class="ttdef"><b>Definition</b> dtype.h:36</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div><div class="ttdef"><b>Definition</b> dtype.h:32</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div><div class="ttdef"><b>Definition</b> dtype.h:33</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div><div class="ttdef"><b>Definition</b> dtype.h:34</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div><div class="ttdef"><b>Definition</b> dtype.h:31</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li><li class="navelem"><a class="el" href="backend_2accelerate_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
</ul>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/load.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -131,7 +131,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2load_8h.html">load.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/load.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -130,7 +130,7 @@ $(function(){initNavTree('backend_2common_2load_8h_source.html',''); initResizab
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2load_8h.html">load.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -164,7 +164,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -344,7 +344,7 @@ $(function(){initNavTree('backend_2common_2utils_8h_source.html',''); initResiza
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/allocator.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -145,7 +145,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2allocator_8h.html">allocator.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/allocator.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -249,7 +249,7 @@ $(function(){initNavTree('backend_2metal_2allocator_8h_source.html',''); initRes
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2allocator_8h.html">allocator.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/device.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -164,7 +164,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2device_8h.html">device.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

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

View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/event.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('backend_2metal_2event_8h.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">event.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="backend_2metal_2event_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><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:a2874ba55b73057b76c23a7429fdd2d6e" id="r_a2874ba55b73057b76c23a7429fdd2d6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a2874ba55b73057b76c23a7429fdd2d6e">mlx::core::encode_wait</a> (<a class="el" href="classmlx_1_1core_1_1_event.html">Event</a> e)</td></tr>
<tr class="separator:a2874ba55b73057b76c23a7429fdd2d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d452306f0f046a7d021bd94f8713a89" id="r_a6d452306f0f046a7d021bd94f8713a89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a6d452306f0f046a7d021bd94f8713a89">mlx::core::encode_signal</a> (<a class="el" href="classmlx_1_1core_1_1_event.html">Event</a> e)</td></tr>
<tr class="separator:a6d452306f0f046a7d021bd94f8713a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2event_8h.html">event.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var backend_2metal_2event_8h =
[
[ "mlx::core::encode_signal", "namespacemlx_1_1core.html#a6d452306f0f046a7d021bd94f8713a89", null ],
[ "mlx::core::encode_wait", "namespacemlx_1_1core.html#a2874ba55b73057b76c23a7429fdd2d6e", null ]
];

View File

@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/event.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('backend_2metal_2event_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">event.h</div></div>
</div><!--header-->
<div class="contents">
<a href="backend_2metal_2event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2024 Apple Inc.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</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="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a2874ba55b73057b76c23a7429fdd2d6e"> 6</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a2874ba55b73057b76c23a7429fdd2d6e">encode_wait</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> e);</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"><a class="line" href="namespacemlx_1_1core.html#a6d452306f0f046a7d021bd94f8713a89"> 8</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a6d452306f0f046a7d021bd94f8713a89">encode_signal</a>(<a class="code hl_class" href="classmlx_1_1core_1_1_event.html">Event</a> e);</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="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_event_html"><div class="ttname"><a href="classmlx_1_1core_1_1_event.html">mlx::core::Event</a></div><div class="ttdef"><b>Definition</b> event.h:11</div></div>
<div class="ttc" id="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_a2874ba55b73057b76c23a7429fdd2d6e"><div class="ttname"><a href="namespacemlx_1_1core.html#a2874ba55b73057b76c23a7429fdd2d6e">mlx::core::encode_wait</a></div><div class="ttdeci">void encode_wait(Event e)</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6d452306f0f046a7d021bd94f8713a89"><div class="ttname"><a href="namespacemlx_1_1core.html#a6d452306f0f046a7d021bd94f8713a89">mlx::core::encode_signal</a></div><div class="ttdeci">void encode_signal(Event e)</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2event_8h.html">event.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/complex.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -528,7 +528,7 @@ template&lt;typename T&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2complex_8h.html">complex.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/complex.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -299,7 +299,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2complex_8h_source.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2complex_8h.html">complex.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/fft.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -1113,7 +1113,7 @@ template&lt;int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2fft_8h.html">fft.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/fft.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -560,7 +560,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2fft_8h_source.html',''); init
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">typename</span> in_T,</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">typename</span> out_T,</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <span class="keywordtype">int</span> step,</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#gaf8913cabeb9fb193ba687aaeb2087764">real</a> = <span class="keyword">false</span>&gt;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a> = <span class="keyword">false</span>&gt;</div>
<div class="foldopen" id="foldopen00443" data-start="{" data-end="}">
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de"> 443</a></span>[[kernel]] <span class="keywordtype">void</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de">four_step_fft</a>(</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keyword">const</span> device in_T* in [[buffer(0)]],</div>
@ -640,10 +640,10 @@ $(function(){initNavTree('backend_2metal_2kernels_2fft_8h_source.html',''); init
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_ad395c11e6f2aee72cd1928fba93a35a3"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a></div><div class="ttdeci">static constant constexpr const int elems_per_thread_</div><div class="ttdef"><b>Definition</b> fft.h:25</div></div>
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_adb129cc3808c08fd95af9795bfc7ae63"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#adb129cc3808c08fd95af9795bfc7ae63">rader_3_steps_</a></div><div class="ttdeci">static constant constexpr const int rader_3_steps_</div><div class="ttdef"><b>Definition</b> fft.h:46</div></div>
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_afea05e9a7105bafbaafca25042f4d1b4"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#afea05e9a7105bafbaafca25042f4d1b4">rader_5_steps_</a></div><div class="ttdeci">static constant constexpr const int rader_5_steps_</div><div class="ttdef"><b>Definition</b> fft.h:44</div></div>
<div class="ttc" id="agroup__ops_html_gaf8913cabeb9fb193ba687aaeb2087764"><div class="ttname"><a href="group__ops.html#gaf8913cabeb9fb193ba687aaeb2087764">mlx::core::real</a></div><div class="ttdeci">array real(const array &amp;a, StreamOrDevice s={})</div></div>
<div class="ttc" id="ametal_2kernels_2hadamard_8h_html_a590e5366adc78bab4fe44e37885d413f"><div class="ttname"><a href="metal_2kernels_2hadamard_8h.html#a590e5366adc78bab4fe44e37885d413f">radix_func</a></div><div class="ttdeci">METAL_FUNC void radix_func(thread float *x)</div><div class="ttdef"><b>Definition</b> hadamard.h:11</div></div>
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:98</div></div>
<div class="ttc" id="aradix_8h_html"><div class="ttname"><a href="radix_8h.html">radix.h</a></div></div>
<div class="ttc" id="aradix_8h_html_a026e6779e6d2ecdef39ff4aad186091e"><div class="ttname"><a href="radix_8h.html#a026e6779e6d2ecdef39ff4aad186091e">radix5</a></div><div class="ttdeci">METAL_FUNC void radix5(thread float2 *x, thread float2 *y)</div><div class="ttdef"><b>Definition</b> radix.h:69</div></div>
<div class="ttc" id="aradix_8h_html_a12cb26bd3ad635d16a195ccea750256d"><div class="ttname"><a href="radix_8h.html#a12cb26bd3ad635d16a195ccea750256d">radix4</a></div><div class="ttdeci">METAL_FUNC void radix4(thread float2 *x, thread float2 *y)</div><div class="ttdef"><b>Definition</b> radix.h:56</div></div>
@ -667,7 +667,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2fft_8h_source.html',''); init
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2fft_8h.html">fft.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/jit/bf16.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -170,7 +170,7 @@ Macros</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2jit_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/jit/bf16.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -131,7 +131,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2jit_2bf16_8h_source.html','')
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2jit_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/metal_3_0/bf16.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -11029,7 +11029,7 @@ template&lt;typename T&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_d36f9e79442ec4bd53287b83bdefe7e5.html">metal_3_0</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/metal_3_0/bf16.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -516,7 +516,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_d36f9e79442ec4bd53287b83bdefe7e5.html">metal_3_0</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/metal_3_1/bf16.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -196,7 +196,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/metal_3_1/bf16.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -135,7 +135,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2metal__3__1_2bf16_8h_source.h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html">bf16.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/reduction/ops.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -204,7 +204,7 @@ Variables</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2reduction_2ops_8h.html">ops.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/reduction/ops.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -359,7 +359,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2reduction_2ops_8h_source.html
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2reduction_2ops_8h.html">ops.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/transforms.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ Namespaces</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2attn_2transforms_8h.html">transforms.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/attn/transforms.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -117,7 +117,8 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone</a> {</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_1steel_1_1_transform_none.html"> 15</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone</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_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75"> 16</a></span> <span class="keyword">static</span> METAL_FUNC OutT <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75">apply</a>(InT x) {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>OutT<span class="keyword">&gt;</span>(x);</div>
@ -130,9 +131,11 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> }</div>
</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>};</div>
</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">struct </span>TransformAdd {</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_1steel_1_1_transform_add.html"> 26</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae"> 27</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>, <span class="keyword">const</span> <span class="keywordtype">float</span>) {}</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="foldopen" id="foldopen00029" data-start="{" data-end="}">
@ -147,9 +150,11 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> }</div>
</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>};</div>
</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keyword">struct </span>TransformAxpby {</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_1steel_1_1_transform_axpby.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9">TransformAxpby</a> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff"> 40</a></span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff">alpha</a>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6"> 41</a></span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6">beta</a>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
@ -170,13 +175,17 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>};</div>
</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">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keyword">struct </span>AccumHelper {</div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html"> 56</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_accum_helper.html">AccumHelper</a> {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26"> 57</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">accum_type</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>};</div>
</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"> 60</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_swizzle.html">BlockSwizzle</a> {</div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="};">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_swizzle.html"> 60</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_swizzle.html">BlockSwizzle</a> {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">static</span> METAL_FUNC int2</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_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760"> 62</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760">swizzle</a>(uint3 tid [[threadgroup_position_in_grid]], <span class="keyword">const</span> <span class="keywordtype">int</span> swizzle_log) {</div>
@ -187,12 +196,14 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>};</div>
</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"> 70</span>} <span class="comment">// namespace steel</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>} <span class="comment">// namespace mlx</span></div>
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html">mlx::steel::AccumHelper</a></div><div class="ttdef"><b>Definition</b> transforms.h:56</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html">mlx::steel::BlockSwizzle</a></div><div class="ttdef"><b>Definition</b> transforms.h:60</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html_a98e558d63826d2aaa06d3e65a06d2760"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760">mlx::steel::BlockSwizzle::swizzle</a></div><div class="ttdeci">static METAL_FUNC int2 swizzle(uint3 tid, const int swizzle_log)</div><div class="ttdef"><b>Definition</b> transforms.h:62</div></div>
@ -213,7 +224,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_so
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2attn_2transforms_8h.html">transforms.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/gemm/transforms.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ Namespaces</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html">transforms.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/gemm/transforms.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -117,8 +117,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</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_1steel_1_1_transform_none.html"> 15</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone</a> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone</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_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75"> 16</a></span> <span class="keyword">static</span> METAL_FUNC OutT <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75">apply</a>(InT x) {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>OutT<span class="keyword">&gt;</span>(x);</div>
@ -131,11 +130,9 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> }</div>
</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>};</div>
</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</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_1steel_1_1_transform_add.html"> 26</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">struct </span>TransformAdd {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae"> 27</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>, <span class="keyword">const</span> <span class="keywordtype">float</span>) {}</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="foldopen" id="foldopen00029" data-start="{" data-end="}">
@ -150,11 +147,9 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> }</div>
</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>};</div>
</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT&gt;</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_1steel_1_1_transform_axpby.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9">TransformAxpby</a> {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keyword">struct </span>TransformAxpby {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff">alpha</a>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6">beta</a>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
@ -175,17 +170,13 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>};</div>
</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">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html"> 56</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_accum_helper.html">AccumHelper</a> {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keyword">struct </span>AccumHelper {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26"> 57</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">accum_type</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>};</div>
</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="};">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_swizzle.html"> 60</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_swizzle.html">BlockSwizzle</a> {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_swizzle.html">BlockSwizzle</a> {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">static</span> METAL_FUNC int2</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_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760"> 62</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760">swizzle</a>(uint3 tid [[threadgroup_position_in_grid]], <span class="keyword">const</span> <span class="keywordtype">int</span> swizzle_log) {</div>
@ -196,14 +187,12 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>};</div>
</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"> 70</span>} <span class="comment">// namespace steel</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>} <span class="comment">// namespace mlx</span></div>
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html">mlx::steel::AccumHelper</a></div><div class="ttdef"><b>Definition</b> transforms.h:56</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html">mlx::steel::BlockSwizzle</a></div><div class="ttdef"><b>Definition</b> transforms.h:60</div></div>
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html_a98e558d63826d2aaa06d3e65a06d2760"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760">mlx::steel::BlockSwizzle::swizzle</a></div><div class="ttdeci">static METAL_FUNC int2 swizzle(uint3 tid, const int swizzle_log)</div><div class="ttdef"><b>Definition</b> transforms.h:62</div></div>
@ -224,7 +213,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_so
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html">transforms.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -202,7 +202,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/steel/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -158,7 +158,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2steel_2utils_8h_source.html',
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -122,41 +122,41 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h.html',''); initResiz
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; U &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; uint8_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint8__t_01_4.html">Limits&lt; uint8_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; uint16_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint16__t_01_4.html">Limits&lt; uint16_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; uint32_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint32__t_01_4.html">Limits&lt; uint32_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; uint64_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint64__t_01_4.html">Limits&lt; uint64_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; int8_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int8__t_01_4.html">Limits&lt; int8_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; int16_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int16__t_01_4.html">Limits&lt; int16_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; int32_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int32__t_01_4.html">Limits&lt; int32_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; int64_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int64__t_01_4.html">Limits&lt; int64_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; half &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01half_01_4.html">Limits&lt; half &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; float &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01float_01_4.html">Limits&lt; float &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; bfloat16_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html">Limits&lt; bfloat16_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; bool &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01bool_01_4.html">Limits&lt; bool &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits&lt; complex64_t &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01complex64__t_01_4.html">Limits&lt; complex64_t &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc&lt; DIM, OffsetT, General &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html">LoopedElemToLoc&lt; 1, OffsetT, true &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html">LoopedElemToLoc&lt; 1, OffsetT, false &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type.html">ConditionalType&lt; condition, T, U &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type.html">ConditionalType&lt; true, T, U &gt;</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html">ConditionalType&lt; true, T, U &gt;</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="define-members" name="define-members"></a>
@ -1114,7 +1114,7 @@ template&lt;typename IdxT = int64_t&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -1,24 +1,24 @@
var backend_2metal_2kernels_2utils_8h =
[
[ "Limits< U >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint8_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint32_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int8_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int32_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< int64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< half >", "struct_limits.html", "struct_limits" ],
[ "Limits< float >", "struct_limits.html", "struct_limits" ],
[ "Limits< bfloat16_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< bool >", "struct_limits.html", "struct_limits" ],
[ "Limits< complex64_t >", "struct_limits.html", "struct_limits" ],
[ "Limits< uint8_t >", "struct_limits_3_01uint8__t_01_4.html", "struct_limits_3_01uint8__t_01_4" ],
[ "Limits< uint16_t >", "struct_limits_3_01uint16__t_01_4.html", "struct_limits_3_01uint16__t_01_4" ],
[ "Limits< uint32_t >", "struct_limits_3_01uint32__t_01_4.html", "struct_limits_3_01uint32__t_01_4" ],
[ "Limits< uint64_t >", "struct_limits_3_01uint64__t_01_4.html", "struct_limits_3_01uint64__t_01_4" ],
[ "Limits< int8_t >", "struct_limits_3_01int8__t_01_4.html", "struct_limits_3_01int8__t_01_4" ],
[ "Limits< int16_t >", "struct_limits_3_01int16__t_01_4.html", "struct_limits_3_01int16__t_01_4" ],
[ "Limits< int32_t >", "struct_limits_3_01int32__t_01_4.html", "struct_limits_3_01int32__t_01_4" ],
[ "Limits< int64_t >", "struct_limits_3_01int64__t_01_4.html", "struct_limits_3_01int64__t_01_4" ],
[ "Limits< half >", "struct_limits_3_01half_01_4.html", "struct_limits_3_01half_01_4" ],
[ "Limits< float >", "struct_limits_3_01float_01_4.html", "struct_limits_3_01float_01_4" ],
[ "Limits< bfloat16_t >", "struct_limits_3_01bfloat16__t_01_4.html", "struct_limits_3_01bfloat16__t_01_4" ],
[ "Limits< bool >", "struct_limits_3_01bool_01_4.html", "struct_limits_3_01bool_01_4" ],
[ "Limits< complex64_t >", "struct_limits_3_01complex64__t_01_4.html", "struct_limits_3_01complex64__t_01_4" ],
[ "LoopedElemToLoc< DIM, OffsetT, General >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4" ],
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html", "struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4" ],
[ "ConditionalType< condition, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
[ "ConditionalType< true, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
[ "ConditionalType< true, T, U >", "struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html", "struct_conditional_type_3_01true_00_01_t_00_01_u_01_4" ],
[ "instantiate_default_limit", "backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c", null ],
[ "instantiate_float_limit", "backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a", null ],
[ "MLX_MTL_PRAGMA_UNROLL", "backend_2metal_2kernels_2utils_8h.html#a069b682d7d21827461544817d722bfd3", null ],

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -147,14 +147,14 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"> };</span></div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="struct_limits.html#a55f48b89033e8c8683f8540ec6b23f02"> 41</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint8_t);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="struct_limits.html#a9d517d8265ea1898b6b16e91b8595146"> 42</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint16_t);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="struct_limits.html#a0698139f3fe440d7aa08ac5029d72235"> 43</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint32_t);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="struct_limits.html#aff101ff38be5ccdbb9790aecb3069071"> 44</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint64_t);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="struct_limits.html#a24cdab873e0fb778393c69f1dc9ecf73"> 45</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int8_t);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="struct_limits.html#acb2936d1cdbf347a9a014c8e036a5782"> 46</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int16_t);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="struct_limits.html#aa9ed9f0e8c7400d8fc92e1cba9588794"> 47</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int32_t);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="struct_limits.html#a6c7254b641878fa0fb9538814c45457a"> 48</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int64_t);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="struct_limits_3_01uint8__t_01_4.html#a55f48b89033e8c8683f8540ec6b23f02"> 41</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint8_t);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="struct_limits_3_01uint16__t_01_4.html#a9d517d8265ea1898b6b16e91b8595146"> 42</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint16_t);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="struct_limits_3_01uint32__t_01_4.html#a0698139f3fe440d7aa08ac5029d72235"> 43</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint32_t);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="struct_limits_3_01uint64__t_01_4.html#aff101ff38be5ccdbb9790aecb3069071"> 44</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(uint64_t);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="struct_limits_3_01int8__t_01_4.html#a24cdab873e0fb778393c69f1dc9ecf73"> 45</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int8_t);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="struct_limits_3_01int16__t_01_4.html#acb2936d1cdbf347a9a014c8e036a5782"> 46</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int16_t);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="struct_limits_3_01int32__t_01_4.html#aa9ed9f0e8c7400d8fc92e1cba9588794"> 47</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int32_t);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="struct_limits_3_01int64__t_01_4.html#a6c7254b641878fa0fb9538814c45457a"> 48</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c">instantiate_default_limit</a>(int64_t);</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="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a"> 50</a></span><span class="preprocessor">#define instantiate_float_limit(type) \</span></div>
@ -171,25 +171,25 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor"> };</span></div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="struct_limits.html#aedaf0190aabf23da20510e558e2690b4"> 63</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(half);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="struct_limits.html#a291eea590113fc1858b7f83f2e0c977d"> 64</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(<span class="keywordtype">float</span>);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="struct_limits.html#a6337dc35207b3f6f7185cd73eabac211"> 65</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(<a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a>);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="struct_limits_3_01half_01_4.html#aedaf0190aabf23da20510e558e2690b4"> 63</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(half);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="struct_limits_3_01float_01_4.html#a291eea590113fc1858b7f83f2e0c977d"> 64</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(<span class="keywordtype">float</span>);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="struct_limits_3_01bfloat16__t_01_4.html#a6337dc35207b3f6f7185cd73eabac211"> 65</a></span><a class="code hl_define" href="backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a">instantiate_float_limit</a>(<a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a>);</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"> 67</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="foldopen" id="foldopen00068" data-start="{" data-end="};">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="struct_limits.html"> 68</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a>&lt;bool&gt; {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="struct_limits.html#acbd2132145888d51220558a101ffcff4"> 69</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="struct_limits.html#acbd2132145888d51220558a101ffcff4">max</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="struct_limits.html#a139f787b57536d455490b8ef801d37cc"> 70</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="struct_limits.html#a139f787b57536d455490b8ef801d37cc">min</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="struct_limits_3_01bool_01_4.html"> 68</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a>&lt;bool&gt; {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4"> 69</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">max</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc"> 70</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">min</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>};</div>
</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="keyword">template</span> &lt;&gt;</div>
<div class="foldopen" id="foldopen00074" data-start="{" data-end="};">
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="struct_limits.html"> 74</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a>&lt;<a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>&gt; {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="struct_limits.html#ac01c274b224b90f5210b675a484f4607"> 75</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a> <a class="code hl_variable" href="struct_limits.html#ac01c274b224b90f5210b675a484f4607">max</a> = <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>(</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="struct_limits_3_01complex64__t_01_4.html"> 74</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a>&lt;<a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>&gt; {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607"> 75</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a> <a class="code hl_variable" href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">max</a> = <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>(</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> metal::numeric_limits&lt;float&gt;::infinity(),</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> metal::numeric_limits&lt;float&gt;::infinity());</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="struct_limits.html#aa67b04aa7abcd67f7af0808737ab8e14"> 78</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a> <a class="code hl_variable" href="struct_limits.html#aa67b04aa7abcd67f7af0808737ab8e14">min</a> = <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>(</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14"> 78</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a> <a class="code hl_variable" href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">min</a> = <a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a>(</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> -metal::numeric_limits&lt;float&gt;::infinity(),</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> -metal::numeric_limits&lt;float&gt;::infinity());</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>};</div>
@ -375,38 +375,38 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OffsetT&gt;</div>
<div class="foldopen" id="foldopen00247" data-start="{" data-end="};">
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html"> 247</a></span><span class="keyword">struct </span><a class="code hl_function" href="struct_looped_elem_to_loc.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc</a>&lt;1, OffsetT, true&gt; {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e"> 248</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b"> 249</a></span> OffsetT <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a>{0};</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d"> 250</a></span> uint <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>{0};</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html"> 247</a></span><span class="keyword">struct </span><a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc</a>&lt;1, OffsetT, true&gt; {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e"> 248</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b"> 249</a></span> OffsetT <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a>{0};</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d"> 250</a></span> uint <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>{0};</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#abf536c7162d36af7367e390789944c86"> 252</a></span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc</a>(<span class="keywordtype">int</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>) : <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>) {}</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86"> 252</a></span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc</a>(<span class="keywordtype">int</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>) : <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>) {}</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="foldopen" id="foldopen00254" data-start="{" data-end="}">
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#adc8113de3152d291331f219bfe5970c2"> 254</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#adc8113de3152d291331f219bfe5970c2">next</a>(<span class="keyword">const</span> constant <span class="keywordtype">int</span>* shape, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>++;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a> &gt; 1) {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a497dd9f1a00c8a4303d8782158a0812a">elem_to_loc&lt;OffsetT&gt;</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>, shape, strides, <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>);</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#adc8113de3152d291331f219bfe5970c2"> 254</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#adc8113de3152d291331f219bfe5970c2">next</a>(<span class="keyword">const</span> constant <span class="keywordtype">int</span>* shape, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>++;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a> &gt; 1) {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a497dd9f1a00c8a4303d8782158a0812a">elem_to_loc&lt;OffsetT&gt;</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>, shape, strides, <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> += OffsetT(strides[0]);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> += OffsetT(strides[0]);</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="foldopen" id="foldopen00263" data-start="{" data-end="}">
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a70d92070097fe0622b836afc778bf8d2"> 263</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#a70d92070097fe0622b836afc778bf8d2">next</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> constant <span class="keywordtype">int</span>* shape, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a> += n;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a> &gt; 1) {</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a497dd9f1a00c8a4303d8782158a0812a">elem_to_loc&lt;OffsetT&gt;</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>, shape, strides, <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">dim</a>);</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a70d92070097fe0622b836afc778bf8d2"> 263</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a70d92070097fe0622b836afc778bf8d2">next</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> constant <span class="keywordtype">int</span>* shape, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a> += n;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a> &gt; 1) {</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a497dd9f1a00c8a4303d8782158a0812a">elem_to_loc&lt;OffsetT&gt;</a>(<a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a>, shape, strides, <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">dim</a>);</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a> * OffsetT(strides[0]);</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a> = <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">index</a> * OffsetT(strides[0]);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> }</div>
</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="foldopen" id="foldopen00272" data-start="{" data-end="}">
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a66b84b12f6c1494e5908989ed2849a9f"> 272</a></span> OffsetT <a class="code hl_function" href="struct_looped_elem_to_loc.html#a66b84b12f6c1494e5908989ed2849a9f">location</a>() {</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">offset</a>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a66b84b12f6c1494e5908989ed2849a9f"> 272</a></span> OffsetT <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a66b84b12f6c1494e5908989ed2849a9f">location</a>() {</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">offset</a>;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span>};</div>
@ -414,26 +414,26 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> OffsetT&gt;</div>
<div class="foldopen" id="foldopen00278" data-start="{" data-end="};">
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html"> 278</a></span><span class="keyword">struct </span><a class="code hl_function" href="struct_looped_elem_to_loc.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc</a>&lt;1, OffsetT, false&gt; {</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a"> 279</a></span> OffsetT <a class="code hl_variable" href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a>{0};</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html"> 278</a></span><span class="keyword">struct </span><a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc</a>&lt;1, OffsetT, false&gt; {</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a"> 279</a></span> OffsetT <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a>{0};</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a0e21977d9f23b6994773e8e4f3ee70de"> 281</a></span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc</a>(<span class="keywordtype">int</span>) {}</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de"> 281</a></span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc</a>(<span class="keywordtype">int</span>) {}</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a9d85f32e5460707827df3ba74b905c23"> 283</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#a9d85f32e5460707827df3ba74b905c23">next</a>(<span class="keyword">const</span> constant <span class="keywordtype">int</span>*, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a> += OffsetT(strides[0]);</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a9d85f32e5460707827df3ba74b905c23"> 283</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a9d85f32e5460707827df3ba74b905c23">next</a>(<span class="keyword">const</span> constant <span class="keywordtype">int</span>*, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a> += OffsetT(strides[0]);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> }</div>
</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
<div class="foldopen" id="foldopen00287" data-start="{" data-end="}">
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a634f4fa8f4b5f1fdd47a26754ef2eba7"> 287</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc.html#a634f4fa8f4b5f1fdd47a26754ef2eba7">next</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> constant <span class="keywordtype">int</span>*, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a> += n * OffsetT(strides[0]);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a634f4fa8f4b5f1fdd47a26754ef2eba7"> 287</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a634f4fa8f4b5f1fdd47a26754ef2eba7">next</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> constant <span class="keywordtype">int</span>*, <span class="keyword">const</span> constant int64_t* strides) {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a> += n * OffsetT(strides[0]);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="foldopen" id="foldopen00291" data-start="{" data-end="}">
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef"> 291</a></span> OffsetT <a class="code hl_function" href="struct_looped_elem_to_loc.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef">location</a>() {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a>;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef"> 291</a></span> OffsetT <a class="code hl_function" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef">location</a>() {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a">offset</a>;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> }</div>
</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span>};</div>
@ -600,8 +600,8 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="foldopen" id="foldopen00421" data-start="{" data-end="};">
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="struct_conditional_type.html"> 421</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_conditional_type.html">ConditionalType</a>&lt;true, T, U&gt; {</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="struct_conditional_type.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc"> 422</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="struct_conditional_type.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc">type</a> = T;</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html"> 421</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_conditional_type.html">ConditionalType</a>&lt;true, T, U&gt; {</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc"> 422</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc">type</a> = T;</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span>};</div>
</div>
<div class="ttc" id="abackend_2metal_2kernels_2complex_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2complex_8h.html">complex.h</a></div></div>
@ -624,37 +624,37 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div class="ttc" id="anamespacemetal_html_a423a9f4f2fc7ef5ec7eda061277b51b6"><div class="ttname"><a href="namespacemetal.html#a423a9f4f2fc7ef5ec7eda061277b51b6">metal::log</a></div><div class="ttdeci">METAL_FUNC bfloat16_t log(bfloat16_t x)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
<div class="ttc" id="anamespacemetal_html_af6e2dd7ae087aba6abac4f0350b7611c"><div class="ttname"><a href="namespacemetal.html#af6e2dd7ae087aba6abac4f0350b7611c">metal::simd_shuffle_down</a></div><div class="ttdeci">METAL_FUNC bfloat16_t simd_shuffle_down(bfloat16_t data, ushort delta)</div><div class="ttdef"><b>Definition</b> bf16_math.h:377</div></div>
<div class="ttc" id="anamespacemetal_html_afe81c5fbde3f4890458b081909242c55"><div class="ttname"><a href="namespacemetal.html#afe81c5fbde3f4890458b081909242c55">metal::simd_shuffle_up</a></div><div class="ttdeci">METAL_FUNC bfloat16_t simd_shuffle_up(bfloat16_t data, ushort delta)</div><div class="ttdef"><b>Definition</b> bf16_math.h:377</div></div>
<div class="ttc" id="astruct_conditional_type_3_01true_00_01_t_00_01_u_01_4_html_abf6b75b3bfc5e3baf8c37afdb8a7e4fc"><div class="ttname"><a href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc">ConditionalType&lt; true, T, U &gt;::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition</b> utils.h:422</div></div>
<div class="ttc" id="astruct_conditional_type_html"><div class="ttname"><a href="struct_conditional_type.html">ConditionalType</a></div><div class="ttdef"><b>Definition</b> utils.h:416</div></div>
<div class="ttc" id="astruct_conditional_type_html_a00bac71c43763817c4422bf0363dc92b"><div class="ttname"><a href="struct_conditional_type.html#a00bac71c43763817c4422bf0363dc92b">ConditionalType::type</a></div><div class="ttdeci">U type</div><div class="ttdef"><b>Definition</b> utils.h:417</div></div>
<div class="ttc" id="astruct_conditional_type_html_abf6b75b3bfc5e3baf8c37afdb8a7e4fc"><div class="ttname"><a href="struct_conditional_type.html#abf6b75b3bfc5e3baf8c37afdb8a7e4fc">ConditionalType&lt; true, T, U &gt;::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition</b> utils.h:422</div></div>
<div class="ttc" id="astruct_limits_3_01bool_01_4_html_a139f787b57536d455490b8ef801d37cc"><div class="ttname"><a href="struct_limits_3_01bool_01_4.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;::min</a></div><div class="ttdeci">static constexpr constant bool min</div><div class="ttdef"><b>Definition</b> utils.h:70</div></div>
<div class="ttc" id="astruct_limits_3_01bool_01_4_html_acbd2132145888d51220558a101ffcff4"><div class="ttname"><a href="struct_limits_3_01bool_01_4.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;::max</a></div><div class="ttdeci">static constexpr constant bool max</div><div class="ttdef"><b>Definition</b> utils.h:69</div></div>
<div class="ttc" id="astruct_limits_3_01complex64__t_01_4_html_aa67b04aa7abcd67f7af0808737ab8e14"><div class="ttname"><a href="struct_limits_3_01complex64__t_01_4.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;::min</a></div><div class="ttdeci">static constexpr constant complex64_t min</div><div class="ttdef"><b>Definition</b> utils.h:78</div></div>
<div class="ttc" id="astruct_limits_3_01complex64__t_01_4_html_ac01c274b224b90f5210b675a484f4607"><div class="ttname"><a href="struct_limits_3_01complex64__t_01_4.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;::max</a></div><div class="ttdeci">static constexpr constant complex64_t max</div><div class="ttdef"><b>Definition</b> utils.h:75</div></div>
<div class="ttc" id="astruct_limits_html"><div class="ttname"><a href="struct_limits.html">Limits</a></div><div class="ttdef"><b>Definition</b> utils.h:23</div></div>
<div class="ttc" id="astruct_limits_html_a139f787b57536d455490b8ef801d37cc"><div class="ttname"><a href="struct_limits.html#a139f787b57536d455490b8ef801d37cc">Limits&lt; bool &gt;::min</a></div><div class="ttdeci">static constexpr constant bool min</div><div class="ttdef"><b>Definition</b> utils.h:70</div></div>
<div class="ttc" id="astruct_limits_html_a2f0673b6f9da89ce1d64f9f3d74f50a8"><div class="ttname"><a href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits::max</a></div><div class="ttdeci">static const constant U max</div><div class="ttdef"><b>Definition</b> utils.h:24</div></div>
<div class="ttc" id="astruct_limits_html_a5a3eae6d244fbea2aa7b9200001463e5"><div class="ttname"><a href="struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5">Limits::finite_max</a></div><div class="ttdeci">static const constant U finite_max</div><div class="ttdef"><b>Definition</b> utils.h:26</div></div>
<div class="ttc" id="astruct_limits_html_a6e81584ba65a4dc6ff9366b458e3a20e"><div class="ttname"><a href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits::min</a></div><div class="ttdeci">static const constant U min</div><div class="ttdef"><b>Definition</b> utils.h:25</div></div>
<div class="ttc" id="astruct_limits_html_aa67b04aa7abcd67f7af0808737ab8e14"><div class="ttname"><a href="struct_limits.html#aa67b04aa7abcd67f7af0808737ab8e14">Limits&lt; complex64_t &gt;::min</a></div><div class="ttdeci">static constexpr constant complex64_t min</div><div class="ttdef"><b>Definition</b> utils.h:78</div></div>
<div class="ttc" id="astruct_limits_html_ac01c274b224b90f5210b675a484f4607"><div class="ttname"><a href="struct_limits.html#ac01c274b224b90f5210b675a484f4607">Limits&lt; complex64_t &gt;::max</a></div><div class="ttdeci">static constexpr constant complex64_t max</div><div class="ttdef"><b>Definition</b> utils.h:75</div></div>
<div class="ttc" id="astruct_limits_html_acbd2132145888d51220558a101ffcff4"><div class="ttname"><a href="struct_limits.html#acbd2132145888d51220558a101ffcff4">Limits&lt; bool &gt;::max</a></div><div class="ttdeci">static constexpr constant bool max</div><div class="ttdef"><b>Definition</b> utils.h:69</div></div>
<div class="ttc" id="astruct_limits_html_ae7469d21f2688797ca3e388d919ef05e"><div class="ttname"><a href="struct_limits.html#ae7469d21f2688797ca3e388d919ef05e">Limits::finite_min</a></div><div class="ttdeci">static const constant U finite_min</div><div class="ttdef"><b>Definition</b> utils.h:27</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a0e21977d9f23b6994773e8e4f3ee70de"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::LoopedElemToLoc</a></div><div class="ttdeci">LoopedElemToLoc(int)</div><div class="ttdef"><b>Definition</b> utils.h:281</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a2cd3b616739b3d5b41e5b46ae335957d"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a2cd3b616739b3d5b41e5b46ae335957d">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::index</a></div><div class="ttdeci">uint index</div><div class="ttdef"><b>Definition</b> utils.h:250</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a3a18944c158e2747a6ddebb420299a3b"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a3a18944c158e2747a6ddebb420299a3b">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::offset</a></div><div class="ttdeci">OffsetT offset</div><div class="ttdef"><b>Definition</b> utils.h:249</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4_html_a0e21977d9f23b6994773e8e4f3ee70de"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a0e21977d9f23b6994773e8e4f3ee70de">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::LoopedElemToLoc</a></div><div class="ttdeci">LoopedElemToLoc(int)</div><div class="ttdef"><b>Definition</b> utils.h:281</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4_html_a634f4fa8f4b5f1fdd47a26754ef2eba7"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a634f4fa8f4b5f1fdd47a26754ef2eba7">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::next</a></div><div class="ttdeci">void next(int n, const constant int *, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:287</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4_html_a89d9ec4dc2f2f0d77e27aa0c05f261ef"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::location</a></div><div class="ttdeci">OffsetT location()</div><div class="ttdef"><b>Definition</b> utils.h:291</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4_html_a9d85f32e5460707827df3ba74b905c23"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#a9d85f32e5460707827df3ba74b905c23">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::next</a></div><div class="ttdeci">void next(const constant int *, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:283</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4_html_af792b1fd4e8286f97b9b863c127a2d9a"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html#af792b1fd4e8286f97b9b863c127a2d9a">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::offset</a></div><div class="ttdeci">OffsetT offset</div><div class="ttdef"><b>Definition</b> utils.h:279</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_a2cd3b616739b3d5b41e5b46ae335957d"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a2cd3b616739b3d5b41e5b46ae335957d">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::index</a></div><div class="ttdeci">uint index</div><div class="ttdef"><b>Definition</b> utils.h:250</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_a3a18944c158e2747a6ddebb420299a3b"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a3a18944c158e2747a6ddebb420299a3b">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::offset</a></div><div class="ttdeci">OffsetT offset</div><div class="ttdef"><b>Definition</b> utils.h:249</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_a66b84b12f6c1494e5908989ed2849a9f"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a66b84b12f6c1494e5908989ed2849a9f">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::location</a></div><div class="ttdeci">OffsetT location()</div><div class="ttdef"><b>Definition</b> utils.h:272</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_a70d92070097fe0622b836afc778bf8d2"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a70d92070097fe0622b836afc778bf8d2">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::next</a></div><div class="ttdeci">void next(int n, const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:263</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_a7be6bf560080472d61e74b522979ef1e"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#a7be6bf560080472d61e74b522979ef1e">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::dim</a></div><div class="ttdeci">int dim</div><div class="ttdef"><b>Definition</b> utils.h:248</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_abf536c7162d36af7367e390789944c86"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::LoopedElemToLoc</a></div><div class="ttdeci">LoopedElemToLoc(int dim)</div><div class="ttdef"><b>Definition</b> utils.h:252</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4_html_adc8113de3152d291331f219bfe5970c2"><div class="ttname"><a href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html#adc8113de3152d291331f219bfe5970c2">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::next</a></div><div class="ttdeci">void next(const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:254</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a5653be1c990722a4a215be27efe5648b"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a5653be1c990722a4a215be27efe5648b">LoopedElemToLoc::LoopedElemToLoc</a></div><div class="ttdeci">LoopedElemToLoc(int dim)</div><div class="ttdef"><b>Definition</b> utils.h:203</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a634f4fa8f4b5f1fdd47a26754ef2eba7"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a634f4fa8f4b5f1fdd47a26754ef2eba7">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::next</a></div><div class="ttdeci">void next(int n, const constant int *, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:287</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a66b84b12f6c1494e5908989ed2849a9f"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a66b84b12f6c1494e5908989ed2849a9f">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::location</a></div><div class="ttdeci">OffsetT location()</div><div class="ttdef"><b>Definition</b> utils.h:272</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a70d92070097fe0622b836afc778bf8d2"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a70d92070097fe0622b836afc778bf8d2">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::next</a></div><div class="ttdeci">void next(int n, const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:263</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a7be6bf560080472d61e74b522979ef1e"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a7be6bf560080472d61e74b522979ef1e">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::dim</a></div><div class="ttdeci">int dim</div><div class="ttdef"><b>Definition</b> utils.h:248</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a89d9ec4dc2f2f0d77e27aa0c05f261ef"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a89d9ec4dc2f2f0d77e27aa0c05f261ef">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::location</a></div><div class="ttdeci">OffsetT location()</div><div class="ttdef"><b>Definition</b> utils.h:291</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a8fbe77b4a774a30af5734dd9c5bd1f40"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a8fbe77b4a774a30af5734dd9c5bd1f40">LoopedElemToLoc::inner_looper</a></div><div class="ttdeci">LoopedElemToLoc&lt; DIM - 1, OffsetT, General &gt; inner_looper</div><div class="ttdef"><b>Definition</b> utils.h:199</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a9b41f17e9e1439a278af75a84a937531"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a9b41f17e9e1439a278af75a84a937531">LoopedElemToLoc::next</a></div><div class="ttdeci">void next(const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:205</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_a9d85f32e5460707827df3ba74b905c23"><div class="ttname"><a href="struct_looped_elem_to_loc.html#a9d85f32e5460707827df3ba74b905c23">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::next</a></div><div class="ttdeci">void next(const constant int *, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:283</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_aba051a428ad0934a9c6d04d4d3ee6e0e"><div class="ttname"><a href="struct_looped_elem_to_loc.html#aba051a428ad0934a9c6d04d4d3ee6e0e">LoopedElemToLoc::location</a></div><div class="ttdeci">OffsetT location()</div><div class="ttdef"><b>Definition</b> utils.h:241</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_abf536c7162d36af7367e390789944c86"><div class="ttname"><a href="struct_looped_elem_to_loc.html#abf536c7162d36af7367e390789944c86">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::LoopedElemToLoc</a></div><div class="ttdeci">LoopedElemToLoc(int dim)</div><div class="ttdef"><b>Definition</b> utils.h:252</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_acbd070b3193d9e87fb2c2db8db571333"><div class="ttname"><a href="struct_looped_elem_to_loc.html#acbd070b3193d9e87fb2c2db8db571333">LoopedElemToLoc::index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition</b> utils.h:201</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_acdffe540c383a67417604b6080704791"><div class="ttname"><a href="struct_looped_elem_to_loc.html#acdffe540c383a67417604b6080704791">LoopedElemToLoc::offset</a></div><div class="ttdeci">OffsetT offset</div><div class="ttdef"><b>Definition</b> utils.h:200</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_adc8113de3152d291331f219bfe5970c2"><div class="ttname"><a href="struct_looped_elem_to_loc.html#adc8113de3152d291331f219bfe5970c2">LoopedElemToLoc&lt; 1, OffsetT, true &gt;::next</a></div><div class="ttdeci">void next(const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:254</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_af1eb45e030e46c076c9876ef12c0d394"><div class="ttname"><a href="struct_looped_elem_to_loc.html#af1eb45e030e46c076c9876ef12c0d394">LoopedElemToLoc::next</a></div><div class="ttdeci">void next(int n, const constant int *shape, const constant int64_t *strides)</div><div class="ttdef"><b>Definition</b> utils.h:218</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_af792b1fd4e8286f97b9b863c127a2d9a"><div class="ttname"><a href="struct_looped_elem_to_loc.html#af792b1fd4e8286f97b9b863c127a2d9a">LoopedElemToLoc&lt; 1, OffsetT, false &gt;::offset</a></div><div class="ttdeci">OffsetT offset</div><div class="ttdef"><b>Definition</b> utils.h:279</div></div>
<div class="ttc" id="astruct_looped_elem_to_loc_html_af8285112846769aba2c0d8615f6f1364"><div class="ttname"><a href="struct_looped_elem_to_loc.html#af8285112846769aba2c0d8615f6f1364">LoopedElemToLoc::dim</a></div><div class="ttdeci">int dim</div><div class="ttdef"><b>Definition</b> utils.h:198</div></div>
<div class="ttc" id="astructcomplex64__t_html"><div class="ttname"><a href="structcomplex64__t.html">complex64_t</a></div><div class="ttdef"><b>Definition</b> complex.h:20</div></div>
<div class="ttc" id="astructcomplex64__t_html_a94037c0cf8451aaff7cb4d154a8426de"><div class="ttname"><a href="structcomplex64__t.html#a94037c0cf8451aaff7cb4d154a8426de">complex64_t::imag</a></div><div class="ttdeci">float imag</div><div class="ttdef"><b>Definition</b> complex.h:22</div></div>
@ -665,7 +665,7 @@ $(function(){initNavTree('backend_2metal_2kernels_2utils_8h_source.html',''); in
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/utils.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -154,7 +154,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/utils.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -212,7 +212,7 @@ $(function(){initNavTree('backend_2metal_2utils_8h_source.html',''); initResizab
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2utils_8h.html">utils.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

566
docs/build/html/base__simd_8h.html vendored Normal file
View File

@ -0,0 +1,566 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/base_simd.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('base__simd_8h.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">base_simd.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
</div>
<p><a href="base__simd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html">mlx::core::simd::Simd&lt; T, 1 &gt;</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>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx.html">mlx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><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>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</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="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a122d6a2fa4dcfe78b221e52155419124" id="r_a122d6a2fa4dcfe78b221e52155419124"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(name, op)</td></tr>
<tr class="separator:a122d6a2fa4dcfe78b221e52155419124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d01fad7230543d56f4facf17dcc4047" id="r_a1d01fad7230543d56f4facf17dcc4047"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(OP)</td></tr>
<tr class="separator:a1d01fad7230543d56f4facf17dcc4047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5153f51cdd18d56d1de24b5da9f4366" id="r_af5153f51cdd18d56d1de24b5da9f4366"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(OP)</td></tr>
<tr class="separator:af5153f51cdd18d56d1de24b5da9f4366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0adf6d25084019eff671abc59031573e" id="r_a0adf6d25084019eff671abc59031573e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(name, type)</td></tr>
<tr class="separator:a0adf6d25084019eff671abc59031573e"><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:a4041676517d96870293e5448c7e2b5a4" id="r_a4041676517d96870293e5448c7e2b5a4"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:a4041676517d96870293e5448c7e2b5a4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a> (const T *x)</td></tr>
<tr class="separator:a4041676517d96870293e5448c7e2b5a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa2236afddfdec312eb7e27b89a5316a" id="r_afa2236afddfdec312eb7e27b89a5316a"><td class="memTemplParams" colspan="2">template&lt;typename T, int N&gt; </td></tr>
<tr class="memitem:afa2236afddfdec312eb7e27b89a5316a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a> (T *dst, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, <a class="el" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; x)</td></tr>
<tr class="separator:afa2236afddfdec312eb7e27b89a5316a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a797196eccc3690aac5c45e5f9c804ceb" id="r_a797196eccc3690aac5c45e5f9c804ceb"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a797196eccc3690aac5c45e5f9c804ceb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a797196eccc3690aac5c45e5f9c804ceb">mlx::core::simd::rint</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a797196eccc3690aac5c45e5f9c804ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74ac0fd799967b0f303bfd26fc6a17cf" id="r_a74ac0fd799967b0f303bfd26fc6a17cf"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a74ac0fd799967b0f303bfd26fc6a17cf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a74ac0fd799967b0f303bfd26fc6a17cf">mlx::core::simd::rsqrt</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a74ac0fd799967b0f303bfd26fc6a17cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc915aed256295475ac88fde3a736f1f" id="r_afc915aed256295475ac88fde3a736f1f"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:afc915aed256295475ac88fde3a736f1f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#afc915aed256295475ac88fde3a736f1f">mlx::core::simd::recip</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:afc915aed256295475ac88fde3a736f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70563bcd6c28802d11199812ffef38c8" id="r_a70563bcd6c28802d11199812ffef38c8"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a70563bcd6c28802d11199812ffef38c8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a70563bcd6c28802d11199812ffef38c8">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a70563bcd6c28802d11199812ffef38c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa6ce61de4d80a4b7e9b2ab7454fff4" id="r_afaa6ce61de4d80a4b7e9b2ab7454fff4"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:afaa6ce61de4d80a4b7e9b2ab7454fff4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#afaa6ce61de4d80a4b7e9b2ab7454fff4">mlx::core::simd::operator!</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:afaa6ce61de4d80a4b7e9b2ab7454fff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1958f026f26f313d17155ac87ea6eca3" id="r_a1958f026f26f313d17155ac87ea6eca3"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a1958f026f26f313d17155ac87ea6eca3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1958f026f26f313d17155ac87ea6eca3">mlx::core::simd::abs</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a1958f026f26f313d17155ac87ea6eca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d4f9d08d1902e3d62c6f63d39329dbd" id="r_a3d4f9d08d1902e3d62c6f63d39329dbd"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a3d4f9d08d1902e3d62c6f63d39329dbd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a3d4f9d08d1902e3d62c6f63d39329dbd">mlx::core::simd::acos</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a3d4f9d08d1902e3d62c6f63d39329dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51071c8104494b5bd8097990da3bf943" id="r_a51071c8104494b5bd8097990da3bf943"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a51071c8104494b5bd8097990da3bf943"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a51071c8104494b5bd8097990da3bf943">mlx::core::simd::acosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a51071c8104494b5bd8097990da3bf943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75349994f899aecb68553c2247580163" id="r_a75349994f899aecb68553c2247580163"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a75349994f899aecb68553c2247580163"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a75349994f899aecb68553c2247580163">mlx::core::simd::asin</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a75349994f899aecb68553c2247580163"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9323e370f6740651ebfd51367985d0e2" id="r_a9323e370f6740651ebfd51367985d0e2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a9323e370f6740651ebfd51367985d0e2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9323e370f6740651ebfd51367985d0e2">mlx::core::simd::asinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a9323e370f6740651ebfd51367985d0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a421845a6f68f88c58f520d2c1fa15914" id="r_a421845a6f68f88c58f520d2c1fa15914"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a421845a6f68f88c58f520d2c1fa15914"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a421845a6f68f88c58f520d2c1fa15914">mlx::core::simd::atan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a421845a6f68f88c58f520d2c1fa15914"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ebae2e6cce1889513f15be3adb265ea" id="r_a5ebae2e6cce1889513f15be3adb265ea"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a5ebae2e6cce1889513f15be3adb265ea"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a5ebae2e6cce1889513f15be3adb265ea">mlx::core::simd::atanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a5ebae2e6cce1889513f15be3adb265ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e54bd4ceb51ec41b0f95ebabe558713" id="r_a4e54bd4ceb51ec41b0f95ebabe558713"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a4e54bd4ceb51ec41b0f95ebabe558713"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713">mlx::core::simd::ceil</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a4e54bd4ceb51ec41b0f95ebabe558713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a660b79a51fb439f4aba91e2aea276300" id="r_a660b79a51fb439f4aba91e2aea276300"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a660b79a51fb439f4aba91e2aea276300"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a660b79a51fb439f4aba91e2aea276300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1265896d855818d20f2de2a9ebb684a" id="r_ae1265896d855818d20f2de2a9ebb684a"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ae1265896d855818d20f2de2a9ebb684a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae1265896d855818d20f2de2a9ebb684a">mlx::core::simd::cosh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:ae1265896d855818d20f2de2a9ebb684a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f73d1dac82177e0aeadaeda349c4f96" id="r_a8f73d1dac82177e0aeadaeda349c4f96"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a8f73d1dac82177e0aeadaeda349c4f96"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8f73d1dac82177e0aeadaeda349c4f96">mlx::core::simd::expm1</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a8f73d1dac82177e0aeadaeda349c4f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa396efa6e9c94f4ac1f8381d5e07f069" id="r_aa396efa6e9c94f4ac1f8381d5e07f069"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:aa396efa6e9c94f4ac1f8381d5e07f069"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa396efa6e9c94f4ac1f8381d5e07f069">mlx::core::simd::floor</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:aa396efa6e9c94f4ac1f8381d5e07f069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd09d3f5989558ce5156549a94d0fb04" id="r_abd09d3f5989558ce5156549a94d0fb04"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:abd09d3f5989558ce5156549a94d0fb04"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#abd09d3f5989558ce5156549a94d0fb04">mlx::core::simd::log</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:abd09d3f5989558ce5156549a94d0fb04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9eafa15692dec783860ddae3dd8c072" id="r_af9eafa15692dec783860ddae3dd8c072"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:af9eafa15692dec783860ddae3dd8c072"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#af9eafa15692dec783860ddae3dd8c072">mlx::core::simd::log2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:af9eafa15692dec783860ddae3dd8c072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf754ade6cc1dd0e0bae0e31c7b513a2" id="r_adf754ade6cc1dd0e0bae0e31c7b513a2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:adf754ade6cc1dd0e0bae0e31c7b513a2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#adf754ade6cc1dd0e0bae0e31c7b513a2">mlx::core::simd::log10</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:adf754ade6cc1dd0e0bae0e31c7b513a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92fcc8037ddb767bff517814ab55c259" id="r_a92fcc8037ddb767bff517814ab55c259"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a92fcc8037ddb767bff517814ab55c259"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a92fcc8037ddb767bff517814ab55c259">mlx::core::simd::log1p</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a92fcc8037ddb767bff517814ab55c259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40879bf874309c0a5abef783aea2057d" id="r_a40879bf874309c0a5abef783aea2057d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a40879bf874309c0a5abef783aea2057d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a40879bf874309c0a5abef783aea2057d">mlx::core::simd::sinh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a40879bf874309c0a5abef783aea2057d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ba6c75c0821db3e9ac525a89b3ac859" id="r_a2ba6c75c0821db3e9ac525a89b3ac859"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a2ba6c75c0821db3e9ac525a89b3ac859"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859">mlx::core::simd::sqrt</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a2ba6c75c0821db3e9ac525a89b3ac859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5abc381a85fe8b0e9cb472f874704652" id="r_a5abc381a85fe8b0e9cb472f874704652"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a5abc381a85fe8b0e9cb472f874704652"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a5abc381a85fe8b0e9cb472f874704652">mlx::core::simd::tan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:a5abc381a85fe8b0e9cb472f874704652"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab80a7db8d99e3f4032e761c60216027d" id="r_ab80a7db8d99e3f4032e761c60216027d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ab80a7db8d99e3f4032e761c60216027d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d">mlx::core::simd::tanh</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:ab80a7db8d99e3f4032e761c60216027d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf822b7626bbab6a495552aea3457b5" id="r_acdf822b7626bbab6a495552aea3457b5"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:acdf822b7626bbab6a495552aea3457b5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(std::real(in.value)), 1 &gt;</td></tr>
<tr class="separator:acdf822b7626bbab6a495552aea3457b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c69b04852ccba242f1348fda17ca20" id="r_a97c69b04852ccba242f1348fda17ca20"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a97c69b04852ccba242f1348fda17ca20"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(std::imag(in.value)), 1 &gt;</td></tr>
<tr class="separator:a97c69b04852ccba242f1348fda17ca20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1c6c9b8bc7f3cd32ae39fa84975194d" id="r_ac1c6c9b8bc7f3cd32ae39fa84975194d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ac1c6c9b8bc7f3cd32ae39fa84975194d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac1c6c9b8bc7f3cd32ae39fa84975194d">mlx::core::simd::isnan</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; in)</td></tr>
<tr class="separator:ac1c6c9b8bc7f3cd32ae39fa84975194d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27dfc3843dbefbbebed5b7137bacbb59" id="r_a27dfc3843dbefbbebed5b7137bacbb59"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a27dfc3843dbefbbebed5b7137bacbb59"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59">mlx::core::simd::operator+</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value+b.value), 1 &gt;</td></tr>
<tr class="separator:a27dfc3843dbefbbebed5b7137bacbb59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78806bf6a3be64b44e9a1f04bad3862" id="r_aa78806bf6a3be64b44e9a1f04bad3862"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:aa78806bf6a3be64b44e9a1f04bad3862"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa78806bf6a3be64b44e9a1f04bad3862">mlx::core::simd::operator+</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a+b.value), 1 &gt;</td></tr>
<tr class="separator:aa78806bf6a3be64b44e9a1f04bad3862"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98b77f1ca24bff373f48ef62f0013a02" id="r_a98b77f1ca24bff373f48ef62f0013a02"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a98b77f1ca24bff373f48ef62f0013a02"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a98b77f1ca24bff373f48ef62f0013a02">mlx::core::simd::operator+</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value+b), 1 &gt;</td></tr>
<tr class="separator:a98b77f1ca24bff373f48ef62f0013a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1f7f553d3a9176a70404a29cad06619" id="r_ab1f7f553d3a9176a70404a29cad06619"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ab1f7f553d3a9176a70404a29cad06619"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab1f7f553d3a9176a70404a29cad06619">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value - b.value), 1 &gt;</td></tr>
<tr class="separator:ab1f7f553d3a9176a70404a29cad06619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa73282cb05b65b931b97ce35c46bae20" id="r_aa73282cb05b65b931b97ce35c46bae20"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:aa73282cb05b65b931b97ce35c46bae20"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aa73282cb05b65b931b97ce35c46bae20">mlx::core::simd::operator-</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a - b.value), 1 &gt;</td></tr>
<tr class="separator:aa73282cb05b65b931b97ce35c46bae20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab35a129d6e31b86c06b61252c7b26d4e" id="r_ab35a129d6e31b86c06b61252c7b26d4e"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ab35a129d6e31b86c06b61252c7b26d4e"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab35a129d6e31b86c06b61252c7b26d4e">mlx::core::simd::operator-</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value - b), 1 &gt;</td></tr>
<tr class="separator:ab35a129d6e31b86c06b61252c7b26d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6a73491bcb185cd91ae4db6b0f21e49" id="r_ab6a73491bcb185cd91ae4db6b0f21e49"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ab6a73491bcb185cd91ae4db6b0f21e49"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab6a73491bcb185cd91ae4db6b0f21e49">mlx::core::simd::operator*</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value *b.value), 1 &gt;</td></tr>
<tr class="separator:ab6a73491bcb185cd91ae4db6b0f21e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4030444ea38ce1529a8cbb8c183a28bd" id="r_a4030444ea38ce1529a8cbb8c183a28bd"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a4030444ea38ce1529a8cbb8c183a28bd"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4030444ea38ce1529a8cbb8c183a28bd">mlx::core::simd::operator*</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a *b.value), 1 &gt;</td></tr>
<tr class="separator:a4030444ea38ce1529a8cbb8c183a28bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd5ac48dc7895f06daf55f0a7e0667fb" id="r_acd5ac48dc7895f06daf55f0a7e0667fb"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:acd5ac48dc7895f06daf55f0a7e0667fb"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acd5ac48dc7895f06daf55f0a7e0667fb">mlx::core::simd::operator*</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value *b), 1 &gt;</td></tr>
<tr class="separator:acd5ac48dc7895f06daf55f0a7e0667fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d45c3b97cecfff86a2e43ae1f7fa185" id="r_a1d45c3b97cecfff86a2e43ae1f7fa185"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a1d45c3b97cecfff86a2e43ae1f7fa185"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1d45c3b97cecfff86a2e43ae1f7fa185">mlx::core::simd::operator/</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value/b.value), 1 &gt;</td></tr>
<tr class="separator:a1d45c3b97cecfff86a2e43ae1f7fa185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89be64949908f19dd42aa7e38b320b0c" id="r_a89be64949908f19dd42aa7e38b320b0c"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a89be64949908f19dd42aa7e38b320b0c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a89be64949908f19dd42aa7e38b320b0c">mlx::core::simd::operator/</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a/b.value), 1 &gt;</td></tr>
<tr class="separator:a89be64949908f19dd42aa7e38b320b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c61bd3ac3ec5d8d2da65b45d59f543e" id="r_a1c61bd3ac3ec5d8d2da65b45d59f543e"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a1c61bd3ac3ec5d8d2da65b45d59f543e"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1c61bd3ac3ec5d8d2da65b45d59f543e">mlx::core::simd::operator/</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value/b), 1 &gt;</td></tr>
<tr class="separator:a1c61bd3ac3ec5d8d2da65b45d59f543e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33232e2342d5a3e542c9428924a25830" id="r_a33232e2342d5a3e542c9428924a25830"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a33232e2342d5a3e542c9428924a25830"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a33232e2342d5a3e542c9428924a25830">mlx::core::simd::operator&lt;&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value&lt;&lt; b.value), 1 &gt;</td></tr>
<tr class="separator:a33232e2342d5a3e542c9428924a25830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50044315dc365f026830416f6b615c77" id="r_a50044315dc365f026830416f6b615c77"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a50044315dc365f026830416f6b615c77"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a50044315dc365f026830416f6b615c77">mlx::core::simd::operator&lt;&lt;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a&lt;&lt; b.value), 1 &gt;</td></tr>
<tr class="separator:a50044315dc365f026830416f6b615c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68e7b952915e629d246d1ffac98b54ce" id="r_a68e7b952915e629d246d1ffac98b54ce"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a68e7b952915e629d246d1ffac98b54ce"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a68e7b952915e629d246d1ffac98b54ce">mlx::core::simd::operator&lt;&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value&lt;&lt; b), 1 &gt;</td></tr>
<tr class="separator:a68e7b952915e629d246d1ffac98b54ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1108d186d57c2010c743d3f9297befc7" id="r_a1108d186d57c2010c743d3f9297befc7"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a1108d186d57c2010c743d3f9297befc7"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1108d186d57c2010c743d3f9297befc7">mlx::core::simd::operator&gt;&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &gt; &gt; b.value), 1 &gt;</td></tr>
<tr class="separator:a1108d186d57c2010c743d3f9297befc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ac36abfb7dffc7ad24b4d0c295452e5" id="r_a9ac36abfb7dffc7ad24b4d0c295452e5"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a9ac36abfb7dffc7ad24b4d0c295452e5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9ac36abfb7dffc7ad24b4d0c295452e5">mlx::core::simd::operator&gt;&gt;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a &gt; &gt; b.value), 1 &gt;</td></tr>
<tr class="separator:a9ac36abfb7dffc7ad24b4d0c295452e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bf8c887eb6943563ceb1e603d1325b1" id="r_a4bf8c887eb6943563ceb1e603d1325b1"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a4bf8c887eb6943563ceb1e603d1325b1"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4bf8c887eb6943563ceb1e603d1325b1">mlx::core::simd::operator&gt;&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &gt; &gt; b), 1 &gt;</td></tr>
<tr class="separator:a4bf8c887eb6943563ceb1e603d1325b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60805b5f57ddbbf74f700b54cd3fc4f8" id="r_a60805b5f57ddbbf74f700b54cd3fc4f8"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a60805b5f57ddbbf74f700b54cd3fc4f8"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a60805b5f57ddbbf74f700b54cd3fc4f8">mlx::core::simd::operator|</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value|b.value), 1 &gt;</td></tr>
<tr class="separator:a60805b5f57ddbbf74f700b54cd3fc4f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495d15a18ee4a6dda22e37e8dc02e45b" id="r_a495d15a18ee4a6dda22e37e8dc02e45b"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a495d15a18ee4a6dda22e37e8dc02e45b"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a495d15a18ee4a6dda22e37e8dc02e45b">mlx::core::simd::operator|</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a|b.value), 1 &gt;</td></tr>
<tr class="separator:a495d15a18ee4a6dda22e37e8dc02e45b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6449faa1666afe1186d55b61bb3e5b5a" id="r_a6449faa1666afe1186d55b61bb3e5b5a"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a6449faa1666afe1186d55b61bb3e5b5a"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a6449faa1666afe1186d55b61bb3e5b5a">mlx::core::simd::operator|</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value|b), 1 &gt;</td></tr>
<tr class="separator:a6449faa1666afe1186d55b61bb3e5b5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a369178519e0e91fa936c0fd4aa9ee109" id="r_a369178519e0e91fa936c0fd4aa9ee109"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a369178519e0e91fa936c0fd4aa9ee109"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a369178519e0e91fa936c0fd4aa9ee109">mlx::core::simd::operator^</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value ^ b.value), 1 &gt;</td></tr>
<tr class="separator:a369178519e0e91fa936c0fd4aa9ee109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b877b5eb7044d9b2a42a9af4af21f01" id="r_a5b877b5eb7044d9b2a42a9af4af21f01"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a5b877b5eb7044d9b2a42a9af4af21f01"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a5b877b5eb7044d9b2a42a9af4af21f01">mlx::core::simd::operator^</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a ^ b.value), 1 &gt;</td></tr>
<tr class="separator:a5b877b5eb7044d9b2a42a9af4af21f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16fa3c809e46b5cae3e8abfaf98199a4" id="r_a16fa3c809e46b5cae3e8abfaf98199a4"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a16fa3c809e46b5cae3e8abfaf98199a4"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a16fa3c809e46b5cae3e8abfaf98199a4">mlx::core::simd::operator^</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value ^ b), 1 &gt;</td></tr>
<tr class="separator:a16fa3c809e46b5cae3e8abfaf98199a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c42ac1dc74f6c0bb934dfa45986875b" id="r_a3c42ac1dc74f6c0bb934dfa45986875b"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a3c42ac1dc74f6c0bb934dfa45986875b"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a3c42ac1dc74f6c0bb934dfa45986875b">mlx::core::simd::operator&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &amp;b.value), 1 &gt;</td></tr>
<tr class="separator:a3c42ac1dc74f6c0bb934dfa45986875b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8beb567724ab9735b616afb777b93abd" id="r_a8beb567724ab9735b616afb777b93abd"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a8beb567724ab9735b616afb777b93abd"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8beb567724ab9735b616afb777b93abd">mlx::core::simd::operator&amp;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a &amp;b.value), 1 &gt;</td></tr>
<tr class="separator:a8beb567724ab9735b616afb777b93abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a060a225b6ead483ca93247c9ad8e4d" id="r_a3a060a225b6ead483ca93247c9ad8e4d"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a3a060a225b6ead483ca93247c9ad8e4d"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a3a060a225b6ead483ca93247c9ad8e4d">mlx::core::simd::operator&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &amp;b), 1 &gt;</td></tr>
<tr class="separator:a3a060a225b6ead483ca93247c9ad8e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82676bd32059d1172296f8074a841de6" id="r_a82676bd32059d1172296f8074a841de6"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a82676bd32059d1172296f8074a841de6"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a82676bd32059d1172296f8074a841de6">mlx::core::simd::operator&amp;&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &amp;&amp;b.value), 1 &gt;</td></tr>
<tr class="separator:a82676bd32059d1172296f8074a841de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af97917ef704103c6ea1d0e44f22ec0d3" id="r_af97917ef704103c6ea1d0e44f22ec0d3"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:af97917ef704103c6ea1d0e44f22ec0d3"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#af97917ef704103c6ea1d0e44f22ec0d3">mlx::core::simd::operator&amp;&amp;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a &amp;&amp;b.value), 1 &gt;</td></tr>
<tr class="separator:af97917ef704103c6ea1d0e44f22ec0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eca7cf07b2a238307459c28204319fb" id="r_a1eca7cf07b2a238307459c28204319fb"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a1eca7cf07b2a238307459c28204319fb"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a1eca7cf07b2a238307459c28204319fb">mlx::core::simd::operator&amp;&amp;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value &amp;&amp;b), 1 &gt;</td></tr>
<tr class="separator:a1eca7cf07b2a238307459c28204319fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a1c3be1c37d41e450469f2e98cd9dde" id="r_a7a1c3be1c37d41e450469f2e98cd9dde"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a7a1c3be1c37d41e450469f2e98cd9dde"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde">mlx::core::simd::operator||</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value||b.value), 1 &gt;</td></tr>
<tr class="separator:a7a1c3be1c37d41e450469f2e98cd9dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c8bd67982681ecd53cd8d739be3a5a9" id="r_a0c8bd67982681ecd53cd8d739be3a5a9"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a0c8bd67982681ecd53cd8d739be3a5a9"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a0c8bd67982681ecd53cd8d739be3a5a9">mlx::core::simd::operator||</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a||b.value), 1 &gt;</td></tr>
<tr class="separator:a0c8bd67982681ecd53cd8d739be3a5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad2d440fbb9e5478b5ed24400a859942" id="r_aad2d440fbb9e5478b5ed24400a859942"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:aad2d440fbb9e5478b5ed24400a859942"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aad2d440fbb9e5478b5ed24400a859942">mlx::core::simd::operator||</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b) -&gt; <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; decltype(a.value||b), 1 &gt;</td></tr>
<tr class="separator:aad2d440fbb9e5478b5ed24400a859942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54c7f2f2b995eb767462b1228982967f" id="r_a54c7f2f2b995eb767462b1228982967f"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a54c7f2f2b995eb767462b1228982967f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a54c7f2f2b995eb767462b1228982967f">mlx::core::simd::remainder</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; a_, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; b_)</td></tr>
<tr class="separator:a54c7f2f2b995eb767462b1228982967f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab54ff0f073be504e8428912f8e21effd" id="r_ab54ff0f073be504e8428912f8e21effd"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ab54ff0f073be504e8428912f8e21effd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ab54ff0f073be504e8428912f8e21effd">mlx::core::simd::maximum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; a_, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; b_)</td></tr>
<tr class="separator:ab54ff0f073be504e8428912f8e21effd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac836568622a3e5957c275e115e2fcaf3" id="r_ac836568622a3e5957c275e115e2fcaf3"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ac836568622a3e5957c275e115e2fcaf3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac836568622a3e5957c275e115e2fcaf3">mlx::core::simd::minimum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; a_, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; b_)</td></tr>
<tr class="separator:ac836568622a3e5957c275e115e2fcaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe3d50bc4a11061898aa57377fa9536d" id="r_afe3d50bc4a11061898aa57377fa9536d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:afe3d50bc4a11061898aa57377fa9536d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d">mlx::core::simd::pow</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; b)</td></tr>
<tr class="separator:afe3d50bc4a11061898aa57377fa9536d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5e8e8230c7d7af8201a3aaa7f491a2d" id="r_af5e8e8230c7d7af8201a3aaa7f491a2d"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:af5e8e8230c7d7af8201a3aaa7f491a2d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#af5e8e8230c7d7af8201a3aaa7f491a2d">mlx::core::simd::atan2</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; b)</td></tr>
<tr class="separator:af5e8e8230c7d7af8201a3aaa7f491a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8b67f9ced9c7f3cb472b9c3df817f08" id="r_ad8b67f9ced9c7f3cb472b9c3df817f08"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ad8b67f9ced9c7f3cb472b9c3df817f08"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ad8b67f9ced9c7f3cb472b9c3df817f08">mlx::core::simd::operator&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:ad8b67f9ced9c7f3cb472b9c3df817f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4113a94fb8dcd0d88f14ec9d82089508" id="r_a4113a94fb8dcd0d88f14ec9d82089508"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a4113a94fb8dcd0d88f14ec9d82089508"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4113a94fb8dcd0d88f14ec9d82089508">mlx::core::simd::operator&gt;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a4113a94fb8dcd0d88f14ec9d82089508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac971bfa5c7ec8abc432eab5f3c5646aa" id="r_ac971bfa5c7ec8abc432eab5f3c5646aa"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ac971bfa5c7ec8abc432eab5f3c5646aa"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac971bfa5c7ec8abc432eab5f3c5646aa">mlx::core::simd::operator&gt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:ac971bfa5c7ec8abc432eab5f3c5646aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b59272b0760326844fffe20db9b3e2" id="r_a23b59272b0760326844fffe20db9b3e2"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a23b59272b0760326844fffe20db9b3e2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a23b59272b0760326844fffe20db9b3e2">mlx::core::simd::operator&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a23b59272b0760326844fffe20db9b3e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01259c9188e6ecd48979cdc2fd766372" id="r_a01259c9188e6ecd48979cdc2fd766372"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a01259c9188e6ecd48979cdc2fd766372"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a01259c9188e6ecd48979cdc2fd766372">mlx::core::simd::operator&lt;</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a01259c9188e6ecd48979cdc2fd766372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf35d81032bb9043804fd1de43540f60" id="r_acf35d81032bb9043804fd1de43540f60"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:acf35d81032bb9043804fd1de43540f60"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#acf35d81032bb9043804fd1de43540f60">mlx::core::simd::operator&lt;</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:acf35d81032bb9043804fd1de43540f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a530ac8728e4d7e7be2482d5b2467906c" id="r_a530ac8728e4d7e7be2482d5b2467906c"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a530ac8728e4d7e7be2482d5b2467906c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a530ac8728e4d7e7be2482d5b2467906c">mlx::core::simd::operator&gt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a530ac8728e4d7e7be2482d5b2467906c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7f3848b48c8e23c71c85fcc9909b933" id="r_ac7f3848b48c8e23c71c85fcc9909b933"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ac7f3848b48c8e23c71c85fcc9909b933"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac7f3848b48c8e23c71c85fcc9909b933">mlx::core::simd::operator&gt;=</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:ac7f3848b48c8e23c71c85fcc9909b933"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a034d7b57cb3c6ca711c573515327d1a8" id="r_a034d7b57cb3c6ca711c573515327d1a8"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a034d7b57cb3c6ca711c573515327d1a8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a034d7b57cb3c6ca711c573515327d1a8">mlx::core::simd::operator&gt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:a034d7b57cb3c6ca711c573515327d1a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec6783f79ca181d6782a810ffb267482" id="r_aec6783f79ca181d6782a810ffb267482"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:aec6783f79ca181d6782a810ffb267482"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#aec6783f79ca181d6782a810ffb267482">mlx::core::simd::operator&lt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:aec6783f79ca181d6782a810ffb267482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05240b8fd6f54632b676d4b66449f799" id="r_a05240b8fd6f54632b676d4b66449f799"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a05240b8fd6f54632b676d4b66449f799"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a05240b8fd6f54632b676d4b66449f799">mlx::core::simd::operator&lt;=</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a05240b8fd6f54632b676d4b66449f799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a914e821c358e05dfe8d0208888646793" id="r_a914e821c358e05dfe8d0208888646793"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a914e821c358e05dfe8d0208888646793"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a914e821c358e05dfe8d0208888646793">mlx::core::simd::operator&lt;=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:a914e821c358e05dfe8d0208888646793"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7928482ed5d25932be80413c7239125c" id="r_a7928482ed5d25932be80413c7239125c"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a7928482ed5d25932be80413c7239125c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7928482ed5d25932be80413c7239125c">mlx::core::simd::operator==</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a7928482ed5d25932be80413c7239125c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51de2acf3dcd55c7c52e3ce7ed6ed9d7" id="r_a51de2acf3dcd55c7c52e3ce7ed6ed9d7"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a51de2acf3dcd55c7c52e3ce7ed6ed9d7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a51de2acf3dcd55c7c52e3ce7ed6ed9d7">mlx::core::simd::operator==</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a51de2acf3dcd55c7c52e3ce7ed6ed9d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4877ae5406d081680b785a86ad656e03" id="r_a4877ae5406d081680b785a86ad656e03"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a4877ae5406d081680b785a86ad656e03"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4877ae5406d081680b785a86ad656e03">mlx::core::simd::operator==</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:a4877ae5406d081680b785a86ad656e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a757838b9d56e132e797a381d3bb0dc86" id="r_a757838b9d56e132e797a381d3bb0dc86"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a757838b9d56e132e797a381d3bb0dc86"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a757838b9d56e132e797a381d3bb0dc86">mlx::core::simd::operator!=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:a757838b9d56e132e797a381d3bb0dc86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8ca6615d51866d876b5efb3425600ed" id="r_ae8ca6615d51866d876b5efb3425600ed"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:ae8ca6615d51866d876b5efb3425600ed"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae8ca6615d51866d876b5efb3425600ed">mlx::core::simd::operator!=</a> (T1 a, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T2, 1 &gt; b)</td></tr>
<tr class="separator:ae8ca6615d51866d876b5efb3425600ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f1cebaff9cb88df59b5ec7557b5d167" id="r_a7f1cebaff9cb88df59b5ec7557b5d167"><td class="memTemplParams" colspan="2">template&lt;typename T1, typename T2&gt; </td></tr>
<tr class="memitem:a7f1cebaff9cb88df59b5ec7557b5d167"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; bool, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a7f1cebaff9cb88df59b5ec7557b5d167">mlx::core::simd::operator!=</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T1, 1 &gt; a, T2 b)</td></tr>
<tr class="separator:a7f1cebaff9cb88df59b5ec7557b5d167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e3e7b35d564c70de8fa0b6150570ed8" id="r_a9e3e7b35d564c70de8fa0b6150570ed8"><td class="memTemplParams" colspan="2">template&lt;typename MaskT, typename T&gt; </td></tr>
<tr class="memitem:a9e3e7b35d564c70de8fa0b6150570ed8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a9e3e7b35d564c70de8fa0b6150570ed8">mlx::core::simd::select</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; MaskT, 1 &gt; mask, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; y)</td></tr>
<tr class="separator:a9e3e7b35d564c70de8fa0b6150570ed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567c06bf988af03988478679055a6c45" id="r_a567c06bf988af03988478679055a6c45"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a567c06bf988af03988478679055a6c45"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a567c06bf988af03988478679055a6c45">mlx::core::simd::clamp</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; v, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; <a class="el" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; <a class="el" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>)</td></tr>
<tr class="separator:a567c06bf988af03988478679055a6c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aa81ebff4c26f21cae2253d885fd87a" id="r_a8aa81ebff4c26f21cae2253d885fd87a"><td class="memTemplParams" colspan="2">template&lt;typename T, typename U&gt; </td></tr>
<tr class="memitem:a8aa81ebff4c26f21cae2253d885fd87a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a8aa81ebff4c26f21cae2253d885fd87a">mlx::core::simd::fma</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x, <a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; y, U z)</td></tr>
<tr class="separator:a8aa81ebff4c26f21cae2253d885fd87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a312ecd0ae1c38d32147cee71fd8539d7" id="r_a312ecd0ae1c38d32147cee71fd8539d7"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a312ecd0ae1c38d32147cee71fd8539d7"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a312ecd0ae1c38d32147cee71fd8539d7">mlx::core::simd::max</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:a312ecd0ae1c38d32147cee71fd8539d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96db878d780a8da6abad19ac772d08ca" id="r_a96db878d780a8da6abad19ac772d08ca"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a96db878d780a8da6abad19ac772d08ca"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a96db878d780a8da6abad19ac772d08ca">mlx::core::simd::min</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:a96db878d780a8da6abad19ac772d08ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96ce7d90b3b8b6dddab36ef5b49fffc2" id="r_a96ce7d90b3b8b6dddab36ef5b49fffc2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a96ce7d90b3b8b6dddab36ef5b49fffc2"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a96ce7d90b3b8b6dddab36ef5b49fffc2">mlx::core::simd::sum</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:a96ce7d90b3b8b6dddab36ef5b49fffc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac27cdc630e86b25ad607ca409de2b274" id="r_ac27cdc630e86b25ad607ca409de2b274"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ac27cdc630e86b25ad607ca409de2b274"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274">mlx::core::simd::prod</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:ac27cdc630e86b25ad607ca409de2b274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3b138b4bbcee0ca70b58a3e2ebd818c" id="r_ae3b138b4bbcee0ca70b58a3e2ebd818c"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ae3b138b4bbcee0ca70b58a3e2ebd818c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ae3b138b4bbcee0ca70b58a3e2ebd818c">mlx::core::simd::any</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:ae3b138b4bbcee0ca70b58a3e2ebd818c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ba3690489c2bf861e22e1175255438c" id="r_a4ba3690489c2bf861e22e1175255438c"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a4ba3690489c2bf861e22e1175255438c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c">mlx::core::simd::all</a> (<a class="el" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt; T, 1 &gt; x)</td></tr>
<tr class="separator:a4ba3690489c2bf861e22e1175255438c"><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>
<tr class="memitem:ac91bd36c7caafd3c7ff176e7e2f81887" id="r_ac91bd36c7caafd3c7ff176e7e2f81887"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ac91bd36c7caafd3c7ff176e7e2f81887"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a> = 1</td></tr>
<tr class="separator:ac91bd36c7caafd3c7ff176e7e2f81887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64e80f096a8baf99ba8d396414473cc7" id="r_a64e80f096a8baf99ba8d396414473cc7"><td class="memTemplParams" colspan="2">template&lt;typename, typename = void&gt; </td></tr>
<tr class="memitem:a64e80f096a8baf99ba8d396414473cc7"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">mlx::core::simd::is_complex</a> = false</td></tr>
<tr class="separator:a64e80f096a8baf99ba8d396414473cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29fe8445e54a61f6bccc8d50f142ca54" id="r_a29fe8445e54a61f6bccc8d50f142ca54"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a29fe8445e54a61f6bccc8d50f142ca54"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54">mlx::core::simd::is_complex&lt; T, std::void_t&lt; decltype(std::declval&lt; T &gt;().real())&gt; &gt;</a></td></tr>
<tr class="separator:a29fe8445e54a61f6bccc8d50f142ca54"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a1d01fad7230543d56f4facf17dcc4047" name="a1d01fad7230543d56f4facf17dcc4047"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d01fad7230543d56f4facf17dcc4047">&#9670;&#160;</a></span>DEFAULT_BINARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_BINARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>OP</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> <span class="keyword">auto</span> <span class="keyword">operator</span> OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) \</div>
<div class="line"> -&gt;Simd&lt;<span class="keyword">decltype</span>(a.value OP b.value), 1&gt; { \</div>
<div class="line"> <span class="keywordflow">return</span> a.value OP b.value; \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> <span class="keyword">auto</span> <span class="keyword">operator</span> OP(T1 a, Simd&lt;T2, 1&gt; b)-&gt;Simd&lt;<span class="keyword">decltype</span>(a OP b.value), 1&gt; { \</div>
<div class="line"> <span class="keywordflow">return</span> a OP b.value; \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> <span class="keyword">auto</span> <span class="keyword">operator</span> OP(Simd&lt;T1, 1&gt; a, T2 b)-&gt;Simd&lt;<span class="keyword">decltype</span>(a.value OP b), 1&gt; { \</div>
<div class="line"> <span class="keywordflow">return</span> a.value OP b; \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af5153f51cdd18d56d1de24b5da9f4366" name="af5153f51cdd18d56d1de24b5da9f4366"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5153f51cdd18d56d1de24b5da9f4366">&#9670;&#160;</a></span>DEFAULT_COMPARISONS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_COMPARISONS</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>OP</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> Simd&lt;bool, 1&gt; <span class="keyword">operator</span> OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) { \</div>
<div class="line"> <span class="keywordflow">return</span> a.value OP b.value; \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> Simd&lt;bool, 1&gt; <span class="keyword">operator</span> OP(T1 a, Simd&lt;T2, 1&gt; b) { \</div>
<div class="line"> <span class="keywordflow">return</span> a OP b.value; \</div>
<div class="line"> } \</div>
<div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2&gt; \</div>
<div class="line"> Simd&lt;bool, 1&gt; <span class="keyword">operator</span> OP(Simd&lt;T1, 1&gt; a, T2 b) { \</div>
<div class="line"> <span class="keywordflow">return</span> a.value OP b; \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0adf6d25084019eff671abc59031573e" name="a0adf6d25084019eff671abc59031573e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0adf6d25084019eff671abc59031573e">&#9670;&#160;</a></span>DEFAULT_REDUCTION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_REDUCTION</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>type</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; \</div>
<div class="line"> type name(Simd&lt;T, 1&gt; x) { \</div>
<div class="line"> <span class="keywordflow">return</span> x.value; \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a122d6a2fa4dcfe78b221e52155419124" name="a122d6a2fa4dcfe78b221e52155419124"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a122d6a2fa4dcfe78b221e52155419124">&#9670;&#160;</a></span>DEFAULT_UNARY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_UNARY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; \</div>
<div class="line"> Simd&lt;T, 1&gt; name(Simd&lt;T, 1&gt; in) { \</div>
<div class="line"> <span class="keywordflow">return</span> op(in.value); \</div>
<div class="line"> }</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="base__simd_8h.html">base_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

106
docs/build/html/base__simd_8h.js vendored Normal file
View File

@ -0,0 +1,106 @@
var base__simd_8h =
[
[ "mlx::core::simd::Simd< T, 1 >", "structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html", "structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4" ],
[ "DEFAULT_BINARY", "base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047", null ],
[ "DEFAULT_COMPARISONS", "base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366", null ],
[ "DEFAULT_REDUCTION", "base__simd_8h.html#a0adf6d25084019eff671abc59031573e", null ],
[ "DEFAULT_UNARY", "base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124", null ],
[ "mlx::core::simd::abs", "namespacemlx_1_1core_1_1simd.html#a1958f026f26f313d17155ac87ea6eca3", null ],
[ "mlx::core::simd::acos", "namespacemlx_1_1core_1_1simd.html#a3d4f9d08d1902e3d62c6f63d39329dbd", null ],
[ "mlx::core::simd::acosh", "namespacemlx_1_1core_1_1simd.html#a51071c8104494b5bd8097990da3bf943", null ],
[ "mlx::core::simd::all", "namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c", null ],
[ "mlx::core::simd::any", "namespacemlx_1_1core_1_1simd.html#ae3b138b4bbcee0ca70b58a3e2ebd818c", null ],
[ "mlx::core::simd::asin", "namespacemlx_1_1core_1_1simd.html#a75349994f899aecb68553c2247580163", null ],
[ "mlx::core::simd::asinh", "namespacemlx_1_1core_1_1simd.html#a9323e370f6740651ebfd51367985d0e2", null ],
[ "mlx::core::simd::atan", "namespacemlx_1_1core_1_1simd.html#a421845a6f68f88c58f520d2c1fa15914", null ],
[ "mlx::core::simd::atan2", "namespacemlx_1_1core_1_1simd.html#af5e8e8230c7d7af8201a3aaa7f491a2d", null ],
[ "mlx::core::simd::atanh", "namespacemlx_1_1core_1_1simd.html#a5ebae2e6cce1889513f15be3adb265ea", null ],
[ "mlx::core::simd::ceil", "namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713", null ],
[ "mlx::core::simd::clamp", "namespacemlx_1_1core_1_1simd.html#a567c06bf988af03988478679055a6c45", null ],
[ "mlx::core::simd::conj", "namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300", null ],
[ "mlx::core::simd::cosh", "namespacemlx_1_1core_1_1simd.html#ae1265896d855818d20f2de2a9ebb684a", null ],
[ "mlx::core::simd::expm1", "namespacemlx_1_1core_1_1simd.html#a8f73d1dac82177e0aeadaeda349c4f96", null ],
[ "mlx::core::simd::floor", "namespacemlx_1_1core_1_1simd.html#aa396efa6e9c94f4ac1f8381d5e07f069", null ],
[ "mlx::core::simd::fma", "namespacemlx_1_1core_1_1simd.html#a8aa81ebff4c26f21cae2253d885fd87a", null ],
[ "mlx::core::simd::imag", "namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20", null ],
[ "mlx::core::simd::isnan", "namespacemlx_1_1core_1_1simd.html#ac1c6c9b8bc7f3cd32ae39fa84975194d", null ],
[ "mlx::core::simd::load", "namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4", null ],
[ "mlx::core::simd::log", "namespacemlx_1_1core_1_1simd.html#abd09d3f5989558ce5156549a94d0fb04", null ],
[ "mlx::core::simd::log10", "namespacemlx_1_1core_1_1simd.html#adf754ade6cc1dd0e0bae0e31c7b513a2", null ],
[ "mlx::core::simd::log1p", "namespacemlx_1_1core_1_1simd.html#a92fcc8037ddb767bff517814ab55c259", null ],
[ "mlx::core::simd::log2", "namespacemlx_1_1core_1_1simd.html#af9eafa15692dec783860ddae3dd8c072", null ],
[ "mlx::core::simd::max", "namespacemlx_1_1core_1_1simd.html#a312ecd0ae1c38d32147cee71fd8539d7", null ],
[ "mlx::core::simd::maximum", "namespacemlx_1_1core_1_1simd.html#ab54ff0f073be504e8428912f8e21effd", null ],
[ "mlx::core::simd::min", "namespacemlx_1_1core_1_1simd.html#a96db878d780a8da6abad19ac772d08ca", null ],
[ "mlx::core::simd::minimum", "namespacemlx_1_1core_1_1simd.html#ac836568622a3e5957c275e115e2fcaf3", null ],
[ "mlx::core::simd::operator!", "namespacemlx_1_1core_1_1simd.html#afaa6ce61de4d80a4b7e9b2ab7454fff4", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#a757838b9d56e132e797a381d3bb0dc86", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#a7f1cebaff9cb88df59b5ec7557b5d167", null ],
[ "mlx::core::simd::operator!=", "namespacemlx_1_1core_1_1simd.html#ae8ca6615d51866d876b5efb3425600ed", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#a3c42ac1dc74f6c0bb934dfa45986875b", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#a3a060a225b6ead483ca93247c9ad8e4d", null ],
[ "mlx::core::simd::operator&", "namespacemlx_1_1core_1_1simd.html#a8beb567724ab9735b616afb777b93abd", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#a82676bd32059d1172296f8074a841de6", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#a1eca7cf07b2a238307459c28204319fb", null ],
[ "mlx::core::simd::operator&&", "namespacemlx_1_1core_1_1simd.html#af97917ef704103c6ea1d0e44f22ec0d3", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#ab6a73491bcb185cd91ae4db6b0f21e49", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#acd5ac48dc7895f06daf55f0a7e0667fb", null ],
[ "mlx::core::simd::operator*", "namespacemlx_1_1core_1_1simd.html#a4030444ea38ce1529a8cbb8c183a28bd", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#a98b77f1ca24bff373f48ef62f0013a02", null ],
[ "mlx::core::simd::operator+", "namespacemlx_1_1core_1_1simd.html#aa78806bf6a3be64b44e9a1f04bad3862", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#a70563bcd6c28802d11199812ffef38c8", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#ab1f7f553d3a9176a70404a29cad06619", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#ab35a129d6e31b86c06b61252c7b26d4e", null ],
[ "mlx::core::simd::operator-", "namespacemlx_1_1core_1_1simd.html#aa73282cb05b65b931b97ce35c46bae20", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#a1d45c3b97cecfff86a2e43ae1f7fa185", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#a1c61bd3ac3ec5d8d2da65b45d59f543e", null ],
[ "mlx::core::simd::operator/", "namespacemlx_1_1core_1_1simd.html#a89be64949908f19dd42aa7e38b320b0c", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#a23b59272b0760326844fffe20db9b3e2", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#acf35d81032bb9043804fd1de43540f60", null ],
[ "mlx::core::simd::operator<", "namespacemlx_1_1core_1_1simd.html#a01259c9188e6ecd48979cdc2fd766372", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#a33232e2342d5a3e542c9428924a25830", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#a68e7b952915e629d246d1ffac98b54ce", null ],
[ "mlx::core::simd::operator<<", "namespacemlx_1_1core_1_1simd.html#a50044315dc365f026830416f6b615c77", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#aec6783f79ca181d6782a810ffb267482", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#a914e821c358e05dfe8d0208888646793", null ],
[ "mlx::core::simd::operator<=", "namespacemlx_1_1core_1_1simd.html#a05240b8fd6f54632b676d4b66449f799", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a7928482ed5d25932be80413c7239125c", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a4877ae5406d081680b785a86ad656e03", null ],
[ "mlx::core::simd::operator==", "namespacemlx_1_1core_1_1simd.html#a51de2acf3dcd55c7c52e3ce7ed6ed9d7", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#ad8b67f9ced9c7f3cb472b9c3df817f08", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#ac971bfa5c7ec8abc432eab5f3c5646aa", null ],
[ "mlx::core::simd::operator>", "namespacemlx_1_1core_1_1simd.html#a4113a94fb8dcd0d88f14ec9d82089508", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#a530ac8728e4d7e7be2482d5b2467906c", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#a034d7b57cb3c6ca711c573515327d1a8", null ],
[ "mlx::core::simd::operator>=", "namespacemlx_1_1core_1_1simd.html#ac7f3848b48c8e23c71c85fcc9909b933", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#a1108d186d57c2010c743d3f9297befc7", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#a4bf8c887eb6943563ceb1e603d1325b1", null ],
[ "mlx::core::simd::operator>>", "namespacemlx_1_1core_1_1simd.html#a9ac36abfb7dffc7ad24b4d0c295452e5", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a369178519e0e91fa936c0fd4aa9ee109", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a16fa3c809e46b5cae3e8abfaf98199a4", null ],
[ "mlx::core::simd::operator^", "namespacemlx_1_1core_1_1simd.html#a5b877b5eb7044d9b2a42a9af4af21f01", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#a60805b5f57ddbbf74f700b54cd3fc4f8", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#a6449faa1666afe1186d55b61bb3e5b5a", null ],
[ "mlx::core::simd::operator|", "namespacemlx_1_1core_1_1simd.html#a495d15a18ee4a6dda22e37e8dc02e45b", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#aad2d440fbb9e5478b5ed24400a859942", null ],
[ "mlx::core::simd::operator||", "namespacemlx_1_1core_1_1simd.html#a0c8bd67982681ecd53cd8d739be3a5a9", null ],
[ "mlx::core::simd::pow", "namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d", null ],
[ "mlx::core::simd::prod", "namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274", null ],
[ "mlx::core::simd::real", "namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5", null ],
[ "mlx::core::simd::recip", "namespacemlx_1_1core_1_1simd.html#afc915aed256295475ac88fde3a736f1f", null ],
[ "mlx::core::simd::remainder", "namespacemlx_1_1core_1_1simd.html#a54c7f2f2b995eb767462b1228982967f", null ],
[ "mlx::core::simd::rint", "namespacemlx_1_1core_1_1simd.html#a797196eccc3690aac5c45e5f9c804ceb", null ],
[ "mlx::core::simd::rsqrt", "namespacemlx_1_1core_1_1simd.html#a74ac0fd799967b0f303bfd26fc6a17cf", null ],
[ "mlx::core::simd::select", "namespacemlx_1_1core_1_1simd.html#a9e3e7b35d564c70de8fa0b6150570ed8", null ],
[ "mlx::core::simd::sinh", "namespacemlx_1_1core_1_1simd.html#a40879bf874309c0a5abef783aea2057d", null ],
[ "mlx::core::simd::sqrt", "namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859", null ],
[ "mlx::core::simd::store", "namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a", null ],
[ "mlx::core::simd::sum", "namespacemlx_1_1core_1_1simd.html#a96ce7d90b3b8b6dddab36ef5b49fffc2", null ],
[ "mlx::core::simd::tan", "namespacemlx_1_1core_1_1simd.html#a5abc381a85fe8b0e9cb472f874704652", null ],
[ "mlx::core::simd::tanh", "namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d", null ],
[ "mlx::core::simd::is_complex", "namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7", null ],
[ "mlx::core::simd::is_complex< T, std::void_t< decltype(std::declval< T >().real())> >", "namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54", null ],
[ "mlx::core::simd::max_size", "namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887", null ]
];

View File

@ -0,0 +1,476 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/cpu/simd/base_simd.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('base__simd_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">base_simd.h</div></div>
</div><!--header-->
<div class="contents">
<a href="base__simd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;complex&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a> {</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>;</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887"> 13</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">max_size</a> = 1;</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00016" data-start="{" data-end="};">
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html"> 16</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>&lt;T, 1&gt; {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f"> 17</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">size</a> = 1;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df"> 18</a></span> T <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a"> 19</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd</a>() {}</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc"> 21</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">Simd</a>(<a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">Simd&lt;U, 1&gt;</a> v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>) {}</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2"> 23</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">Simd</a>(U v) : <a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">value</a>(v) {}</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>};</div>
</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00027" data-start="{" data-end="}">
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4"> 27</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">load</a>(<span class="keyword">const</span> T* x) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)x;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a"> 32</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">store</a>(T* dst, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a> x) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Maintain invariant that bool is either 0 or 1 as</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// simd comparison ops set all bits in the result to 1</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_same_v&lt;T, bool&gt; &amp;&amp; <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">N</a> &gt; 1) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> x = x &amp; 1;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> *(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, N&gt;</a>*)dst = x;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span> = <span class="keywordtype">void</span>&gt;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7"> 42</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a29fe8445e54a61f6bccc8d50f142ca54"> 45</a></span><span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T, std::void_t&lt;decltype(std::declval&lt;T&gt;</a>().real())&gt;&gt; =</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00049" data-start="{" data-end="}">
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a797196eccc3690aac5c45e5f9c804ceb"> 49</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">rint</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (<a class="code hl_variable" href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">is_complex&lt;T&gt;</a>) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> T{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.real()), std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>.imag())}};</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>{std::rint(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>)};</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a74ac0fd799967b0f303bfd26fc6a17cf"> 59</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">rsqrt</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> T(1.0) / <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>(in);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="}">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afc915aed256295475ac88fde3a736f1f"> 64</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">recip</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> T(1.0) / in;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>}</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="foldopen" id="foldopen00068" data-start="" data-end="">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124"> 68</a></span><span class="preprocessor">#define DEFAULT_UNARY(name, op) \</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor"> Simd&lt;T, 1&gt; name(Simd&lt;T, 1&gt; in) { \</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> return op(in.value); \</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a70563bcd6c28802d11199812ffef38c8"> 74</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>-, std::negate{})</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afaa6ce61de4d80a4b7e9b2ab7454fff4"> 75</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<span class="keyword">operator</span>!, std::logical_not{})</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1958f026f26f313d17155ac87ea6eca3"> 76</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">abs</a>, std::abs)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3d4f9d08d1902e3d62c6f63d39329dbd"> 77</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">acos</a>, std::acos)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a51071c8104494b5bd8097990da3bf943"> 78</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">acosh</a>)</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a75349994f899aecb68553c2247580163"> 79</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">asin</a>)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9323e370f6740651ebfd51367985d0e2"> 80</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">asinh</a>)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a421845a6f68f88c58f520d2c1fa15914"> 81</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">atan</a>)</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5ebae2e6cce1889513f15be3adb265ea"> 82</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">atanh</a>)</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4e54bd4ceb51ec41b0f95ebabe558713"> 83</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">ceil</a>)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300"> 84</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">conj</a>)</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae1265896d855818d20f2de2a9ebb684a"> 85</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">cosh</a>)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8f73d1dac82177e0aeadaeda349c4f96"> 86</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">expm1</a>)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aa396efa6e9c94f4ac1f8381d5e07f069"> 87</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">floor</a>)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#abd09d3f5989558ce5156549a94d0fb04"> 88</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">log</a>)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af9eafa15692dec783860ddae3dd8c072"> 89</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">log2</a>)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#adf754ade6cc1dd0e0bae0e31c7b513a2"> 90</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">log10</a>)</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a92fcc8037ddb767bff517814ab55c259"> 91</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">log1p</a>)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a40879bf874309c0a5abef783aea2057d"> 92</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">sinh</a>)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a2ba6c75c0821db3e9ac525a89b3ac859"> 93</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">sqrt</a>)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a5abc381a85fe8b0e9cb472f874704652"> 94</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">tan</a>)</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab80a7db8d99e3f4032e761c60216027d"> 95</a></span><a class="code hl_define" href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">tanh</a>)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5"> 98</a></span>auto <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;decltype(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">real</a>(in.value)), 1&gt; {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> std::real(in.value);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>}</div>
</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20"> 102</a></span><span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">imag</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) -&gt; <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;<span class="keyword">decltype</span>(std::imag(in.value)), 1&gt; {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> std::imag(in.value);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00106" data-start="{" data-end="}">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac1c6c9b8bc7f3cd32ae39fa84975194d"> 106</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;bool, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">isnan</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> in) {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> std::isnan(in.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>}</div>
</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="foldopen" id="foldopen00110" data-start="" data-end="">
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047"> 110</a></span><span class="preprocessor">#define DEFAULT_BINARY(OP) \</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) \</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor"> -&gt;Simd&lt;decltype(a.value OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> auto operator OP(T1 a, Simd&lt;T2, 1&gt; b)-&gt;Simd&lt;decltype(a OP b.value), 1&gt; { \</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor"> auto operator OP(Simd&lt;T1, 1&gt; a, T2 b)-&gt;Simd&lt;decltype(a.value OP b), 1&gt; { \</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a27dfc3843dbefbbebed5b7137bacbb59"> 125</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(+)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab1f7f553d3a9176a70404a29cad06619"> 126</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(-)</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab6a73491bcb185cd91ae4db6b0f21e49"> 127</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(*)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1d45c3b97cecfff86a2e43ae1f7fa185"> 128</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(/)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a33232e2342d5a3e542c9428924a25830"> 129</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&lt;&lt;)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a1108d186d57c2010c743d3f9297befc7"> 130</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&gt;&gt;)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a60805b5f57ddbbf74f700b54cd3fc4f8"> 131</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(|)</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a369178519e0e91fa936c0fd4aa9ee109"> 132</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(^)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a3c42ac1dc74f6c0bb934dfa45986875b"> 133</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a82676bd32059d1172296f8074a841de6"> 134</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(&amp;&amp;)</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7a1c3be1c37d41e450469f2e98cd9dde"> 135</a></span><a class="code hl_define" href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a>(||)</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>template &lt;typename T&gt;</div>
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a54c7f2f2b995eb767462b1228982967f"> 138</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">remainder</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; b_) {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> T r;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> r = a % b;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> r = std::remainder(a, b);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_signed_v&lt;T&gt;) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (r != 0 &amp;&amp; (r &lt; 0 != b &lt; 0)) {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> r += b;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> }</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> }</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00156" data-start="{" data-end="}">
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ab54ff0f073be504e8428912f8e21effd"> 156</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">maximum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">return</span> (a &gt; b) ? a : b;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>}</div>
</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00168" data-start="{" data-end="}">
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac836568622a3e5957c275e115e2fcaf3"> 168</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">minimum</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a_, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b_) {</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> T a = a_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> T b = b_.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span> (std::isnan(a)) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> a;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> (a &lt; b) ? a : b;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>}</div>
</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#afe3d50bc4a11061898aa57377fa9536d"> 180</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">pow</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> T base = a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> T <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> = b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (!std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> T res = 1;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a>) {</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &amp; 1) {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> res *= base;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">exp</a> &gt;&gt;= 1;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> base *= base;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> }</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>}</div>
</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00199" data-start="{" data-end="}">
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#af5e8e8230c7d7af8201a3aaa7f491a2d"> 199</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">atan2</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> a, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> b) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> std::atan2(a.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, b.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="foldopen" id="foldopen00203" data-start="" data-end="">
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366"> 203</a></span><span class="preprocessor">#define DEFAULT_COMPARISONS(OP) \</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="preprocessor"> return a.value OP b.value; \</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(T1 a, Simd&lt;T2, 1&gt; b) { \</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor"> return a OP b.value; \</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"> } \</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor"> template &lt;typename T1, typename T2&gt; \</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="preprocessor"> Simd&lt;bool, 1&gt; operator OP(Simd&lt;T1, 1&gt; a, T2 b) { \</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor"> return a.value OP b; \</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a23b59272b0760326844fffe20db9b3e2"> 217</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;)</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;)</div>
</div>
<div class="foldopen" id="foldopen00219" data-start="{" data-end="}">
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#aec6783f79ca181d6782a810ffb267482"> 219</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&gt;=)</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(&lt;=)</div>
</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a7928482ed5d25932be80413c7239125c"> 221</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(==)</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a757838b9d56e132e797a381d3bb0dc86"> 222</a></span><a class="code hl_define" href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a>(!=)</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>template &lt;typename MaskT, typename T&gt;</div>
<div class="foldopen" id="foldopen00225" data-start="{" data-end="}">
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a9e3e7b35d564c70de8fa0b6150570ed8"> 225</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">select</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;MaskT, 1&gt; mask, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd</a>&lt;T, 1&gt; y) {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">return</span> mask.value ? x.value : y.value;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span>}</div>
</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00230" data-start="{" data-end="}">
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a567c06bf988af03988478679055a6c45"> 230</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">clamp</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> v, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>) {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">return</span> std::clamp(v.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>.value, <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>.value);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span>}</div>
</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="foldopen" id="foldopen00235" data-start="{" data-end="}">
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a8aa81ebff4c26f21cae2253d885fd87a"> 235</a></span><a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">fma</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> x, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a> y, U z) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> std::fma(x.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, y.<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>, <a class="code hl_struct" href="structmlx_1_1core_1_1simd_1_1_simd.html">Simd&lt;T, 1&gt;</a>(z).<a class="code hl_variable" href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">value</a>);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span>}</div>
</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">// Reductions</span></div>
<div class="foldopen" id="foldopen00240" data-start="" data-end="">
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e"> 240</a></span><span class="preprocessor">#define DEFAULT_REDUCTION(name, type) \</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor"> template &lt;typename T&gt; \</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor"> type name(Simd&lt;T, 1&gt; x) { \</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="preprocessor"> return x.value; \</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a312ecd0ae1c38d32147cee71fd8539d7"> 246</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">max</a>, T)</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96db878d780a8da6abad19ac772d08ca"> 247</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">min</a>, T)</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a96ce7d90b3b8b6dddab36ef5b49fffc2"> 248</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">sum</a>, T)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ac27cdc630e86b25ad607ca409de2b274"> 249</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">prod</a>, T)</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#ae3b138b4bbcee0ca70b58a3e2ebd818c"> 250</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">any</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1simd.html#a4ba3690489c2bf861e22e1175255438c"> 251</a></span><a class="code hl_define" href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a>(<a class="code hl_function" href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">all</a>, <span class="keywordtype">bool</span>)</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span>} <span class="comment">// namespace mlx::core::simd</span></div>
<div class="ttc" id="abase__simd_8h_html_a0adf6d25084019eff671abc59031573e"><div class="ttname"><a href="base__simd_8h.html#a0adf6d25084019eff671abc59031573e">DEFAULT_REDUCTION</a></div><div class="ttdeci">#define DEFAULT_REDUCTION(name, type)</div><div class="ttdef"><b>Definition</b> base_simd.h:240</div></div>
<div class="ttc" id="abase__simd_8h_html_a122d6a2fa4dcfe78b221e52155419124"><div class="ttname"><a href="base__simd_8h.html#a122d6a2fa4dcfe78b221e52155419124">DEFAULT_UNARY</a></div><div class="ttdeci">#define DEFAULT_UNARY(name, op)</div><div class="ttdef"><b>Definition</b> base_simd.h:68</div></div>
<div class="ttc" id="abase__simd_8h_html_a1d01fad7230543d56f4facf17dcc4047"><div class="ttname"><a href="base__simd_8h.html#a1d01fad7230543d56f4facf17dcc4047">DEFAULT_BINARY</a></div><div class="ttdeci">#define DEFAULT_BINARY(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:110</div></div>
<div class="ttc" id="abase__simd_8h_html_af5153f51cdd18d56d1de24b5da9f4366"><div class="ttname"><a href="base__simd_8h.html#af5153f51cdd18d56d1de24b5da9f4366">DEFAULT_COMPARISONS</a></div><div class="ttdeci">#define DEFAULT_COMPARISONS(OP)</div><div class="ttdef"><b>Definition</b> base_simd.h:203</div></div>
<div class="ttc" id="agroup__ops_html_ga2a466024f8061febc0a64be557644cb0"><div class="ttname"><a href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a></div><div class="ttdeci">array std(const array &amp;a, bool keepdims, int ddof=0, StreamOrDevice s={})</div><div class="ttdoc">Computes the standard deviation of the elements of an array.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html">mlx::core::simd</a></div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a05f4422a037c3bef343fb11f71363b65"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a05f4422a037c3bef343fb11f71363b65">mlx::core::simd::isnan</a></div><div class="ttdeci">Simd&lt; bool, N &gt; isnan(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:141</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a09a2f3f2bc999c16babf3d8d90994d6e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a09a2f3f2bc999c16babf3d8d90994d6e">mlx::core::simd::sinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; sinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:41</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a12b1553495a0c99d52472bd2a6626ddb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a12b1553495a0c99d52472bd2a6626ddb">mlx::core::simd::N</a></div><div class="ttdeci">constexpr int N</div><div class="ttdef"><b>Definition</b> neon_fp16_simd.h:9</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a18d330fd2c7360b2890a722232ba35b7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a18d330fd2c7360b2890a722232ba35b7">mlx::core::simd::atanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:34</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a1996e77a8c3c24b1ba706113ed9028c4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a1996e77a8c3c24b1ba706113ed9028c4">mlx::core::simd::minimum</a></div><div class="ttdeci">Simd&lt; T, N &gt; minimum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:210</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a19d535de1fc179cc39ec9643c9863cbc"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a19d535de1fc179cc39ec9643c9863cbc">mlx::core::simd::pow</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; pow(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:54</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a23dba4ee3f0811b41c381733a6e6ff16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a23dba4ee3f0811b41c381733a6e6ff16">mlx::core::simd::atan2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan2(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:52</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a271cedfc48efc69db43813e8c424bf7c"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a271cedfc48efc69db43813e8c424bf7c">mlx::core::simd::prod</a></div><div class="ttdeci">T prod(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:292</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a3cb6ea94836e999c07329b34c501ed85"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a3cb6ea94836e999c07329b34c501ed85">mlx::core::simd::log10</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log10(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:39</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a400d89d040f43d471b306a8e8bdb3974"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a400d89d040f43d471b306a8e8bdb3974">mlx::core::simd::rint</a></div><div class="ttdeci">Simd&lt; T, N &gt; rint(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:127</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4041676517d96870293e5448c7e2b5a4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4041676517d96870293e5448c7e2b5a4">mlx::core::simd::load</a></div><div class="ttdeci">Simd&lt; T, N &gt; load(const T *x)</div><div class="ttdef"><b>Definition</b> base_simd.h:27</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a445ddc4ed928656df64d889942588cfd"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a445ddc4ed928656df64d889942588cfd">mlx::core::simd::tan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f3cc8b2493586e83fd65640df3b60ad"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f3cc8b2493586e83fd65640df3b60ad">mlx::core::simd::abs</a></div><div class="ttdeci">Simd&lt; T, N &gt; abs(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:112</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a4f8a64e7742fcd8f759f723a36a7c826"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a4f8a64e7742fcd8f759f723a36a7c826">mlx::core::simd::acosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:30</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a5109118acb6766855878b9e8a56b156a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a5109118acb6766855878b9e8a56b156a">mlx::core::simd::all</a></div><div class="ttdeci">bool all(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:271</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a53b547b886918dc13d4da88eeb8811d2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a53b547b886918dc13d4da88eeb8811d2">mlx::core::simd::sum</a></div><div class="ttdeci">T sum(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:279</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a64e80f096a8baf99ba8d396414473cc7"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a64e80f096a8baf99ba8d396414473cc7">mlx::core::simd::is_complex</a></div><div class="ttdeci">constexpr bool is_complex</div><div class="ttdef"><b>Definition</b> base_simd.h:42</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a660b79a51fb439f4aba91e2aea276300"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a660b79a51fb439f4aba91e2aea276300">mlx::core::simd::conj</a></div><div class="ttdeci">Simd&lt; T, 1 &gt; conj(Simd&lt; T, 1 &gt; in)</div><div class="ttdef"><b>Definition</b> base_simd.h:84</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a66426c28a4324b9f617b7018d9354ea1"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a66426c28a4324b9f617b7018d9354ea1">mlx::core::simd::log2</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log2(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:38</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a6fcea259041cecfd042d0c4e6afc4b8f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a6fcea259041cecfd042d0c4e6afc4b8f">mlx::core::simd::max</a></div><div class="ttdeci">T max(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:283</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a7f7a298284e71ddbd2ba0bb6d98b0d16"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a7f7a298284e71ddbd2ba0bb6d98b0d16">mlx::core::simd::maximum</a></div><div class="ttdeci">Simd&lt; T, N &gt; maximum(Simd&lt; T, N &gt; a, Simd&lt; T, N &gt; b)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:204</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a835d71dd0bb2f9494a397d9939696ec2"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a835d71dd0bb2f9494a397d9939696ec2">mlx::core::simd::exp</a></div><div class="ttdeci">Simd&lt; T, N &gt; exp(Simd&lt; T, N &gt; in)</div><div class="ttdoc">Compute exp(x) in an optimizer friendly way as follows:</div><div class="ttdef"><b>Definition</b> math.h:28</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8cec82f4fb15bfd31d7554c6c09ceed4"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8cec82f4fb15bfd31d7554c6c09ceed4">mlx::core::simd::log</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:37</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a8e22c484298d9af10b6604c835e52052"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a8e22c484298d9af10b6604c835e52052">mlx::core::simd::floor</a></div><div class="ttdeci">Simd&lt; T, N &gt; floor(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:113</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9407980793ecff5d5eb19c9a2cbda1eb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9407980793ecff5d5eb19c9a2cbda1eb">mlx::core::simd::expm1</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; expm1(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:36</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a97c69b04852ccba242f1348fda17ca20"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a97c69b04852ccba242f1348fda17ca20">mlx::core::simd::imag</a></div><div class="ttdeci">auto imag(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::imag(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:102</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9c7723fc49137394fa817136a7ffb50f"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9c7723fc49137394fa817136a7ffb50f">mlx::core::simd::asin</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asin(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:31</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9d968537ad5ef18630f5afce8453b30e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9d968537ad5ef18630f5afce8453b30e">mlx::core::simd::any</a></div><div class="ttdeci">bool any(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:275</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_a9ddc7f119cc1dc04372ec1adcaf55f70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#a9ddc7f119cc1dc04372ec1adcaf55f70">mlx::core::simd::fma</a></div><div class="ttdeci">Simd&lt; T, N &gt; fma(Simd&lt; T, N &gt; x, Simd&lt; T, N &gt; y, U z)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:264</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa244fbe7456b653aa50a473108fd6a2b"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa244fbe7456b653aa50a473108fd6a2b">mlx::core::simd::tanh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; tanh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:43</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aa7550a1210e50c996d0db84034b8a22e"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aa7550a1210e50c996d0db84034b8a22e">mlx::core::simd::atan</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; atan(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:33</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aaa76bdf1db09261d84da51d394837f5d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aaa76bdf1db09261d84da51d394837f5d">mlx::core::simd::asinh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; asinh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac66bdf1a8e86a4d350c85037bc764da5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac66bdf1a8e86a4d350c85037bc764da5">mlx::core::simd::remainder</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; remainder(Simd&lt; float16_t, N &gt; x, Simd&lt; float16_t, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:53</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ac91bd36c7caafd3c7ff176e7e2f81887"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ac91bd36c7caafd3c7ff176e7e2f81887">mlx::core::simd::max_size</a></div><div class="ttdeci">static constexpr int max_size</div><div class="ttdef"><b>Definition</b> base_simd.h:13</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acd4196d0c66204cfae70b064c305e146"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acd4196d0c66204cfae70b064c305e146">mlx::core::simd::min</a></div><div class="ttdeci">T min(Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:287</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_acdf822b7626bbab6a495552aea3457b5"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#acdf822b7626bbab6a495552aea3457b5">mlx::core::simd::real</a></div><div class="ttdeci">auto real(Simd&lt; T, 1 &gt; in) -&gt; Simd&lt; decltype(std::real(in.value)), 1 &gt;</div><div class="ttdef"><b>Definition</b> base_simd.h:98</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ad06680bbc041e76efe2dbff4e11b9a13"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ad06680bbc041e76efe2dbff4e11b9a13">mlx::core::simd::log1p</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; log1p(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:40</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae1d5460c58c507a0104d8dfa90343f12"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae1d5460c58c507a0104d8dfa90343f12">mlx::core::simd::ceil</a></div><div class="ttdeci">Simd&lt; T, N &gt; ceil(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:120</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae344abefc91c7d9c0a9506c868a84d61"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae344abefc91c7d9c0a9506c868a84d61">mlx::core::simd::recip</a></div><div class="ttdeci">Simd&lt; T, N &gt; recip(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:131</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae39b8e1d1fff94947406eeb8ec6e0414"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae39b8e1d1fff94947406eeb8ec6e0414">mlx::core::simd::sqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; sqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:129</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae4be4d88cd8eba7a8c1784fd53b86edb"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae4be4d88cd8eba7a8c1784fd53b86edb">mlx::core::simd::clamp</a></div><div class="ttdeci">Simd&lt; T, N &gt; clamp(Simd&lt; T, N &gt; v, Simd&lt; T, N &gt; min, Simd&lt; T, N &gt; max)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:259</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_ae623449dfa7aab3031aa2f14c1b10a2d"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#ae623449dfa7aab3031aa2f14c1b10a2d">mlx::core::simd::acos</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; acos(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:29</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aea75ddf8c696efc2e5e924667ed48e70"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aea75ddf8c696efc2e5e924667ed48e70">mlx::core::simd::rsqrt</a></div><div class="ttdeci">Simd&lt; T, N &gt; rsqrt(Simd&lt; T, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:130</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_aedc18b6fdb820cce9125c977c02833aa"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#aedc18b6fdb820cce9125c977c02833aa">mlx::core::simd::cosh</a></div><div class="ttdeci">Simd&lt; float16_t, N &gt; cosh(Simd&lt; float16_t, N &gt; v)</div><div class="ttdef"><b>Definition</b> accelerate_fp16_simd.h:35</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afa2236afddfdec312eb7e27b89a5316a"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afa2236afddfdec312eb7e27b89a5316a">mlx::core::simd::store</a></div><div class="ttdeci">void store(T *dst, Simd&lt; T, N &gt; x)</div><div class="ttdef"><b>Definition</b> base_simd.h:32</div></div>
<div class="ttc" id="anamespacemlx_1_1core_1_1simd_html_afb3bcbd8d8b34128cd0c8eb677a170ef"><div class="ttname"><a href="namespacemlx_1_1core_1_1simd.html#afb3bcbd8d8b34128cd0c8eb677a170ef">mlx::core::simd::select</a></div><div class="ttdeci">Simd&lt; T1, N &gt; select(Simd&lt; MaskT, N &gt; mask, Simd&lt; T1, N &gt; x, Simd&lt; T2, N &gt; y)</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:231</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a14e16c6e2ef5e89135cf8e85dc9f1f1f"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a14e16c6e2ef5e89135cf8e85dc9f1f1f">mlx::core::simd::Simd&lt; T, 1 &gt;::size</a></div><div class="ttdeci">static constexpr int size</div><div class="ttdef"><b>Definition</b> base_simd.h:17</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a3f6e4a83ecf897465f44160b6fad5a7a"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a3f6e4a83ecf897465f44160b6fad5a7a">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd()</div><div class="ttdef"><b>Definition</b> base_simd.h:19</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_a585bc4768c4f7e1313d7e8756fbb00cc"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#a585bc4768c4f7e1313d7e8756fbb00cc">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(Simd&lt; U, 1 &gt; v)</div><div class="ttdef"><b>Definition</b> base_simd.h:21</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_ac348445fd44bce2b6ee77adeac7d82df"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#ac348445fd44bce2b6ee77adeac7d82df">mlx::core::simd::Simd&lt; T, 1 &gt;::value</a></div><div class="ttdeci">T value</div><div class="ttdef"><b>Definition</b> base_simd.h:18</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4_html_acf948f7c5e8829432c0ac17fc9f911e2"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd_3_01_t_00_011_01_4.html#acf948f7c5e8829432c0ac17fc9f911e2">mlx::core::simd::Simd&lt; T, 1 &gt;::Simd</a></div><div class="ttdeci">Simd(U v)</div><div class="ttdef"><b>Definition</b> base_simd.h:23</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html">mlx::core::simd::Simd</a></div><div class="ttdef"><b>Definition</b> accelerate_simd.h:55</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1simd_1_1_simd_html_a36e2b7db5ce6eb4dd456e99a4cd2c2cf"><div class="ttname"><a href="structmlx_1_1core_1_1simd_1_1_simd.html#a36e2b7db5ce6eb4dd456e99a4cd2c2cf">mlx::core::simd::Simd::value</a></div><div class="ttdeci">asd::Vector&lt; scalar_t, N &gt;::packed_t value</div><div class="ttdef"><b>Definition</b> accelerate_simd.h:80</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_48c8bf40aae7e42226b4fe31ea48af19.html">cpu</a></li><li class="navelem"><a class="el" href="dir_777905fddc177f731a39846ae16b0314.html">simd</a></li><li class="navelem"><a class="el" href="base__simd_8h.html">base_simd.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/bf16_math.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -579,7 +579,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="bf16__math_8h.html">bf16_math.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/metal/kernels/bf16_math.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -506,7 +506,7 @@ $(function(){initNavTree('bf16__math_8h_source.html',''); initResizable(true); }
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="bf16__math_8h.html">bf16_math.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -109,14 +109,15 @@ $(function(){initNavTree('class_thread_pool.html',''); initResizable(true); });
<p>This is the complete list of members for <a class="el" href="class_thread_pool.html">ThreadPool</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_thread_pool.html#a375fa2d63197282277be640b54e8a196">enqueue</a>(F &amp;&amp;f, Args &amp;&amp;... args) -&gt; std::future&lt; typename std::invoke_result_t&lt; F, Args... &gt; &gt;</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_thread_pool.html#ac291710e33dbbed96ee20711080d506d">ThreadPool</a>(size_t)</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_thread_pool.html#a44d3d2ab618970605e684efc216655eb">~ThreadPool</a>()</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_thread_pool.html#a33d9a848213206e95997eb050702ecbf">resize</a>(size_t)</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_thread_pool.html#ac291710e33dbbed96ee20711080d506d">ThreadPool</a>(size_t)</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_thread_pool.html#a44d3d2ab618970605e684efc216655eb">~ThreadPool</a>()</td><td class="entry"><a class="el" href="class_thread_pool.html">ThreadPool</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: ThreadPool Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -118,6 +118,8 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a375fa2d63197282277be640b54e8a196" id="r_a375fa2d63197282277be640b54e8a196"><td class="memTemplParams" colspan="2">template&lt;class F, class... Args&gt; </td></tr>
<tr class="memitem:a375fa2d63197282277be640b54e8a196"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a375fa2d63197282277be640b54e8a196">enqueue</a> (F &amp;&amp;f, Args &amp;&amp;... args) -&gt; std::future&lt; typename std::invoke_result_t&lt; F, Args... &gt; &gt;</td></tr>
<tr class="separator:a375fa2d63197282277be640b54e8a196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d9a848213206e95997eb050702ecbf" id="r_a33d9a848213206e95997eb050702ecbf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a33d9a848213206e95997eb050702ecbf">resize</a> (size_t)</td></tr>
<tr class="separator:a33d9a848213206e95997eb050702ecbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44d3d2ab618970605e684efc216655eb" id="r_a44d3d2ab618970605e684efc216655eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a44d3d2ab618970605e684efc216655eb">~ThreadPool</a> ()</td></tr>
<tr class="separator:a44d3d2ab618970605e684efc216655eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@ -194,10 +196,35 @@ template&lt;class F, class... Args&gt; </div>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a33d9a848213206e95997eb050702ecbf" name="a33d9a848213206e95997eb050702ecbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33d9a848213206e95997eb050702ecbf">&#9670;&#160;</a></span>resize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ThreadPool::resize </td>
<td>(</td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>threads</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</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/io/<a class="el" href="threadpool_8h_source.html">threadpool.h</a></li>
<li>mlx/<a class="el" href="threadpool_8h_source.html">threadpool.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
@ -205,7 +232,7 @@ template&lt;class F, class... Args&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_thread_pool.html">ThreadPool</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -2,5 +2,6 @@ var class_thread_pool =
[
[ "ThreadPool", "class_thread_pool.html#ac291710e33dbbed96ee20711080d506d", null ],
[ "~ThreadPool", "class_thread_pool.html#a44d3d2ab618970605e684efc216655eb", null ],
[ "enqueue", "class_thread_pool.html#a375fa2d63197282277be640b54e8a196", null ]
[ "enqueue", "class_thread_pool.html#a375fa2d63197282277be640b54e8a196", null ],
[ "resize", "class_thread_pool.html#a33d9a848213206e95997eb050702ecbf", null ]
];

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_abs.html',''); initResizable(true
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::Abs Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_abs.html">Abs</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_add.html',''); initResizable(true
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::Add Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -115,7 +115,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_add_m_m.html',''); initResizable(
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9">eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html">mlx::core::AddMM</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447">mlx::core::UnaryPrimitive::eval_gpu</a>(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f">is_equivalent</a>(const Primitive &amp;other) const override</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html">mlx::core::AddMM</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#a9fecf38f53da08ba1947543c2b3158c2">jvp</a>(const std::vector&lt; array &gt; &amp;primals, const std::vector&lt; array &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html#a6572a4ffdd09ab857d3c09d9c5103f66">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_1_add_m_m.html">mlx::core::AddMM</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22">operator=</a>(const UnaryPrimitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5">operator=</a>(UnaryPrimitive &amp;&amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">mlx::core::Primitive::operator=</a>(const Primitive &amp;other)=delete</td><td class="entry"><a class="el" href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></td><td class="entry"></td></tr>
@ -139,7 +139,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_add_m_m.html',''); initResizable(
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::AddMM Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -129,6 +129,9 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a15694e3bf2ed5c193237b2b9ca00867c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f933be14baebc32a0be0f9a69148aa9" id="r_a5f933be14baebc32a0be0f9a69148aa9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5f933be14baebc32a0be0f9a69148aa9">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:a5f933be14baebc32a0be0f9a69148aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6572a4ffdd09ab857d3c09d9c5103f66" id="r_a6572a4ffdd09ab857d3c09d9c5103f66"><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="#a6572a4ffdd09ab857d3c09d9c5103f66">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:a6572a4ffdd09ab857d3c09d9c5103f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:a6572a4ffdd09ab857d3c09d9c5103f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1562a37cec6928e01281926ebeb47c6" id="r_ac1562a37cec6928e01281926ebeb47c6"><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="#ac1562a37cec6928e01281926ebeb47c6">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:ac1562a37cec6928e01281926ebeb47c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vector-Jacobian product. <br /></td></tr>
<tr class="separator:ac1562a37cec6928e01281926ebeb47c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -171,9 +174,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:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_a9fecf38f53da08ba1947543c2b3158c2"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;primals, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;tangents, const std::vector&lt; int &gt; &amp;argnums)</td></tr>
<tr class="memdesc:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Jacobian-vector product. <br /></td></tr>
<tr class="separator:a9fecf38f53da08ba1947543c2b3158c2 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive" id="r_aa5b443d71db1c7ed31a5ae6e31b7fe29"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">output_shapes</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs)</td></tr>
<tr class="memdesc:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output shapes of the primitive. <br /></td></tr>
<tr class="separator:aa5b443d71db1c7ed31a5ae6e31b7fe29 inherit pub_methods_classmlx_1_1core_1_1_primitive"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -313,6 +313,44 @@ Public Member Functions</h2></td></tr>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a6572a4ffdd09ab857d3c09d9c5103f66" name="a6572a4ffdd09ab857d3c09d9c5103f66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6572a4ffdd09ab857d3c09d9c5103f66">&#9670;&#160;</a></span>jvp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::AddMM::jvp </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>primals</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></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>tangents</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>argnums</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The Jacobian-vector product. </p>
<p>Reimplemented from <a class="el" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">mlx::core::Primitive</a>.</p>
</div>
</div>
<a id="a1262ac2c4c6e9ff6b6047bf7605e5cc9" name="a1262ac2c4c6e9ff6b6047bf7605e5cc9"></a>
@ -455,7 +493,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_add_m_m.html">AddMM</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -4,6 +4,7 @@ var classmlx_1_1core_1_1_add_m_m =
[ "eval_cpu", "classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c", null ],
[ "eval_gpu", "classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9", null ],
[ "is_equivalent", "classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f", null ],
[ "jvp", "classmlx_1_1core_1_1_add_m_m.html#a6572a4ffdd09ab857d3c09d9c5103f66", null ],
[ "print", "classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9", null ],
[ "state", "classmlx_1_1core_1_1_add_m_m.html#a24ab73de46d0589780dac5ade43f93b8", null ],
[ "vjp", "classmlx_1_1core_1_1_add_m_m.html#ac1562a37cec6928e01281926ebeb47c6", null ],

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -139,7 +139,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arange.html',''); initResizable(t
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::Arange Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -413,7 +413,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arange.html">Arange</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_cos.html',''); initResizable(
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcCos Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_cos.html">ArcCos</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_cosh.html',''); initResizable
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcCosh Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_cosh.html">ArcCosh</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_sin.html',''); initResizable(
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcSin Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_sin.html">ArcSin</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_sinh.html',''); initResizable
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcSinh Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_sinh.html">ArcSinh</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_tan.html',''); initResizable(
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcTan Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_tan.html">ArcTan</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_tan2.html',''); initResizable
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcTan2 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_tan2.html">ArcTan2</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -138,7 +138,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arc_tanh.html',''); initResizable
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArcTanh Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -487,7 +487,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arc_tanh.html">ArcTanh</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -139,7 +139,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arg_partition.html',''); initResi
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArgPartition Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -523,7 +523,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arg_partition.html">ArgPartition</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -142,7 +142,7 @@ $(function(){initNavTree('classmlx_1_1core_1_1_arg_reduce.html',''); initResizab
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

View File

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx::core::ArgReduce Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -52,7 +52,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.1 -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@ -550,7 +550,7 @@ Public Member Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacemlx.html">mlx</a></li><li class="navelem"><a class="el" href="namespacemlx_1_1core.html">core</a></li><li class="navelem"><a class="el" href="classmlx_1_1core_1_1_arg_reduce.html">ArgReduce</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>

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