This commit is contained in:
CircleCI Docs
2025-03-05 21:30:09 +00:00
parent 2197c1634d
commit f7c6c666d7
733 changed files with 41418 additions and 30412 deletions

View File

@@ -2801,117 +2801,128 @@ $(function(){initNavTree('primitives_8h_source.html',''); initResizable(true); }
<div class="line"><a id="l02286" name="l02286"></a><span class="lineno"> 2286</span> </div>
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span><span class="comment">/* SVD primitive. */</span></div>
<div class="foldopen" id="foldopen02288" data-start="{" data-end="};">
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html"> 2288</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1">SVD</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html"> 2288</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a1bf0ffc5f7b03720a10975827a616b81">SVD</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"> 2289</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1"> 2290</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1">SVD</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span> </div>
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6"> 2292</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"> 2293</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83"> 2294</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02295" name="l02295"></a><span class="lineno"> 2295</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</span> </div>
<div class="line"><a id="l02297" name="l02297"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8"> 2297</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53"> 2298</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1">SVD</a>)</div>
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"> 2299</span>};</div>
<div class="foldopen" id="foldopen02290" data-start="{" data-end="}">
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a1bf0ffc5f7b03720a10975827a616b81"> 2290</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a1bf0ffc5f7b03720a10975827a616b81">SVD</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, <span class="keywordtype">bool</span> compute_uv)</div>
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>), compute_uv_(compute_uv) {}</div>
</div>
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"> 2300</span> </div>
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span><span class="comment">/* Matrix inversion primitive. */</span></div>
<div class="foldopen" id="foldopen02302" data-start="{" data-end="};">
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html"> 2302</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a> {</div>
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02304" data-start="{" data-end="}">
<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad"> 2304</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">tri</a>, <span class="keywordtype">bool</span> upper)</div>
<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"> 2305</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>), tri_(<a class="code hl_function" href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">tri</a>), upper_(upper) {}</div>
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</span> </div>
<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6"> 2293</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02295" name="l02295"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83"> 2295</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02297" name="l02297"></a><span class="lineno"> 2297</span> </div>
<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8"> 2298</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53"> 2299</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a1bf0ffc5f7b03720a10975827a616b81">SVD</a>)</div>
<div class="foldopen" id="foldopen02300" data-start="{" data-end="}">
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a73f326705aeca762d0dfd63d1577bde1"> 2300</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_s_v_d.html#a73f326705aeca762d0dfd63d1577bde1">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span> <span class="keywordflow">return</span> compute_uv_;</div>
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span> }</div>
</div>
<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span> </div>
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81"> 2307</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; output) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2"> 2308</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; output) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02309" name="l02309"></a><span class="lineno"> 2309</span> </div>
<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2"> 2310</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02311" name="l02311"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9"> 2311</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>)</div>
<div class="foldopen" id="foldopen02312" data-start="{" data-end="}">
<div class="line"><a id="l02312" name="l02312"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2"> 2312</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"> 2313</span> <span class="keywordflow">return</span> std::make_pair(tri_, upper_);</div>
<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"> 2314</span> }</div>
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span> </div>
<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"> 2304</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"> 2305</span> <span class="keywordtype">bool</span> compute_uv_;</div>
<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span>};</div>
</div>
<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"> 2315</span> </div>
<div class="line"><a id="l02316" name="l02316"></a><span class="lineno"> 2316</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l02317" name="l02317"></a><span class="lineno"> 2317</span> <span class="keywordtype">bool</span> tri_;</div>
<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"> 2318</span> <span class="keywordtype">bool</span> upper_;</div>
<div class="line"><a id="l02319" name="l02319"></a><span class="lineno"> 2319</span>};</div>
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</span> </div>
<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"> 2308</span><span class="comment">/* Matrix inversion primitive. */</span></div>
<div class="foldopen" id="foldopen02309" data-start="{" data-end="};">
<div class="line"><a id="l02309" name="l02309"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html"> 2309</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a> {</div>
<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"> 2310</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02311" data-start="{" data-end="}">
<div class="line"><a id="l02311" name="l02311"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad"> 2311</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">tri</a>, <span class="keywordtype">bool</span> upper)</div>
<div class="line"><a id="l02312" name="l02312"></a><span class="lineno"> 2312</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>), tri_(<a class="code hl_function" href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">tri</a>), upper_(upper) {}</div>
</div>
<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"> 2320</span> </div>
<div class="foldopen" id="foldopen02321" data-start="{" data-end="};">
<div class="line"><a id="l02321" name="l02321"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html"> 2321</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a> {</div>
<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02323" data-start="{" data-end="}">
<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab"> 2323</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, <span class="keywordtype">bool</span> upper)</div>
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>), upper_(upper) {}</div>
<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"> 2313</span> </div>
<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81"> 2314</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; output) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2"> 2315</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; output) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02316" name="l02316"></a><span class="lineno"> 2316</span> </div>
<div class="line"><a id="l02317" name="l02317"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2"> 2317</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9"> 2318</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>)</div>
<div class="foldopen" id="foldopen02319" data-start="{" data-end="}">
<div class="line"><a id="l02319" name="l02319"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2"> 2319</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"> 2320</span> <span class="keywordflow">return</span> std::make_pair(tri_, upper_);</div>
<div class="line"><a id="l02321" name="l02321"></a><span class="lineno"> 2321</span> }</div>
</div>
<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"> 2325</span> </div>
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5"> 2326</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795"> 2327</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out) <span class="keyword">override</span>;</div>
<div class="foldopen" id="foldopen02328" data-start="{" data-end="}">
<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727"> 2328</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</span> <span class="keywordflow">return</span> upper_;</div>
<div class="line"><a id="l02330" name="l02330"></a><span class="lineno"> 2330</span> }</div>
<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</span> </div>
<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"> 2323</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span> <span class="keywordtype">bool</span> tri_;</div>
<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"> 2325</span> <span class="keywordtype">bool</span> upper_;</div>
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"> 2326</span>};</div>
</div>
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span> </div>
<div class="line"><a id="l02332" name="l02332"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5"> 2332</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84"> 2333</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a>)</div>
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span> </div>
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"> 2335</span> private:</div>
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span> <span class="keywordtype">bool</span> upper_;</div>
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span>};</div>
<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"> 2327</span> </div>
<div class="foldopen" id="foldopen02328" data-start="{" data-end="};">
<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html"> 2328</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a> {</div>
<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02330" data-start="{" data-end="}">
<div class="line"><a id="l02330" name="l02330"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab"> 2330</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, <span class="keywordtype">bool</span> upper)</div>
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>), upper_(upper) {}</div>
</div>
<div class="line"><a id="l02332" name="l02332"></a><span class="lineno"> 2332</span> </div>
<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5"> 2333</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out) <span class="keyword">override</span>;</div>
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795"> 2334</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&amp; out) <span class="keyword">override</span>;</div>
<div class="foldopen" id="foldopen02335" data-start="{" data-end="}">
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727"> 2335</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span> <span class="keywordflow">return</span> upper_;</div>
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span> }</div>
</div>
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"> 2338</span> </div>
<div class="foldopen" id="foldopen02339" data-start="{" data-end="};">
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html"> 2339</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02341" data-start="{" data-end="}">
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda"> 2341</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, std::string uplo, <span class="keywordtype">bool</span> compute_eigenvectors)</div>
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>),</div>
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> uplo_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(uplo)),</div>
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"> 2344</span> compute_eigenvectors_(compute_eigenvectors) {}</div>
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5"> 2339</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84"> 2340</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">Cholesky</a>)</div>
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</span> </div>
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> private:</div>
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> <span class="keywordtype">bool</span> upper_;</div>
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"> 2344</span>};</div>
</div>
<div class="line"><a id="l02345" name="l02345"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be"> 2345</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"> 2346</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2"> 2347</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"> 2348</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span> </div>
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#ab2f2ea5326e2f6045f9b7250692c240f"> 2350</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a2b8e47ecd60cd7330716761c5fb1fe84"> 2351</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a>)</div>
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"> 2352</span> </div>
<div class="line"><a id="l02353" name="l02353"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952"> 2353</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>&gt; <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&gt;&amp; inputs) override;</div>
<div class="line"><a id="l02354" name="l02354"></a><span class="lineno"> 2354</span> </div>
<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381"> 2355</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381">is_equivalent</a>(const <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>&amp; other) const override;</div>
<div class="foldopen" id="foldopen02356" data-start="{" data-end="}">
<div class="line"><a id="l02356" name="l02356"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914"> 2356</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02357" name="l02357"></a><span class="lineno"> 2357</span> <span class="keywordflow">return</span> std::make_pair(uplo_, compute_eigenvectors_);</div>
<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"> 2358</span> }</div>
<div class="line"><a id="l02345" name="l02345"></a><span class="lineno"> 2345</span> </div>
<div class="foldopen" id="foldopen02346" data-start="{" data-end="};">
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html"> 2346</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"> 2347</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen02348" data-start="{" data-end="}">
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda"> 2348</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>, std::string uplo, <span class="keywordtype">bool</span> compute_eigenvectors)</div>
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span> : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>),</div>
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"> 2350</span> uplo_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(uplo)),</div>
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"> 2351</span> compute_eigenvectors_(compute_eigenvectors) {}</div>
</div>
<div class="line"><a id="l02352" name="l02352"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be"> 2352</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02353" name="l02353"></a><span class="lineno"> 2353</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02354" name="l02354"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2"> 2354</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"> 2355</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02356" name="l02356"></a><span class="lineno"> 2356</span> </div>
<div class="line"><a id="l02357" name="l02357"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#ab2f2ea5326e2f6045f9b7250692c240f"> 2357</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a2b8e47ecd60cd7330716761c5fb1fe84"> 2358</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">Eigh</a>)</div>
<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"> 2359</span> </div>
<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"> 2360</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> std::string uplo_;</div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span> <span class="keywordtype">bool</span> compute_eigenvectors_;</div>
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span>};</div>
<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952"> 2360</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>&gt; <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector&lt;<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>&gt;&amp; inputs) override;</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> </div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381"> 2362</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381">is_equivalent</a>(const <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>&amp; other) const override;</div>
<div class="foldopen" id="foldopen02363" data-start="{" data-end="}">
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914"> 2363</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914">state</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span> <span class="keywordflow">return</span> std::make_pair(uplo_, compute_eigenvectors_);</div>
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span> }</div>
</div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span> </div>
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span><span class="comment">/* LU Factorization primitive. */</span></div>
<div class="foldopen" id="foldopen02366" data-start="{" data-end="};">
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html"> 2366</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051"> 2368</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913"> 2369</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf"> 2371</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span> </div>
<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a7e71d966d49e473f4bf0524c18425a07"> 2374</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a>)</div>
<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span>};</div>
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> </div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span> std::string uplo_;</div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span> <span class="keywordtype">bool</span> compute_eigenvectors_;</div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span>};</div>
</div>
<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"> 2376</span> </div>
<div class="line"><a id="l02377" name="l02377"></a><span class="lineno"> 2377</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span> </div>
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span><span class="comment">/* LU Factorization primitive. */</span></div>
<div class="foldopen" id="foldopen02373" data-start="{" data-end="};">
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html"> 2373</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a> : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"> 2374</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051"> 2375</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) : <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913"> 2376</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913">eval_cpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02377" name="l02377"></a><span class="lineno"> 2377</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02378" name="l02378"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf"> 2378</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf">eval_gpu</a>(<span class="keyword">const</span> std::vector&lt;array&gt;&amp; inputs, std::vector&lt;array&gt;&amp; outputs)</div>
<div class="line"><a id="l02379" name="l02379"></a><span class="lineno"> 2379</span> <span class="keyword">override</span>;</div>
<div class="line"><a id="l02380" name="l02380"></a><span class="lineno"> 2380</span> </div>
<div class="line"><a id="l02381" name="l02381"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_l_u_f.html#a7e71d966d49e473f4bf0524c18425a07"> 2381</a></span> <a class="code hl_define" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">LUF</a>)</div>
<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"> 2382</span>};</div>
</div>
<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span> </div>
<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span>} <span class="comment">// namespace mlx::core</span></div>
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_abs_html_a0a976e636dd8505b473fbdddf949f514"><div class="ttname"><a href="classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514">mlx::core::Abs::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_abs_html_a0d3e697496ef8e842d21195cb3c14e60"><div class="ttname"><a href="classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60">mlx::core::Abs::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
@@ -3019,8 +3030,8 @@ $(function(){initNavTree('primitives_8h_source.html',''); initResizable(true); }
<div class="ttc" id="aclassmlx_1_1core_1_1_ceil_html_abe178e0058e44b6618be414215e96887"><div class="ttname"><a href="classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887">mlx::core::Ceil::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_ceil_html_aede38610ca25429f229301546bc9b682"><div class="ttname"><a href="classmlx_1_1core_1_1_ceil.html#aede38610ca25429f229301546bc9b682">mlx::core::Ceil::Ceil</a></div><div class="ttdeci">Ceil(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:567</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a4bdec36c1cc99aadf9a4a39d4c57bea5"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5">mlx::core::Cholesky::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a64f03d32ed249a3b2a59b6af66d23727"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727">mlx::core::Cholesky::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2328</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a6ae2e30b85f99f4f0d7f14c7949818ab"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">mlx::core::Cholesky::Cholesky</a></div><div class="ttdeci">Cholesky(Stream stream, bool upper)</div><div class="ttdef"><b>Definition</b> primitives.h:2323</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a64f03d32ed249a3b2a59b6af66d23727"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727">mlx::core::Cholesky::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2335</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a6ae2e30b85f99f4f0d7f14c7949818ab"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab">mlx::core::Cholesky::Cholesky</a></div><div class="ttdeci">Cholesky(Stream stream, bool upper)</div><div class="ttdef"><b>Definition</b> primitives.h:2330</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_cholesky_html_a8c918594bf129888044ef37fcae56795"><div class="ttname"><a href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795">mlx::core::Cholesky::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_a15cb081590ee024ba11476494581a4d4"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#a15cb081590ee024ba11476494581a4d4">mlx::core::Compiled::output_shapes</a></div><div class="ttdeci">std::vector&lt; Shape &gt; output_shapes(const std::vector&lt; array &gt; &amp;inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_a271521f92eef49c39799f38e26b64a9b"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b">mlx::core::Compiled::print</a></div><div class="ttdeci">void print(std::ostream &amp;os) override</div><div class="ttdoc">Print the primitive.</div></div>
@@ -3089,8 +3100,8 @@ $(function(){initNavTree('primitives_8h_source.html',''); initResizable(true); }
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_a67775b41c0a15e356f08d51d9736baa2"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2">mlx::core::Eigh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_a894b32e17229394f6a43b4a0655fd8be"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be">mlx::core::Eigh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_a9892f5b72dec19a5a2f7af5efcf2a952"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952">mlx::core::Eigh::output_shapes</a></div><div class="ttdeci">std::vector&lt; Shape &gt; output_shapes(const std::vector&lt; array &gt; &amp;inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_aa3b6c33b5679c5528863f3de2ab2f914"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914">mlx::core::Eigh::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2356</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_ad8f5d012ebd5942abeffecca77fcddda"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">mlx::core::Eigh::Eigh</a></div><div class="ttdeci">Eigh(Stream stream, std::string uplo, bool compute_eigenvectors)</div><div class="ttdef"><b>Definition</b> primitives.h:2341</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_aa3b6c33b5679c5528863f3de2ab2f914"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914">mlx::core::Eigh::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2363</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_ad8f5d012ebd5942abeffecca77fcddda"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda">mlx::core::Eigh::Eigh</a></div><div class="ttdeci">Eigh(Stream stream, std::string uplo, bool compute_eigenvectors)</div><div class="ttdef"><b>Definition</b> primitives.h:2348</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_equal_html_a0787bf32f0b405a8b2ac809d2d990774"><div class="ttname"><a href="classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774">mlx::core::Equal::print</a></div><div class="ttdeci">void print(std::ostream &amp;os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:913</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_equal_html_a4af81cf2dd071db5bbf8ce1df95fdf36"><div class="ttname"><a href="classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36">mlx::core::Equal::Equal</a></div><div class="ttdeci">Equal(Stream stream, bool equal_nan=false)</div><div class="ttdef"><b>Definition</b> primitives.h:902</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_equal_html_aa27ff7525f109edc56b731a6df78f6bc"><div class="ttname"><a href="classmlx_1_1core_1_1_equal.html#aa27ff7525f109edc56b731a6df78f6bc">mlx::core::Equal::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:920</div></div>
@@ -3169,10 +3180,10 @@ $(function(){initNavTree('primitives_8h_source.html',''); initResizable(true); }
<div class="ttc" id="aclassmlx_1_1core_1_1_imag_html_a247a4d059b0a99678c6be8c15e42c1e6"><div class="ttname"><a href="classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6">mlx::core::Imag::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_imag_html_a284b7de34a316110fdc98e7b753372b2"><div class="ttname"><a href="classmlx_1_1core_1_1_imag.html#a284b7de34a316110fdc98e7b753372b2">mlx::core::Imag::Imag</a></div><div class="ttdeci">Imag(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1184</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_a086fbbc947ad232e01686ad063a78ed2"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2">mlx::core::Inverse::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;output) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_a71467681e523abb725724490bfeb76ad"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">mlx::core::Inverse::Inverse</a></div><div class="ttdeci">Inverse(Stream stream, bool tri, bool upper)</div><div class="ttdef"><b>Definition</b> primitives.h:2304</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_aa1fce744f4a2d660c65901a7542056f2"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2">mlx::core::Inverse::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2312</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_a71467681e523abb725724490bfeb76ad"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad">mlx::core::Inverse::Inverse</a></div><div class="ttdeci">Inverse(Stream stream, bool tri, bool upper)</div><div class="ttdef"><b>Definition</b> primitives.h:2311</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_aa1fce744f4a2d660c65901a7542056f2"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2">mlx::core::Inverse::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2319</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_inverse_html_aeb1d8dc9bc4052a616023f65b3c7bb81"><div class="ttname"><a href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81">mlx::core::Inverse::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;output) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_l_u_f_html_a0d8687ad3af3ff5b74881f1a4b312051"><div class="ttname"><a href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">mlx::core::LUF::LUF</a></div><div class="ttdeci">LUF(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2368</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_l_u_f_html_a0d8687ad3af3ff5b74881f1a4b312051"><div class="ttname"><a href="classmlx_1_1core_1_1_l_u_f.html#a0d8687ad3af3ff5b74881f1a4b312051">mlx::core::LUF::LUF</a></div><div class="ttdeci">LUF(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2375</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_l_u_f_html_a6cb497d6b011210a8090bdc8fdf14913"><div class="ttname"><a href="classmlx_1_1core_1_1_l_u_f.html#a6cb497d6b011210a8090bdc8fdf14913">mlx::core::LUF::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_l_u_f_html_aa2e955a6ca2ffbfab463a3e9c69beabf"><div class="ttname"><a href="classmlx_1_1core_1_1_l_u_f.html#aa2e955a6ca2ffbfab463a3e9c69beabf">mlx::core::LUF::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_less_equal_html_a52492a43224d47e7851beec646c27bbc"><div class="ttname"><a href="classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc">mlx::core::LessEqual::LessEqual</a></div><div class="ttdeci">LessEqual(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1212</div></div>
@@ -3308,9 +3319,10 @@ $(function(){initNavTree('primitives_8h_source.html',''); initResizable(true); }
<div class="ttc" id="aclassmlx_1_1core_1_1_round_html_a1327a359b2aed91f576145a0e70d1dde"><div class="ttname"><a href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde">mlx::core::Round::Round</a></div><div class="ttdeci">Round(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1711</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_round_html_ad066b0944b437f64ab546025efa00007"><div class="ttname"><a href="classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007">mlx::core::Round::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_round_html_af7fe5ff8f3db166c203b4be4b07f13ec"><div class="ttname"><a href="classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec">mlx::core::Round::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_s_v_d_html_a1bf0ffc5f7b03720a10975827a616b81"><div class="ttname"><a href="classmlx_1_1core_1_1_s_v_d.html#a1bf0ffc5f7b03720a10975827a616b81">mlx::core::SVD::SVD</a></div><div class="ttdeci">SVD(Stream stream, bool compute_uv)</div><div class="ttdef"><b>Definition</b> primitives.h:2290</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_s_v_d_html_a637f5c39fa8b10722c04a066f6c1ada6"><div class="ttname"><a href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6">mlx::core::SVD::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_s_v_d_html_a7067b2207f826a25549d571856b94e83"><div class="ttname"><a href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83">mlx::core::SVD::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector&lt; array &gt; &amp;inputs, std::vector&lt; array &gt; &amp;outputs) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_s_v_d_html_ae89ff583e34fa894cccb8e7a475ee6d1"><div class="ttname"><a href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1">mlx::core::SVD::SVD</a></div><div class="ttdeci">SVD(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2290</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_s_v_d_html_a73f326705aeca762d0dfd63d1577bde1"><div class="ttname"><a href="classmlx_1_1core_1_1_s_v_d.html#a73f326705aeca762d0dfd63d1577bde1">mlx::core::SVD::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2300</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a15676d9fd066e935782a923fba3e940b"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b">mlx::core::Scan::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector&lt; array &gt; &amp;inputs, array &amp;out) override</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a47bf2ec54ead4b8f00f9f188518630f1"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1">mlx::core::Scan::ReduceType</a></div><div class="ttdeci">ReduceType</div><div class="ttdef"><b>Definition</b> primitives.h:1725</div></div>
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a47bf2ec54ead4b8f00f9f188518630f1a33edce755ed1a74632c302ad93a14789"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a33edce755ed1a74632c302ad93a14789">mlx::core::Scan::Prod</a></div><div class="ttdeci">@ Prod</div><div class="ttdef"><b>Definition</b> primitives.h:1725</div></div>