This commit is contained in:
CircleCI Docs
2025-02-06 20:16:29 +00:00
parent 231caa94a6
commit 3bac79c1d6
2299 changed files with 64934 additions and 28640 deletions

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/scan.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');
@@ -187,20 +187,20 @@ $(function(){initNavTree('scan_8h_source.html',''); initResizable(true); });
<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_cum_prod.html"> 74</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_cum_prod.html">CumProd</a>&lt;bool&gt; {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="struct_cum_prod.html#ae7a8b0ba9e6898356b87b18766e76d2c"> 75</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_cum_prod.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="struct_cum_prod_3_01bool_01_4.html"> 74</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct_cum_prod.html">CumProd</a>&lt;bool&gt; {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c"> 75</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_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00078" data-start="{" data-end="}">
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="struct_cum_prod.html#ad634be0b139d10ce6d21332eef0d936b"> 78</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod.html#ad634be0b139d10ce6d21332eef0d936b">operator()</a>(<span class="keywordtype">bool</span> a, T b) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b"> 78</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b">operator()</a>(<span class="keywordtype">bool</span> a, T b) {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> a &amp; <span class="keyword">static_cast&lt;</span><span class="keywordtype">bool</span><span class="keyword">&gt;</span>(b);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </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="struct_cum_prod.html#abeb5ec4237b330e7219f4e881cf10d7a"> 82</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod.html#abeb5ec4237b330e7219f4e881cf10d7a">simd_scan</a>(<span class="keywordtype">bool</span> x) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a"> 82</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a">simd_scan</a>(<span class="keywordtype">bool</span> x) {</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt;= 16; i *= 2) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">bool</span> other = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4">simd_shuffle_and_fill_up</a>(x, <a class="code hl_variable" href="struct_cum_prod.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a>, i);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">bool</span> other = <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4">simd_shuffle_and_fill_up</a>(x, <a class="code hl_variable" href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a>, i);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> x &amp;= other;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> x;</div>
@@ -208,9 +208,9 @@ $(function(){initNavTree('scan_8h_source.html',''); initResizable(true); });
</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="foldopen" id="foldopen00090" data-start="{" data-end="}">
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="struct_cum_prod.html#a1a86e9398bae24182b7be0a6577bf223"> 90</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod.html#a1a86e9398bae24182b7be0a6577bf223">simd_exclusive_scan</a>(<span class="keywordtype">bool</span> x) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> x = <a class="code hl_function" href="struct_cum_prod.html#abeb5ec4237b330e7219f4e881cf10d7a">simd_scan</a>(x);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4">simd_shuffle_and_fill_up</a>(x, <a class="code hl_variable" href="struct_cum_prod.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a>, 1);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223"> 90</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223">simd_exclusive_scan</a>(<span class="keywordtype">bool</span> x) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> x = <a class="code hl_function" href="struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a">simd_scan</a>(x);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> <a class="code hl_function" href="backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4">simd_shuffle_and_fill_up</a>(x, <a class="code hl_variable" href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">init</a>, 1);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>};</div>
@@ -658,11 +658,11 @@ $(function(){initNavTree('scan_8h_source.html',''); initResizable(true); });
<div class="ttc" id="astruct_cum_min_html_a83e65017ff33018b585c043fb803773b"><div class="ttname"><a href="struct_cum_min.html#a83e65017ff33018b585c043fb803773b">CumMin::simd_exclusive_scan</a></div><div class="ttdeci">U simd_exclusive_scan(U x)</div><div class="ttdef"><b>Definition</b> scan.h:136</div></div>
<div class="ttc" id="astruct_cum_min_html_a8b67f739c620d0cc194b533190990ab9"><div class="ttname"><a href="struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9">CumMin::init</a></div><div class="ttdeci">static constexpr constant U init</div><div class="ttdef"><b>Definition</b> scan.h:121</div></div>
<div class="ttc" id="astruct_cum_min_html_ae0b8c3761e04fa538d304ca842281a66"><div class="ttname"><a href="struct_cum_min.html#ae0b8c3761e04fa538d304ca842281a66">CumMin::operator()</a></div><div class="ttdeci">U operator()(U a, T b)</div><div class="ttdef"><b>Definition</b> scan.h:124</div></div>
<div class="ttc" id="astruct_cum_prod_3_01bool_01_4_html_a1a86e9398bae24182b7be0a6577bf223"><div class="ttname"><a href="struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223">CumProd&lt; bool &gt;::simd_exclusive_scan</a></div><div class="ttdeci">bool simd_exclusive_scan(bool x)</div><div class="ttdef"><b>Definition</b> scan.h:90</div></div>
<div class="ttc" id="astruct_cum_prod_3_01bool_01_4_html_abeb5ec4237b330e7219f4e881cf10d7a"><div class="ttname"><a href="struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a">CumProd&lt; bool &gt;::simd_scan</a></div><div class="ttdeci">bool simd_scan(bool x)</div><div class="ttdef"><b>Definition</b> scan.h:82</div></div>
<div class="ttc" id="astruct_cum_prod_3_01bool_01_4_html_ad634be0b139d10ce6d21332eef0d936b"><div class="ttname"><a href="struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b">CumProd&lt; bool &gt;::operator()</a></div><div class="ttdeci">bool operator()(bool a, T b)</div><div class="ttdef"><b>Definition</b> scan.h:78</div></div>
<div class="ttc" id="astruct_cum_prod_3_01bool_01_4_html_ae7a8b0ba9e6898356b87b18766e76d2c"><div class="ttname"><a href="struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c">CumProd&lt; bool &gt;::init</a></div><div class="ttdeci">static constexpr constant bool init</div><div class="ttdef"><b>Definition</b> scan.h:75</div></div>
<div class="ttc" id="astruct_cum_prod_html"><div class="ttname"><a href="struct_cum_prod.html">CumProd</a></div><div class="ttdef"><b>Definition</b> scan.h:53</div></div>
<div class="ttc" id="astruct_cum_prod_html_a1a86e9398bae24182b7be0a6577bf223"><div class="ttname"><a href="struct_cum_prod.html#a1a86e9398bae24182b7be0a6577bf223">CumProd&lt; bool &gt;::simd_exclusive_scan</a></div><div class="ttdeci">bool simd_exclusive_scan(bool x)</div><div class="ttdef"><b>Definition</b> scan.h:90</div></div>
<div class="ttc" id="astruct_cum_prod_html_abeb5ec4237b330e7219f4e881cf10d7a"><div class="ttname"><a href="struct_cum_prod.html#abeb5ec4237b330e7219f4e881cf10d7a">CumProd&lt; bool &gt;::simd_scan</a></div><div class="ttdeci">bool simd_scan(bool x)</div><div class="ttdef"><b>Definition</b> scan.h:82</div></div>
<div class="ttc" id="astruct_cum_prod_html_ad634be0b139d10ce6d21332eef0d936b"><div class="ttname"><a href="struct_cum_prod.html#ad634be0b139d10ce6d21332eef0d936b">CumProd&lt; bool &gt;::operator()</a></div><div class="ttdeci">bool operator()(bool a, T b)</div><div class="ttdef"><b>Definition</b> scan.h:78</div></div>
<div class="ttc" id="astruct_cum_prod_html_ae7a8b0ba9e6898356b87b18766e76d2c"><div class="ttname"><a href="struct_cum_prod.html#ae7a8b0ba9e6898356b87b18766e76d2c">CumProd&lt; bool &gt;::init</a></div><div class="ttdeci">static constexpr constant bool init</div><div class="ttdef"><b>Definition</b> scan.h:75</div></div>
<div class="ttc" id="astruct_cum_sum_html"><div class="ttname"><a href="struct_cum_sum.html">CumSum</a></div><div class="ttdef"><b>Definition</b> scan.h:32</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_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>
@@ -672,7 +672,7 @@ $(function(){initNavTree('scan_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="scan_8h.html">scan.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>