mirror of
https://github.com/ml-explore/mlx.git
synced 2025-06-26 02:33:21 +08:00
3446 lines
839 KiB
HTML
3446 lines
839 KiB
HTML
<!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/primitives.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&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()"> </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&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&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&dn=expat.txt MIT */
|
|
$(function(){initNavTree('primitives_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">primitives.h</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="primitives_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 <unordered_set></span></div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "<a class="code" href="array_8h.html">mlx/array.h</a>"</span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "<a class="code" href="device_8h.html">mlx/device.h</a>"</span></div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "<a class="code" href="io_2load_8h.html">mlx/io/load.h</a>"</span></div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "<a class="code" href="stream_8h.html">mlx/stream.h</a>"</span></div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
|
<div class="foldopen" id="foldopen00012" data-start="" data-end="">
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd"> 12</a></span><span class="preprocessor">#define DEFINE_VMAP() \</span></div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor"> virtual std::pair<std::vector<array>, std::vector<int>> vmap( \</span></div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor"> const std::vector<array>& inputs, const std::vector<int>& axes) \</span></div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor"> override;</span></div>
|
|
</div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
|
|
<div class="foldopen" id="foldopen00017" data-start="" data-end="">
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6"> 17</a></span><span class="preprocessor">#define DEFINE_GRADS() \</span></div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor"> std::vector<array> jvp( \</span></div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor"> const std::vector<array>& primals, \</span></div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor"> const std::vector<array>& tangents, \</span></div>
|
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor"> const std::vector<int>& argnums) override; \</span></div>
|
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor"> \</span></div>
|
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor"> std::vector<array> vjp( \</span></div>
|
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor"> const std::vector<array>& primals, \</span></div>
|
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor"> const std::vector<array>& cotangents, \</span></div>
|
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor"> const std::vector<int>& argnums, \</span></div>
|
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor"> const std::vector<array>& outputs) override;</span></div>
|
|
</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="">
|
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592"> 29</a></span><span class="preprocessor">#define DEFINE_PRINT(PRIMITIVE) \</span></div>
|
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor"> void print(std::ostream& os) override { \</span></div>
|
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor"> os << #PRIMITIVE; \</span></div>
|
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </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="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a"> 34</a></span><span class="preprocessor">#define DEFINE_DEFAULT_IS_EQUIVALENT() \</span></div>
|
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor"> bool is_equivalent(const Primitive& other) const override { \</span></div>
|
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor"> return true; \</span></div>
|
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
|
<div class="foldopen" id="foldopen00039" data-start="" data-end="">
|
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999"> 39</a></span><span class="preprocessor">#define DEFINE_INPUT_OUTPUT_SHAPE() \</span></div>
|
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"> std::vector<Shape> output_shapes(const std::vector<array>& inputs) \</span></div>
|
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor"> override { \</span></div>
|
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor"> return {inputs[0].shape()}; \</span></div>
|
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor"> }</span></div>
|
|
</div>
|
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
|
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
|
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// Abstract base class</span></div>
|
|
<div class="foldopen" id="foldopen00048" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html"> 48</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
|
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb"> 50</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</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>) : stream_(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span></div>
|
|
<div class="foldopen" id="foldopen00053" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261"> 53</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_device.html">Device</a>& <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">device</a>() {</div>
|
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>().<a class="code hl_variable" href="structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb">device</a>;</div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span></div>
|
|
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a"> 58</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a>& <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>() {</div>
|
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> stream_;</div>
|
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span></div>
|
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575"> 69</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575">eval_cpu</a>(</div>
|
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">const</span> std::vector<array>& inputs,</div>
|
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> std::vector<array>& outputs) = 0;</div>
|
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2"> 72</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2">eval_gpu</a>(</div>
|
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> std::vector<array>& inputs,</div>
|
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> std::vector<array>& outputs) = 0;</div>
|
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span></div>
|
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2"> 79</a></span> <span class="keyword">virtual</span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">jvp</a>(</div>
|
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">const</span> std::vector<array>& tangents,</div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">const</span> std::vector<int>& argnums);</div>
|
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span></div>
|
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42"> 87</a></span> <span class="keyword">virtual</span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">vjp</a>(</div>
|
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">const</span> std::vector<array>& cotangents,</div>
|
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">const</span> std::vector<int>& argnums,</div>
|
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">const</span> std::vector<array>& outputs);</div>
|
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span></div>
|
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103"> 99</a></span> <span class="keyword">virtual</span> std::pair<std::vector<array>, std::vector<int>> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103">vmap</a>(</div>
|
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> std::vector<array>& inputs,</div>
|
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> std::vector<int>& axes);</div>
|
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span></div>
|
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb"> 104</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">print</a>(std::ostream& os) = 0;</div>
|
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span></div>
|
|
<div class="foldopen" id="foldopen00107" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd"> 107</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">is_equivalent</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>& other)<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span></div>
|
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29"> 113</a></span> <span class="keyword">virtual</span> std::vector<Shape> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">output_shapes</a>(<span class="keyword">const</span> std::vector<array>& inputs);</div>
|
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
|
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777"> 115</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">~Primitive</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32"> 116</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">Primitive</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda"> 117</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>&& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b"> 118</a></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#a6b1be7ea92f3a7bb19875c70259dad6b">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e"> 119</a></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#a50bbddd43e1ba0cf5f127cd7aa756a9e">operator=</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>&& other) = <span class="keyword">delete</span>;</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> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Every primitive stores the stream it should run in</span></div>
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> stream_;</div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </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="classmlx_1_1core_1_1_unary_primitive.html"> 126</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</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="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e"> 131</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</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="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
|
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132"> 133</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& output) = 0;</div>
|
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb"> 134</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& output) = 0;</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="classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db"> 136</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db">eval_cpu</a>(</div>
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">const</span> std::vector<array>& inputs,</div>
|
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> std::vector<array>& outputs)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132">eval_cpu</a>(inputs, outputs[0]);</div>
|
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
|
|
</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="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447"> 141</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447">eval_gpu</a>(</div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> std::vector<array>& inputs,</div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> std::vector<array>& outputs)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb">eval_gpu</a>(inputs, outputs[0]);</div>
|
|
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
|
|
</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"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de"> 147</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de">~UnaryPrimitive</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2"> 148</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2">UnaryPrimitive</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3"> 149</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>&& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22"> 150</a></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_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5"> 151</a></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_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5">operator=</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>&& other) = <span class="keyword">delete</span>;</div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
|
|
<div class="foldopen" id="foldopen00154" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html"> 154</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_abs.html#a1247e72feb640fb562d036b2dd1ae4ad">Abs</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="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a1247e72feb640fb562d036b2dd1ae4ad"> 156</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_abs.html#a1247e72feb640fb562d036b2dd1ae4ad">Abs</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60"> 158</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514"> 159</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
|
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a4c9c98f1d71432fd3752ad9a6a8e7f2f"> 161</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a6c1e6eeaf4f5e63898c3487106e88e11"> 162</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#a643d6db5116eed978e3208804a992107"> 163</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_abs.html#a1247e72feb640fb562d036b2dd1ae4ad">Abs</a>)</div>
|
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#ab6f0ec56bc7c048382297e12dabadc67"> 164</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_abs.html#ac9d55481e5490423e4aaf02b95cafc75"> 165</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </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="classmlx_1_1core_1_1_add.html"> 168</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae">Add</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="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae"> 170</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae">Add</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
|
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f"> 172</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d"> 173</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
|
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#a0e557d4d896153f84a25532562e4c646"> 175</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#a77230069f76fe60a2fe1007822a277b7"> 176</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#a8a96345aa63724f22b68bca7b861211d"> 177</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_add.html#ae3fd5483f3454eac3df256e3f5f3cdae">Add</a>)</div>
|
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#aba0a35410c3aac53d0f7a0c283d9ee3f"> 178</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add.html#a50877893083fd78b31aa25152f750418"> 179</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
|
|
<div class="foldopen" id="foldopen00182" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html"> 182</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550">AddMM</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="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00184" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550"> 184</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550">AddMM</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">float</span> alpha, <span class="keywordtype">float</span> beta)</div>
|
|
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</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>), alpha_(alpha), beta_(beta) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
|
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c"> 187</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9"> 188</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a6572a4ffdd09ab857d3c09d9c5103f66"> 190</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a73ce80b3a37ec2523943028d50ebce81"> 191</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9"> 192</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_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550">AddMM</a>)</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"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f"> 194</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00195" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_add_m_m.html#a24ab73de46d0589780dac5ade43f93b8"> 195</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<span class="keywordtype">float</span>, <span class="keywordtype">float</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_add_m_m.html#a24ab73de46d0589780dac5ade43f93b8">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">return</span> {alpha_, beta_};</div>
|
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
|
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">const</span> <span class="keywordtype">float</span> alpha_;</div>
|
|
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">const</span> <span class="keywordtype">float</span> beta_;</div>
|
|
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> </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="classmlx_1_1core_1_1_arange.html"> 204</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574">Arange</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="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00206" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574"> 206</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574">Arange</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">double</span> start, <span class="keywordtype">double</span> stop, <span class="keywordtype">double</span> step)</div>
|
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</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>), start_(start), stop_(stop), step_(step) {}</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"><a class="line" href="classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1"> 209</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031"> 210</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
|
|
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#abd73d2b793da796dc7cf04c9f7d5c19e"> 212</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_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574">Arange</a>)</div>
|
|
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35"> 213</a></span> bool <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#a447083a1403d3d42a7ad9c307a666946"> 214</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#a447083a1403d3d42a7ad9c307a666946">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen00215" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arange.html#ac4a9f48a11c2af03ed57fdf2422cbfad"> 215</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::tuple<<span class="keywordtype">double</span>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_arange.html#ac4a9f48a11c2af03ed57fdf2422cbfad">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> {start_, stop_, step_};</div>
|
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordtype">double</span> start_;</div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">double</span> stop_;</div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordtype">double</span> step_;</div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </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="classmlx_1_1core_1_1_arc_cos.html"> 225</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9">ArcCos</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="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9"> 227</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9">ArcCos</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</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"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006"> 229</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c"> 230</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
|
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a7548e23ace6827674aa6d284d44ccf83"> 232</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a240079c616f1a1f127aa783308096fe9"> 233</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#aa48d8bec4efbac569d809cf11648b739"> 234</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_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9">ArcCos</a>)</div>
|
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a39557461e3235801886675a9b7d25bf5"> 235</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cos.html#a67a5025f8d7e5bac22888ad4bf813679"> 236</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</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="foldopen" id="foldopen00239" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html"> 239</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71">ArcCosh</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="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71"> 241</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71">ArcCosh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</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"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9"> 243</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc"> 244</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</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="classmlx_1_1core_1_1_arc_cosh.html#af8ff78e910a9e485a203e1d3347bd461"> 246</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a80fcb790649219c30260af903b76a1d7"> 247</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a6a9a2ab0cc360d7e2f9676db17f8e630"> 248</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_arc_cosh.html#a34597054db467941a2a883c653ba4d71">ArcCosh</a>)</div>
|
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a6928e827b9ac2e86e7d5b02b78150eee"> 249</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_cosh.html#a3ab82e9f0452faea735338abccb5f0ac"> 250</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
|
|
<div class="foldopen" id="foldopen00253" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html"> 253</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013">ArcSin</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="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013"> 255</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013">ArcSin</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
|
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4"> 257</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3"> 258</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</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"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a7cabb1e5a2bda44944378822c671ec82"> 260</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a37affc8c5e84e5c54e73a71fc0821ea4"> 261</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a895a35c9dd22fdb06e7b971bfd6fde87"> 262</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_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013">ArcSin</a>)</div>
|
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a13b5e39eeccaf32d94b8eb85b3b753ab"> 263</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sin.html#a0217b9a4e18196ed65ba96b4ad096ecd"> 264</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
|
|
<div class="foldopen" id="foldopen00267" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html"> 267</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20">ArcSinh</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="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20"> 269</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20">ArcSinh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
|
|
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066"> 271</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac"> 272</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</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"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a9e72b9751939387c333b5d4e19a37f6d"> 274</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a79ebf2f6dfecbfbb93170fdd1ca87bf4"> 275</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#aa8b2934a8a0b2eedec8257bbb5726430"> 276</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_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20">ArcSinh</a>)</div>
|
|
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a63c7a765c7906242dc3371deec094f0f"> 277</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_sinh.html#a2f668f230d93c7b90e62200a0b7cb6f6"> 278</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
|
|
<div class="foldopen" id="foldopen00281" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html"> 281</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44">ArcTan</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="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44"> 283</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44">ArcTan</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
|
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3"> 285</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254"> 286</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
|
|
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a1fb921554544a56498bc54f82e4a0556"> 288</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a0f5590a2297fc133b4b0a15f9dd0c760"> 289</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#ab0309e4feca36f221b3d672dc92cac05"> 290</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_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44">ArcTan</a>)</div>
|
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a0e5b5fc7218143ecd0a8666d9137c34c"> 291</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan.html#a2ebabfd1c2963199df0d7610b7ddf422"> 292</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</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>
|
|
<div class="foldopen" id="foldopen00295" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html"> 295</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a">ArcTan2</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="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a"> 297</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a">ArcTan2</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</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"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c"> 299</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50"> 300</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
|
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#ae02cb9fbf25e93dc1d7fbc9e3fb28634"> 302</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#a01675433f2a4fa466b2f48272dbca738"> 303</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#abdfef9f572d06df1251c28222756a361"> 304</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_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a">ArcTan2</a>)</div>
|
|
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#aeaee58cd803d3ebf0b76574a409682cc"> 305</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tan2.html#acb8e5cf85c4bc58f909ce2e8b83c3619"> 306</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
|
|
<div class="foldopen" id="foldopen00309" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html"> 309</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358">ArcTanh</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="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358"> 311</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358">ArcTanh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
|
|
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd"> 313</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d"> 314</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
|
|
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a6ddcae68873559211cb91e7740dfc040"> 316</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a534ebdbfe77241884630d25021274c4a"> 317</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#aa9549311240d7ba225b84e1df9ad8523"> 318</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_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358">ArcTanh</a>)</div>
|
|
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#ac8ecdd640043dab0461d49d7650679a2"> 319</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arc_tanh.html#a6806f04142d850f107a18a71900759c6"> 320</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
|
|
<div class="foldopen" id="foldopen00323" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html"> 323</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df">ArgPartition</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="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00325" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df"> 325</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df">ArgPartition</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">int</span> kth, <span class="keywordtype">int</span> axis)</div>
|
|
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</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>), kth_(kth), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
|
|
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828"> 328</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc"> 329</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
|
|
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#a441093795bcc31495ab5fbc9957b740a"> 331</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#aedea4b47f947a6fe358dd1238cdfb595"> 332</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#aa8678d94fa1571ea71a7bf790cdb8d63"> 333</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_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df">ArgPartition</a>)</div>
|
|
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#a587ce69b0639683ba646652f887d0239"> 334</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a"> 335</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00336" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_partition.html#a5033c46f5aae9b14859cc8b0ca4c8e19"> 336</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<span class="keywordtype">int</span>, <span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_partition.html#a5033c46f5aae9b14859cc8b0ca4c8e19">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">return</span> {kth_, axis_};</div>
|
|
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
|
|
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordtype">int</span> kth_;</div>
|
|
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
|
|
<div class="foldopen" id="foldopen00345" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html"> 345</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03">ArgReduce</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="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00347" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3"> 347</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3">ReduceType</a> {</div>
|
|
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9"> 348</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9">ArgMin</a>,</div>
|
|
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e"> 349</a></span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e">ArgMax</a>,</div>
|
|
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
|
|
<div class="foldopen" id="foldopen00352" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03"> 352</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03">ArgReduce</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_enumeration" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3">ReduceType</a> reduce_type, <span class="keywordtype">int</span> axis)</div>
|
|
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</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>), reduce_type_(reduce_type), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
|
|
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287"> 355</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29"> 356</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
|
|
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#abfec42fa06ea15edaf393593751fb1ba"> 358</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a03bb925e1b488c560bc3d67ce62ba6fa"> 359</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a153a6d8dba7301c4fcd0e429154ead8f"> 360</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_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03">ArgReduce</a>)</div>
|
|
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97"> 361</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#a81a70885480c1d436329025091b2fa4c"> 362</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#a81a70885480c1d436329025091b2fa4c">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen00363" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_reduce.html#acac3b26364260aac7511b4cb7add3604"> 363</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<a class="code hl_enumeration" href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3">ReduceType</a>, <span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_reduce.html#acac3b26364260aac7511b4cb7add3604">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">return</span> {reduce_type_, axis_};</div>
|
|
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
|
|
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> ReduceType reduce_type_;</div>
|
|
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
|
|
<div class="foldopen" id="foldopen00372" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html"> 372</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0">ArgSort</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="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00374" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0"> 374</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0">ArgSort</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">int</span> axis)</div>
|
|
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</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>), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> </div>
|
|
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa"> 377</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709"> 378</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
|
|
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a3522bbbe4626a467394c1a8a9d7ac34e"> 380</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a0b59ce43e0982d634a01631728b419bd"> 381</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_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0">ArgSort</a>)</div>
|
|
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a219ce04a811397a900c3235d8e6aef5c"> 382</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845"> 383</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00384" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_arg_sort.html#a90548429765f9e7e2332f01b72692fa2"> 384</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classmlx_1_1core_1_1_arg_sort.html#a90548429765f9e7e2332f01b72692fa2">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">return</span> axis_;</div>
|
|
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
|
|
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
|
|
<div class="foldopen" id="foldopen00392" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html"> 392</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47">AsType</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="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00394" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47"> 394</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47">AsType</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_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype)</div>
|
|
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</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>), dtype_(dtype) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
|
|
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d"> 397</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b"> 398</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
|
|
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a7ebaf86fd6cad4a1ecfd7cde1ee0b0cc"> 400</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a213400967150c57da35795e1c9f65ca0"> 401</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#aa617e29147c14bd5d1fa8ad0bf65af0c"> 402</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_as_type.html#a8c3241d402a8977bb4db037e225f5b47">AsType</a>)</div>
|
|
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a3975b31cfd86d6eb33dc73554b357b88"> 403</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af"> 404</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00405" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_type.html#a98ea769fc9cd6d76b07817444e7a78ab"> 405</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> <a class="code hl_function" href="classmlx_1_1core_1_1_as_type.html#a98ea769fc9cd6d76b07817444e7a78ab">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <span class="keywordflow">return</span> dtype_;</div>
|
|
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
|
|
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype_;</div>
|
|
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
|
|
<div class="foldopen" id="foldopen00413" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html"> 413</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#aee21aadc21343fd15aacb8f2f8ac3761">AsStrided</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="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00415" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#aee21aadc21343fd15aacb8f2f8ac3761"> 415</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#aee21aadc21343fd15aacb8f2f8ac3761">AsStrided</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_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> strides, <span class="keywordtype">size_t</span> offset)</div>
|
|
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</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>),</div>
|
|
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> shape_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(shape)),</div>
|
|
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> strides_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(strides)),</div>
|
|
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> offset_(offset) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
|
|
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193"> 421</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed"> 422</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
|
|
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#a8ff0a398c47b42e08bc1122e07a02b53"> 424</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#af2e21b77ea9e6c70bca45224967745bf"> 425</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_as_strided.html#aee21aadc21343fd15aacb8f2f8ac3761">AsStrided</a>)</div>
|
|
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094"> 426</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00427" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_as_strided.html#ae730aeff375498ba774d4207c7af8c36"> 427</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_as_strided.html#ae730aeff375498ba774d4207c7af8c36">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">return</span> std::make_tuple(shape_, strides_, offset_);</div>
|
|
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
|
|
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
|
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> strides_;</div>
|
|
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keywordtype">size_t</span> offset_;</div>
|
|
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> </div>
|
|
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> </div>
|
|
<div class="foldopen" id="foldopen00439" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html"> 439</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172">BitwiseBinary</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="l00440" name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4"> 441</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23d">Op</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4">And</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da51065a44e7f9a76a6dab6de637c6db22">Or</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dac95e7d8e6205449a70c8134e7dae3bd1">Xor</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da986b39e75cbe29fcda1d7bf7942a65a0">LeftShift</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da011e7b275a1f0edbd9345cfcf6501503">RightShift</a> };</div>
|
|
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
|
|
<div class="foldopen" id="foldopen00443" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172"> 443</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172">BitwiseBinary</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_enumeration" href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23d">Op</a> op)</div>
|
|
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</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>), op_(op) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
|
|
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283"> 446</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd"> 447</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> </div>
|
|
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965"> 449</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a1dae6ce5dc0498d20530403fe5c5531d"> 450</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8"> 451</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d"> 452</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os) override;</div>
|
|
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a49c9d2688d3cca8abf5698a250d57d56"> 453</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="foldopen" id="foldopen00454" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_bitwise_binary.html#a8a67d6f431b4055ab66656201622af4d"> 454</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_bitwise_binary.html#a8a67d6f431b4055ab66656201622af4d">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keywordflow">return</span> op_;</div>
|
|
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
|
|
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> Op op_;</div>
|
|
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> </div>
|
|
<div class="foldopen" id="foldopen00462" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html"> 462</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477">BlockMaskedMM</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="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00464" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477"> 464</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477">BlockMaskedMM</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">int</span> block_size)</div>
|
|
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</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>), block_size_(block_size) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> </div>
|
|
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2"> 467</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9"> 468</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> </div>
|
|
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120"> 470</a></span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120">vjp</a>(</div>
|
|
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="keyword">const</span> std::vector<array>& cotangents,</div>
|
|
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keyword">const</span> std::vector<int>& argnums,</div>
|
|
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">const</span> std::vector<array>& outputs) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
|
|
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#a37ecf6fa296d28efb7651a3c510fe159"> 476</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_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477">BlockMaskedMM</a>)</div>
|
|
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160"> 477</a></span> bool <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00478" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_block_masked_m_m.html#a6bbcc34b256840e4df2953563f2b4a07"> 478</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_block_masked_m_m.html#a6bbcc34b256840e4df2953563f2b4a07">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">return</span> block_size_;</div>
|
|
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> </div>
|
|
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="keywordtype">int</span> block_size_;</div>
|
|
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
|
|
<div class="foldopen" id="foldopen00486" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html"> 486</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a">GatherMM</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="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a"> 488</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a">GatherMM</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> </div>
|
|
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730"> 490</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1"> 491</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> </div>
|
|
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#a76c9f27c57354f6230b43944882e1bda"> 493</a></span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_m_m.html#a76c9f27c57354f6230b43944882e1bda">vjp</a>(</div>
|
|
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keyword">const</span> std::vector<array>& cotangents,</div>
|
|
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">const</span> std::vector<int>& argnums,</div>
|
|
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keyword">const</span> std::vector<array>& outputs) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
|
|
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#ae7a6f4eecb15e95b21e6c87068ebd758"> 499</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_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a">GatherMM</a>)</div>
|
|
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_m_m.html#a163f17f6ce2c002f22e81b302777342b"> 500</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> </div>
|
|
<div class="foldopen" id="foldopen00503" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html"> 503</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a5136f33489670cdc0802e46725288195">BroadcastAxes</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="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00505" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a5136f33489670cdc0802e46725288195"> 505</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a5136f33489670cdc0802e46725288195">BroadcastAxes</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::vector<int> ignore_axes = {})</div>
|
|
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> : <a class="code hl_class" href="classmlx_1_1core_1_1_unary_primitive.html">UnaryPrimitive</a>(stream), ignore_axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(ignore_axes)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> </div>
|
|
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a6423095cd28b2f90893c03166257a568"> 508</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a6423095cd28b2f90893c03166257a568">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a56d16e75a0df867d2f1ba4e5198f15cb"> 509</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a56d16e75a0df867d2f1ba4e5198f15cb">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> </div>
|
|
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a4e04f564d440e2d312c335db52c308e1"> 511</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a830bae1f3f9078bd5b422ce6e46685a7"> 512</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#aa15f81d08cabe43ac92de7534fb940df"> 513</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_broadcast_axes.html#a5136f33489670cdc0802e46725288195">BroadcastAxes</a>)</div>
|
|
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a44d14b22b995e643cb04cc43654d7b16"> 514</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a44d14b22b995e643cb04cc43654d7b16">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#aaa495110c16fbbc642fbb224ef8dfae6"> 515</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#aaa495110c16fbbc642fbb224ef8dfae6">output_shape</a>(</div>
|
|
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs,</div>
|
|
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>& ignore_axes);</div>
|
|
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a42c4385e65851d58e4411a4afe73f58e"> 518</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a42c4385e65851d58e4411a4afe73f58e">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen00519" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast_axes.html#a5b2594b7a70dd4873a07e742140a245f"> 519</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast_axes.html#a5b2594b7a70dd4873a07e742140a245f">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">return</span> ignore_axes_;</div>
|
|
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> </div>
|
|
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> std::vector<int> ignore_axes_;</div>
|
|
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
|
|
<div class="foldopen" id="foldopen00528" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html"> 528</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a004cce3029c0427569830016f99648cb">Broadcast</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="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00530" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a004cce3029c0427569830016f99648cb"> 530</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a004cce3029c0427569830016f99648cb">Broadcast</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="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape)</div>
|
|
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</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>), shape_(shape) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
|
|
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780"> 533</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe"> 534</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> </div>
|
|
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#aee4c71c2588ad01eb57e10f346cd666f"> 536</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#ae2fc3851a117079244708864be770ece"> 537</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a6a610412861c6e472f930b6721b99a11"> 538</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_broadcast.html#a004cce3029c0427569830016f99648cb">Broadcast</a>)</div>
|
|
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a00c39c113fe3e698771e2e6b595c32cd"> 539</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a00c39c113fe3e698771e2e6b595c32cd">output_shape</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs);</div>
|
|
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#adef65b1ec75efbe43e5574ec81b7c0ac"> 540</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#adef65b1ec75efbe43e5574ec81b7c0ac">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616"> 541</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00542" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_broadcast.html#a49fdb421047860733af7dfbbb478da8d"> 542</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_broadcast.html#a49fdb421047860733af7dfbbb478da8d">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> shape_;</div>
|
|
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
|
|
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
|
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
|
|
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
|
|
<div class="foldopen" id="foldopen00552" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html"> 552</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_ceil.html#aede38610ca25429f229301546bc9b682">Ceil</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="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#aede38610ca25429f229301546bc9b682"> 554</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_ceil.html#aede38610ca25429f229301546bc9b682">Ceil</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
|
|
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035"> 556</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887"> 557</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> </div>
|
|
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#ae86819990b43bdb0c2b3a25719b3a7a4"> 559</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#a7ad74b27d9f26c886c2af516b845f066"> 560</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#a14a0048dd6496341cacaddada68276ee"> 561</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_ceil.html#aede38610ca25429f229301546bc9b682">Ceil</a>)</div>
|
|
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#aacd90acb56eb0649c1cef807aa21df52"> 562</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_ceil.html#a3bf7db5178ed26e23d9ba360ba34ab85"> 563</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> </div>
|
|
<div class="foldopen" id="foldopen00566" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html"> 566</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051">Compiled</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
|
|
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="comment">/*</span></div>
|
|
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span><span class="comment"> * The inputs, outputs and tape are either tracers or constants.</span></div>
|
|
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span><span class="comment"> * - The tape should not contain the inputs, but it should contain the</span></div>
|
|
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span><span class="comment"> * outputs.</span></div>
|
|
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span><span class="comment"> * - The tape should also have only one array per primitive for multi-output</span></div>
|
|
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span><span class="comment"> * primitives.</span></div>
|
|
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span><span class="comment"> * - The constant_ids contains ids of arrays in the input list that are safe</span></div>
|
|
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span><span class="comment"> * to treat as scalar constants.</span></div>
|
|
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051"> 577</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051">Compiled</a>(</div>
|
|
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> std::vector<array> inputs,</div>
|
|
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> std::vector<array> outputs,</div>
|
|
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> std::vector<array> tape,</div>
|
|
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> std::unordered_set<uintptr_t> constant_ids);</div>
|
|
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> </div>
|
|
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151"> 584</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5"> 586</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> </div>
|
|
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#a732e7548f53977b4513bb7f30a04c30d"> 589</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#aa385fe28626856ca5f57161b47a3c205"> 590</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#a15cb081590ee024ba11476494581a4d4"> 591</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#a15cb081590ee024ba11476494581a4d4">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b"> 592</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os) override;</div>
|
|
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10"> 593</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10">is_equivalent</a>(const <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> </div>
|
|
<div class="foldopen" id="foldopen00595" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439"> 595</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::<span class="keywordtype">string</span> <a class="code hl_function" href="classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439">lib_name</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">return</span> kernel_lib_;</div>
|
|
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> </div>
|
|
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keyword">const</span> std::vector<array> inputs_;</div>
|
|
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keyword">const</span> std::vector<array> outputs_;</div>
|
|
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">const</span> std::vector<array> tape_;</div>
|
|
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">const</span> std::unordered_set<uintptr_t> constant_ids_;</div>
|
|
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> </div>
|
|
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> std::string kernel_lib_;</div>
|
|
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> </div>
|
|
<div class="foldopen" id="foldopen00608" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html"> 608</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888">Concatenate</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="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00610" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888"> 610</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888">Concatenate</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">int</span> axis)</div>
|
|
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</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>), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> </div>
|
|
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258"> 613</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474"> 614</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> </div>
|
|
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a58c54dcf8e4b045d25edd3afc2caffc1"> 616</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a9f9e7a9dc3a00e02b84c94e1868baff1"> 617</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a56f29b585a6d1d958954a68dcc893f33"> 618</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_concatenate.html#acff07853de2d31faeec7c4ca40ce0888">Concatenate</a>)</div>
|
|
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2"> 619</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#af8415a2fe28804a1437d0876ba15615f"> 620</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#af8415a2fe28804a1437d0876ba15615f">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen00621" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_concatenate.html#a60cd572a42b346399ee539af2dfbf29e"> 621</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_concatenate.html#a60cd572a42b346399ee539af2dfbf29e">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">return</span> axis_;</div>
|
|
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> </div>
|
|
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
|
|
<div class="foldopen" id="foldopen00629" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html"> 629</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87">Conjugate</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="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87"> 631</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87">Conjugate</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> </div>
|
|
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61"> 633</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de"> 634</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
|
|
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#a2c7632c8ae0ca07777e23a0a79344e60"> 636</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#a40281539bbd543ac8fd8e28650de17e4"> 637</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_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87">Conjugate</a>)</div>
|
|
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#af42f00a790c6bc5572bd8fe9e5b36c5e"> 638</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_conjugate.html#afd68332463d12e69c47388f6b81ae96c"> 639</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> </div>
|
|
<div class="foldopen" id="foldopen00642" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html"> 642</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0">Contiguous</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="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00644" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0"> 644</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0">Contiguous</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> allow_col_major)</div>
|
|
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</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>), allow_col_major_(allow_col_major) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
|
|
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#a742de24e6c0310cd85a606dec0cd8336"> 647</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_contiguous.html#a742de24e6c0310cd85a606dec0cd8336">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#a519cd16fd0c55b371ea7625fbb37c70f"> 648</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_contiguous.html#a519cd16fd0c55b371ea7625fbb37c70f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
|
|
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#a563221e90b15aa90bfae23d29c10e4ec"> 650</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#a1f9fcae7235e0ae9217825b78cb0f991"> 651</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#aca8a4ba9a58cc10f063e6b082fa2fc23"> 652</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_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0">Contiguous</a>)</div>
|
|
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#afff58fbf61f0c26b3606208dd2fa2072"> 653</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> </div>
|
|
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_contiguous.html#aa5d273a461fc6e64f3c9a67c24cb3372"> 655</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_contiguous.html#aa5d273a461fc6e64f3c9a67c24cb3372">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> </div>
|
|
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> private:</div>
|
|
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordtype">bool</span> allow_col_major_;</div>
|
|
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> </div>
|
|
<div class="foldopen" id="foldopen00661" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html"> 661</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef">Convolution</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="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00663" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef"> 663</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef">Convolution</a>(</div>
|
|
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keyword">const</span> std::vector<int>& kernel_strides,</div>
|
|
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keyword">const</span> std::vector<int>& padding,</div>
|
|
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">const</span> std::vector<int>& kernel_dilation,</div>
|
|
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="keyword">const</span> std::vector<int>& input_dilation,</div>
|
|
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">const</span> <span class="keywordtype">int</span> groups = 1,</div>
|
|
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> flip = <span class="keyword">false</span>)</div>
|
|
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</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>),</div>
|
|
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> padding_(padding),</div>
|
|
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> kernel_strides_(kernel_strides),</div>
|
|
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> kernel_dilation_(kernel_dilation),</div>
|
|
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> input_dilation_(input_dilation),</div>
|
|
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> groups_(groups),</div>
|
|
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> flip_(flip) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> </div>
|
|
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b"> 679</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2"> 680</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> </div>
|
|
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#af8eb9c0c055ad20aa74b547016917690"> 682</a></span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#af8eb9c0c055ad20aa74b547016917690">vjp</a>(</div>
|
|
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keyword">const</span> std::vector<array>& cotangents,</div>
|
|
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> <span class="keyword">const</span> std::vector<int>& argnums,</div>
|
|
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="keyword">const</span> std::vector<array>& outputs) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> </div>
|
|
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#a844eab7c4cc99e775cfb561265ed14fd"> 688</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_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef">Convolution</a>)</div>
|
|
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de"> 689</a></span> bool <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen00690" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_convolution.html#a7f44f0caea20cc2858717afba1e915d8"> 690</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_convolution.html#a7f44f0caea20cc2858717afba1e915d8">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">return</span> std::make_tuple(</div>
|
|
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> padding_,</div>
|
|
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> kernel_strides_,</div>
|
|
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> kernel_dilation_,</div>
|
|
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> input_dilation_,</div>
|
|
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> groups_,</div>
|
|
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> flip_);</div>
|
|
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> </div>
|
|
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> std::vector<int> padding_;</div>
|
|
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> std::vector<int> kernel_strides_;</div>
|
|
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> std::vector<int> kernel_dilation_;</div>
|
|
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> std::vector<int> input_dilation_;</div>
|
|
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <span class="keywordtype">int</span> groups_;</div>
|
|
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordtype">bool</span> flip_;</div>
|
|
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> </div>
|
|
<div class="foldopen" id="foldopen00709" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html"> 709</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584">Copy</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="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584"> 711</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584">Copy</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> </div>
|
|
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c"> 713</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1"> 714</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> </div>
|
|
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#a669b10253c15b769d90058d1ad7d0e61"> 716</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#a5acf02aa360cbefd86749fe9877b29cc"> 717</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#acfa1a02ab9cdab593e928faa515a8008"> 718</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_copy.html#a6243e044af119105ffaaed7d405cd584">Copy</a>)</div>
|
|
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#afcfa39465015f638e294aa954ea0f3da"> 719</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_copy.html#a6bbe5fd9ce3cb5a39853b316106d2674"> 720</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> </div>
|
|
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> private:</div>
|
|
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <span class="keywordtype">void</span> eval(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> </div>
|
|
<div class="foldopen" id="foldopen00726" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html"> 726</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995">Cos</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="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995"> 728</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995">Cos</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> </div>
|
|
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152"> 730</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060"> 731</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
|
|
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#aec9460daf0131156734013d03b230cd6"> 733</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a99dd0b7e4aa2c838b77736f1fd539ee1"> 734</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a81858457e4bea931a4bc6f6e38b0f696"> 735</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_cos.html#a2acb9fcf0901462189c476756fd99995">Cos</a>)</div>
|
|
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#ab611ca38c987915659f7ffcce0370417"> 736</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cos.html#a923312e71c5a003a38b37ab67ec82580"> 737</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> </div>
|
|
<div class="foldopen" id="foldopen00740" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html"> 740</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1">Cosh</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="l00741" name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1"> 742</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1">Cosh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> </div>
|
|
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d"> 744</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559"> 745</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> </div>
|
|
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#a1ab2386e7d96219b6e4a525f7dac0406"> 747</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#a79facb0882443533f36a0a18407f5863"> 748</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#ac247faad68c1050cda9f72d7d6d040e2"> 749</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_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1">Cosh</a>)</div>
|
|
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#ae0bacccaf501f5349db0c13cca776ff9"> 750</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cosh.html#adf58c7e24b5059e66007132bc16dfe49"> 751</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> </div>
|
|
<div class="foldopen" id="foldopen00754" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html"> 754</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488">CustomTransforms</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
|
|
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00756" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488"> 756</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488">CustomTransforms</a>(</div>
|
|
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keywordtype">int</span> num_outputs,</div>
|
|
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> std::function<std::vector<array>(</div>
|
|
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="keyword">const</span> std::vector<array>&)> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#aa1da36cef632df767cd9809d6cf06209">vjp</a>,</div>
|
|
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> std::function<std::vector<array>(</div>
|
|
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> <span class="keyword">const</span> std::vector<int>&)> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720">jvp</a>,</div>
|
|
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> std::function<std::pair<std::vector<array>, std::vector<int>>(</div>
|
|
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="keyword">const</span> std::vector<int>&)> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b">vmap</a>)</div>
|
|
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</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="l00771" name="l00771"></a><span class="lineno"> 771</span> num_outputs_(num_outputs),</div>
|
|
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> vjp_fun_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#aa1da36cef632df767cd9809d6cf06209">vjp</a>)),</div>
|
|
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> jvp_fun_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720">jvp</a>)),</div>
|
|
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> vmap_fun_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(<a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b">vmap</a>)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> </div>
|
|
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184"> 776</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667"> 778</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> </div>
|
|
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720"> 781</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>();</div>
|
|
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b"> 782</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>();</div>
|
|
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_custom_transforms.html#a2ddbacbc468271b11caee0ad97005298"> 783</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_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488">CustomTransforms</a>);</div>
|
|
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> </div>
|
|
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <span class="keywordtype">void</span> eval(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs);</div>
|
|
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> </div>
|
|
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keywordtype">int</span> num_outputs_;</div>
|
|
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> </div>
|
|
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> std::function<std::vector<array>(</div>
|
|
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <span class="keyword">const</span> std::vector<array>&)></div>
|
|
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> vjp_fun_;</div>
|
|
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> std::function<std::vector<array>(</div>
|
|
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <span class="keyword">const</span> std::vector<int>&)></div>
|
|
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> jvp_fun_;</div>
|
|
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> std::function<std::pair<std::vector<array>, std::vector<int>>(</div>
|
|
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> <span class="keyword">const</span> std::vector<array>&,</div>
|
|
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <span class="keyword">const</span> std::vector<int>&)></div>
|
|
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> vmap_fun_;</div>
|
|
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> </div>
|
|
<div class="foldopen" id="foldopen00806" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html"> 806</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">Depends</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="l00807" name="l00807"></a><span class="lineno"> 807</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62"> 808</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">Depends</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="l00809" name="l00809"></a><span class="lineno"> 809</span> </div>
|
|
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e"> 810</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28"> 812</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> </div>
|
|
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html#a02996fa45f01f7cb9f37074d5f8ccab0"> 815</a></span> std::vector<array> <a class="code hl_function" href="classmlx_1_1core_1_1_depends.html#a02996fa45f01f7cb9f37074d5f8ccab0">vjp</a>(</div>
|
|
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <span class="keyword">const</span> std::vector<array>& primals,</div>
|
|
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="keyword">const</span> std::vector<array>& cotan,</div>
|
|
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <span class="keyword">const</span> std::vector<int>& argnums,</div>
|
|
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> <span class="keyword">const</span> std::vector<array>& outputs) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> </div>
|
|
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_depends.html#aed575b0d927f4341f60442c70adeeb82"> 821</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_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">Depends</a>);</div>
|
|
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> </div>
|
|
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> <span class="keywordtype">void</span> eval(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs);</div>
|
|
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> </div>
|
|
<div class="foldopen" id="foldopen00827" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html"> 827</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb">Divide</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="l00828" name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb"> 829</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb">Divide</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> </div>
|
|
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49"> 831</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7"> 832</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> </div>
|
|
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#a83e7da52831165b3a026e97b63770242"> 834</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#ae1f408c447b17b3c84fe7f951d95559c"> 835</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#af3c15337ac15522cc34ed98b97895bb6"> 836</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_divide.html#a62fc71e8998be65ff18285dbbd21eedb">Divide</a>)</div>
|
|
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#a3dda091f05c4164c29bb8129e9712650"> 837</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_divide.html#a9563d9ee243204cfdaac6aca34853cd7"> 838</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> </div>
|
|
<div class="foldopen" id="foldopen00841" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html"> 841</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826">DivMod</a> : public <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a> {</div>
|
|
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826"> 843</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826">DivMod</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="l00844" name="l00844"></a><span class="lineno"> 844</span> </div>
|
|
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3"> 845</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc"> 847</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> </div>
|
|
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#ae709e0fdd83994bd1d156e0d0e6a7942"> 850</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#a1267401f25f25847888dd0a00b3fe3b9"> 851</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#a7edbed50d07869d921e529157931b7a1"> 852</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_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826">DivMod</a>)</div>
|
|
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#af5fcf8ec8515d46844cbeeab6dafb38a"> 853</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="foldopen" id="foldopen00854" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_div_mod.html#a1b7f104346cb5423ac15371b45c7ef86"> 854</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_div_mod.html#a1b7f104346cb5423ac15371b45c7ef86">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keywordflow">return</span> std::vector{inputs[0].shape(), inputs[0].shape()};</div>
|
|
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> </div>
|
|
<div class="foldopen" id="foldopen00859" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html"> 859</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9">Select</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="l00860" name="l00860"></a><span class="lineno"> 860</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9"> 861</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9">Select</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> </div>
|
|
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2"> 863</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b"> 864</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> </div>
|
|
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a84e80361c8cf02536b4b98098793550f"> 866</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a172df6812c2ea3e9d3c3fc5d527548d6"> 867</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a678285f2c0b9dae85692399c3aa692a7"> 868</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_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9">Select</a>)</div>
|
|
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#afc3c333fac7f902c98839921ef2874c8"> 869</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_select.html#a10e837a391542b364186288a87e11513"> 870</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> </div>
|
|
<div class="foldopen" id="foldopen00873" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html"> 873</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_remainder.html#a4f3eada4a21898af4a77d1d27ce14641">Remainder</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="l00874" name="l00874"></a><span class="lineno"> 874</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#a4f3eada4a21898af4a77d1d27ce14641"> 875</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_remainder.html#a4f3eada4a21898af4a77d1d27ce14641">Remainder</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> </div>
|
|
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc"> 877</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161"> 878</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> </div>
|
|
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#a79867e1099a2e3c2d3e87407b2ab6e3d"> 880</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#a972002173fc00ee86029d12bf1a9ba79"> 881</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#aeaecac5ea8e606d7ecd393d8019029e4"> 882</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_remainder.html#a4f3eada4a21898af4a77d1d27ce14641">Remainder</a>)</div>
|
|
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#a802039faaa2ed7b763ec3d7debcce814"> 883</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_remainder.html#ab4de49818d1fdea8cdfef502f519b255"> 884</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> </div>
|
|
<div class="foldopen" id="foldopen00887" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html"> 887</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36">Equal</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="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00889" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36"> 889</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36">Equal</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> equal_nan = <span class="keyword">false</span>)</div>
|
|
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</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>), equal_nan_(equal_nan) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> </div>
|
|
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454"> 892</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c"> 893</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> </div>
|
|
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#aea9cc3c88924ac824d72c39c2e83b0ca"> 895</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#a659d484589d7cd96d038922a1a98730f"> 896</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#a58c1c5003e43f47dc0788c1851deaa02"> 897</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#ae714c2b0641fc9c339a2f8483bb4e257"> 898</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> </div>
|
|
<div class="foldopen" id="foldopen00900" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774"> 900</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <span class="keywordflow">if</span> (equal_nan_) {</div>
|
|
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> os << <span class="stringliteral">"NaNEqual"</span>;</div>
|
|
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> os << <span class="stringliteral">"Equal"</span>;</div>
|
|
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> }</div>
|
|
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen00907" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_equal.html#aa27ff7525f109edc56b731a6df78f6bc"> 907</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classmlx_1_1core_1_1_equal.html#aa27ff7525f109edc56b731a6df78f6bc">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <span class="keywordflow">return</span> equal_nan_;</div>
|
|
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> </div>
|
|
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <span class="keywordtype">bool</span> equal_nan_;</div>
|
|
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> </div>
|
|
<div class="foldopen" id="foldopen00915" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html"> 915</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82">Erf</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="l00916" name="l00916"></a><span class="lineno"> 916</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82"> 917</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82">Erf</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> </div>
|
|
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6"> 919</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008"> 920</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> </div>
|
|
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#abe554f553356654a3e800ba368108aaa"> 922</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#ac733d605d80277d613954794eb8c46fe"> 923</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#a186af7b783cf832c3b25eec3a09f5a0c"> 924</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_erf.html#a702f76f848928d8d7d3d0881ac6e4c82">Erf</a>)</div>
|
|
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#abe99dfbc2954c3a7d5dec56ab165ee82"> 925</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf.html#ace70b96c48419e29243982ed697f6411"> 926</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> </div>
|
|
<div class="foldopen" id="foldopen00929" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html"> 929</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478">ErfInv</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="l00930" name="l00930"></a><span class="lineno"> 930</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478"> 931</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478">ErfInv</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> </div>
|
|
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e"> 933</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db"> 934</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> </div>
|
|
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#ad5d7634e8568af8cc4a54a558a48d0e9"> 936</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#aa52710297ab6f7cd6826418c303e64be"> 937</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#a0acb31bd5780abf61877bd1a3e0fd4f9"> 938</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_erf_inv.html#a5d0279247b67da4592311559f04e1478">ErfInv</a>)</div>
|
|
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#aaac9e3b454ba564f9c6e804ab6562832"> 939</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_erf_inv.html#a067cac7a7244b4dae6629c7e4466589f"> 940</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> </div>
|
|
<div class="foldopen" id="foldopen00943" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html"> 943</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06">Exp</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="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06"> 945</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06">Exp</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> </div>
|
|
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c"> 947</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822"> 948</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> </div>
|
|
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#a0fcd579fe148b4c3dbc72e514b81bb37"> 950</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#aef6721832fcc283b082e35a7d436fa59"> 951</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#ad87cc1b2ae595a613b03b0fdca63ae6a"> 952</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_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06">Exp</a>)</div>
|
|
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#ac6e44bffe7a643ab4ca51e74c7328357"> 953</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_exp.html#aef2b3c24dba3ca3a63a210d3bd8e39b6"> 954</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> </div>
|
|
<div class="foldopen" id="foldopen00957" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html"> 957</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2">Expm1</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="l00958" name="l00958"></a><span class="lineno"> 958</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2"> 959</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2">Expm1</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> </div>
|
|
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a"> 961</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f"> 962</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> </div>
|
|
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#aa4caa848b2ea97e71ee3dd33de039296"> 964</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#ad463730632a00945d3a8addfdaec67b1"> 965</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#af1a99266fc50aa5948cdd298e2916ef1"> 966</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_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2">Expm1</a>)</div>
|
|
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expm1.html#ae78f03a204687f16164ed702cfc0d5cc"> 967</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> </div>
|
|
<div class="foldopen" id="foldopen00970" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html"> 970</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#aea2479ea4dd93941eb83a22e087983a8">ExpandDims</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="l00971" name="l00971"></a><span class="lineno"> 971</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00972" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#aea2479ea4dd93941eb83a22e087983a8"> 972</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#aea2479ea4dd93941eb83a22e087983a8">ExpandDims</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::vector<int> axes)</div>
|
|
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</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>), axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> </div>
|
|
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#a34058a87582a6ab2e5d82a75bc713030"> 975</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#a34058a87582a6ab2e5d82a75bc713030">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#ad350ede3abecc55371ddeb89fbba2b90"> 976</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#ad350ede3abecc55371ddeb89fbba2b90">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> </div>
|
|
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#a380c9ddc25a1f973c3d71b42f8a19486"> 978</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#a2ccfe836a715dd8fa908731523f3ce5f"> 979</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#ac8f1d849562b2222158fbe476fc2dc2e"> 980</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_expand_dims.html#aea2479ea4dd93941eb83a22e087983a8">ExpandDims</a>)</div>
|
|
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> </div>
|
|
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#af64bd4bc2cc5f5c58869f34cd974bb3c"> 982</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#af64bd4bc2cc5f5c58869f34cd974bb3c">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#aef468da4027527afec7b24161ce1e1f3"> 983</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#aef468da4027527afec7b24161ce1e1f3">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> </div>
|
|
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#a3814ad4697eccb75fdb9275017a3fd67"> 985</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#a3814ad4697eccb75fdb9275017a3fd67">output_shape</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& input, const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>& axes);</div>
|
|
<div class="foldopen" id="foldopen00986" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_expand_dims.html#a7cacc704c533c00ba072f0a7872631cf"> 986</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_expand_dims.html#a7cacc704c533c00ba072f0a7872631cf">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> <span class="keywordflow">return</span> axes_;</div>
|
|
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> </div>
|
|
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> </div>
|
|
<div class="foldopen" id="foldopen00995" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html"> 995</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839">FFT</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="l00996" name="l00996"></a><span class="lineno"> 996</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00997" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839"> 997</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839">FFT</a>(</div>
|
|
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keyword">const</span> std::vector<size_t>& axes,</div>
|
|
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <span class="keywordtype">bool</span> inverse,</div>
|
|
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#gaf8913cabeb9fb193ba687aaeb2087764">real</a>)</div>
|
|
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</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>), axes_(axes), inverse_(inverse), real_(<a class="code hl_function" href="group__ops.html#gaf8913cabeb9fb193ba687aaeb2087764">real</a>) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> </div>
|
|
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635"> 1004</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd"> 1005</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> </div>
|
|
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#ac32d6cc9b67289124f855ea68a61ede1"> 1007</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a34578814b6576f7b7b447541984ecba6"> 1008</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a15a2a5f7647f5fb78611a251d3270edf"> 1009</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_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839">FFT</a>)</div>
|
|
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
|
|
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06"> 1011</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01012" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_f_f_t.html#a710c6f6e8412da0af0fdbe58fbae320e"> 1012</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_f_f_t.html#a710c6f6e8412da0af0fdbe58fbae320e">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> <span class="keywordflow">return</span> std::make_tuple(axes_, inverse_, real_);</div>
|
|
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> </div>
|
|
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> std::vector<size_t> axes_;</div>
|
|
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keywordtype">bool</span> inverse_;</div>
|
|
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <span class="keywordtype">bool</span> real_;</div>
|
|
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
|
|
<div class="foldopen" id="foldopen01022" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html"> 1022</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#ab9f72c6a90640b91f35a2bcc8dac8780">Flatten</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="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01024" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#ab9f72c6a90640b91f35a2bcc8dac8780"> 1024</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#ab9f72c6a90640b91f35a2bcc8dac8780">Flatten</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">int</span> start_axis, <span class="keywordtype">int</span> end_axis)</div>
|
|
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</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>), start_axis_(start_axis), end_axis_(end_axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
|
|
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#a72ade7d22386b349712f6c7c1f619842"> 1027</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#a72ade7d22386b349712f6c7c1f619842">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#acb2219cc122d218b273af2cb9a882e7f"> 1028</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#acb2219cc122d218b273af2cb9a882e7f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> </div>
|
|
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#a244a03915313286d36ed4d36b01a99f2"> 1030</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#ae0351b8d8088baa09db927ac8546186b"> 1031</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#ad0495ee66601c7527d836d2db77a6aec"> 1032</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_flatten.html#ab9f72c6a90640b91f35a2bcc8dac8780">Flatten</a>)</div>
|
|
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#a5069a73ba1e7b52b7b051f692db6d0d2"> 1033</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#a5069a73ba1e7b52b7b051f692db6d0d2">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#a42499e796aac751fceb4628317cc58f4"> 1034</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#a42499e796aac751fceb4628317cc58f4">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> </div>
|
|
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#a2f8e1defb9c33af2dec29ff8697132aa"> 1036</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#a2f8e1defb9c33af2dec29ff8697132aa">output_shape</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& input, <span class="keywordtype">int</span> start_axis, <span class="keywordtype">int</span> end_axis);</div>
|
|
<div class="foldopen" id="foldopen01037" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_flatten.html#af95dd89c47cd2342233dc0b6d36822a3"> 1037</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_flatten.html#af95dd89c47cd2342233dc0b6d36822a3">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordflow">return</span> std::make_pair(start_axis_, end_axis_);</div>
|
|
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> </div>
|
|
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keywordtype">int</span> start_axis_;</div>
|
|
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="keywordtype">int</span> end_axis_;</div>
|
|
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> </div>
|
|
<div class="foldopen" id="foldopen01047" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html"> 1047</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340">Floor</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="l01048" name="l01048"></a><span class="lineno"> 1048</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340"> 1049</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340">Floor</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> </div>
|
|
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7"> 1051</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65"> 1052</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> </div>
|
|
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#aea4dc79a65774990e775ad49519a5d10"> 1054</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#aa47bc360ec563b6e7d93e8b50626d8af"> 1055</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#ac289e87c5fac15e2f491e2513be610f6"> 1056</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_floor.html#ada4e979b784b732696313d7094e91340">Floor</a>)</div>
|
|
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#a24b64feb026c4fcd02fc481cffdb1c94"> 1057</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_floor.html#a0a62dee6df6a82fcd955bf7670be2cd5"> 1058</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> </div>
|
|
<div class="foldopen" id="foldopen01061" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html"> 1061</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6">Full</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="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6"> 1063</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6">Full</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> </div>
|
|
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c"> 1065</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872"> 1066</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> </div>
|
|
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#afc57ab6bd9ebdbbf042af54a59785d95"> 1068</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#a281a865d0664596ac8d05ea8e7f26407"> 1069</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#a68e08303f4960ab373b84a3312edc013"> 1070</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_full.html#aafcb86a2e41353853ec48c717e0c54d6">Full</a>)</div>
|
|
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_full.html#afafcbcae1e28597fe8f7fde289105792"> 1071</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> </div>
|
|
<div class="foldopen" id="foldopen01074" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html"> 1074</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#af24220fde798f2ad17cdce297c0dbc43">Gather</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="l01075" name="l01075"></a><span class="lineno"> 1075</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01076" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#af24220fde798f2ad17cdce297c0dbc43"> 1076</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#af24220fde798f2ad17cdce297c0dbc43">Gather</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::vector<int> axes, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> slice_sizes)</div>
|
|
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</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>),</div>
|
|
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)),</div>
|
|
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> slice_sizes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(slice_sizes)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> </div>
|
|
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290"> 1081</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8"> 1082</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> </div>
|
|
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#abab0c4c204e66489825ce80d2194a275"> 1084</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#ac54ef8fac92ab190f1793f3dd95b9e8d"> 1085</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#a9d57637a8a65008683c3847251bdcf91"> 1086</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_gather.html#af24220fde798f2ad17cdce297c0dbc43">Gather</a>)</div>
|
|
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa"> 1087</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#a53d89a6c4ebb634bc208bd85aa2fcda1"> 1088</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#a53d89a6c4ebb634bc208bd85aa2fcda1">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen01089" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather.html#aee59ff90127ef4c2d7fcbe2955b95b27"> 1089</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>, <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>> <a class="code hl_function" href="classmlx_1_1core_1_1_gather.html#aee59ff90127ef4c2d7fcbe2955b95b27">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">return</span> {axes_, slice_sizes_};</div>
|
|
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> </div>
|
|
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> slice_sizes_;</div>
|
|
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> </div>
|
|
<div class="foldopen" id="foldopen01098" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html"> 1098</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#ad8fc6400954c52079f0a2f2b711df060">GatherAxis</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="l01099" name="l01099"></a><span class="lineno"> 1099</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01100" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#ad8fc6400954c52079f0a2f2b711df060"> 1100</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#ad8fc6400954c52079f0a2f2b711df060">GatherAxis</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">int</span> axis)</div>
|
|
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</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>), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
|
|
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a474eae1d024e676e668318bf10928e2a"> 1103</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#a474eae1d024e676e668318bf10928e2a">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a1344749d33e4ea2cb80b69a5a4a21afc"> 1104</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#a1344749d33e4ea2cb80b69a5a4a21afc">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> </div>
|
|
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a48d50bad33b69e29f75bedc794f7b785"> 1106</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a4f6015bf2c9bb8773118eb51be45b378"> 1107</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a9108bd9dfc153e6260e6340ff923ba38"> 1108</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_gather_axis.html#ad8fc6400954c52079f0a2f2b711df060">GatherAxis</a>)</div>
|
|
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#a8f603c5c46d566654bd8a615d24c1089"> 1109</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#a8f603c5c46d566654bd8a615d24c1089">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#abc483c7da7747263b2f1498f98b4d96d"> 1110</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#abc483c7da7747263b2f1498f98b4d96d">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen01111" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_axis.html#adff37b05799654b1a589e334d1cd6b46"> 1111</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_gather_axis.html#adff37b05799654b1a589e334d1cd6b46">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keywordflow">return</span> axis_;</div>
|
|
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> </div>
|
|
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> </div>
|
|
<div class="foldopen" id="foldopen01119" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html"> 1119</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b">Greater</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="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b"> 1121</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b">Greater</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> </div>
|
|
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae"> 1123</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878"> 1124</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> </div>
|
|
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#a6d8267411fc4951de781f9e8e6c53aa0"> 1126</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#aa47a9f80f45daf6a405e34f6dc7c99c1"> 1127</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#aa2980e45cd2c79ebfb394012d3108a04"> 1128</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_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b">Greater</a>)</div>
|
|
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#a6877a6888614a618dc64296763ccabb1"> 1129</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater.html#af798a7cd704a2a9a8b3ecb6ef49583b0"> 1130</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> </div>
|
|
<div class="foldopen" id="foldopen01133" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html"> 1133</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527">GreaterEqual</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="l01134" name="l01134"></a><span class="lineno"> 1134</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527"> 1135</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527">GreaterEqual</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> </div>
|
|
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075"> 1137</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24"> 1138</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> </div>
|
|
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#ab0e1be93eb01b0ce7fa83e953f5e3e1d"> 1140</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#ac7346080aaaa01d52896127f383f9d20"> 1141</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#ab98045c861d2d2ffb0398c2c1d671cef"> 1142</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_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527">GreaterEqual</a>)</div>
|
|
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#a3daef8596b963026b602019bc56fc5fc"> 1143</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_greater_equal.html#a1a77c18d89ee227171ff38efef6cacf6"> 1144</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> </div>
|
|
<div class="foldopen" id="foldopen01147" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html"> 1147</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923">Hadamard</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="l01148" name="l01148"></a><span class="lineno"> 1148</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01149" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923"> 1149</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923">Hadamard</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">float</span> scale)</div>
|
|
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</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>), scale_(scale) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> </div>
|
|
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d"> 1152</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733"> 1153</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> </div>
|
|
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#a9f1a172e6246859e813002abe9b8f99c"> 1155</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#a22b9d55ae3ba5eef63505124696e712a"> 1156</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#a3df6e7e3b3b71bf50be5f1a05d0870b6"> 1157</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_hadamard.html#abe4a0ed820b126940beec519d4239923">Hadamard</a>)</div>
|
|
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#aa709166de3c493308689769579d665e8"> 1158</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> </div>
|
|
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8"> 1160</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01161" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_hadamard.html#afd67d09fde38ab3b6ba873b797f03dae"> 1161</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_hadamard.html#afd67d09fde38ab3b6ba873b797f03dae">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> <span class="keywordflow">return</span> scale_;</div>
|
|
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> </div>
|
|
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> <span class="keywordtype">float</span> scale_;</div>
|
|
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> </div>
|
|
<div class="foldopen" id="foldopen01169" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html"> 1169</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_imag.html#a284b7de34a316110fdc98e7b753372b2">Imag</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="l01170" name="l01170"></a><span class="lineno"> 1170</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#a284b7de34a316110fdc98e7b753372b2"> 1171</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_imag.html#a284b7de34a316110fdc98e7b753372b2">Imag</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> </div>
|
|
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829"> 1173</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6"> 1174</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> </div>
|
|
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#ace9906672bd88df0573653883d58ecb3"> 1176</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#ac01c5ed9b886983450ed9f049ddac55a"> 1177</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#a0c8d48e2a1474d80a314ea9b96dbaa8d"> 1178</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_imag.html#a284b7de34a316110fdc98e7b753372b2">Imag</a>)</div>
|
|
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#a51c15ae82855edebba2ba779516465f5"> 1179</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_imag.html#ad4f847483ba07d20aba5b927c2689be8"> 1180</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> </div>
|
|
<div class="foldopen" id="foldopen01183" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html"> 1183</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7">Less</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="l01184" name="l01184"></a><span class="lineno"> 1184</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7"> 1185</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7">Less</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> </div>
|
|
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef"> 1187</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917"> 1188</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> </div>
|
|
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#a5fee5956cf087d8405359121aa62ba7e"> 1190</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#af1493d566f6d940b8f674aac17f5dfce"> 1191</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#ad67e6f66d7b75546fd98dbee6b631d78"> 1192</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_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7">Less</a>)</div>
|
|
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#a7d6ed6353a0dcefebd008026dbd3cd63"> 1193</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less.html#ad7604a75b79260d263ac0c7d959cadd5"> 1194</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
|
|
<div class="foldopen" id="foldopen01197" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html"> 1197</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc">LessEqual</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="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc"> 1199</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less_equal.html#a52492a43224d47e7851beec646c27bbc">LessEqual</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> </div>
|
|
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16"> 1201</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac"> 1202</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> </div>
|
|
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a3d5df21db184f2b7620cda9da1684480"> 1204</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#addfe62d3557d216f8307bdf1cbff6a8f"> 1205</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a409842d3862113c53cbbdf7467a06950"> 1206</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_less_equal.html#a52492a43224d47e7851beec646c27bbc">LessEqual</a>)</div>
|
|
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a76ee1438cf4bd109eae4e0b3472b26af"> 1207</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_less_equal.html#a5598c700e881673098928e47b4da9ff8"> 1208</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> </div>
|
|
<div class="foldopen" id="foldopen01211" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_load.html"> 1211</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a">Load</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="l01212" name="l01212"></a><span class="lineno"> 1212</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01213" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a"> 1213</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a">Load</a>(</div>
|
|
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> std::shared_ptr<io::Reader> reader,</div>
|
|
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordtype">size_t</span> offset,</div>
|
|
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> <span class="keywordtype">bool</span> swap_endianness = <span class="keyword">false</span>)</div>
|
|
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</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>),</div>
|
|
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> reader_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(reader)),</div>
|
|
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> offset_(offset),</div>
|
|
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> swap_endianness_(swap_endianness) {</div>
|
|
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>.device == <a class="code hl_variable" href="structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616">Device::gpu</a>) {</div>
|
|
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> io_stream();</div>
|
|
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> }</div>
|
|
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> </div>
|
|
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a"> 1227</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d"> 1228</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> </div>
|
|
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_load.html#a54e08a0ca41b7c9f1a76b00c889f0bfa"> 1230</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_load.html#a3aa8a537cd90bab048df47dca1ed526a">Load</a>)</div>
|
|
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> </div>
|
|
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a>& io_stream() {</div>
|
|
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> <span class="keyword">static</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> io_stream = <a class="code hl_function" href="namespacemlx_1_1core.html#a6f7c63a9be10337b3b96d527e1db3c2f">new_stream</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd">Device::cpu</a>);</div>
|
|
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> <span class="keywordflow">return</span> io_stream;</div>
|
|
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> };</div>
|
|
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> std::shared_ptr<io::Reader> reader_;</div>
|
|
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> <span class="keywordtype">size_t</span> offset_;</div>
|
|
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> <span class="keywordtype">bool</span> swap_endianness_;</div>
|
|
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> </div>
|
|
<div class="foldopen" id="foldopen01242" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html"> 1242</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9">Log</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="l01243" name="l01243"></a><span class="lineno"> 1243</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421"> 1244</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421">Base</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251">two</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1">ten</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a491d45f7af463017c1f8cae94cd05590">e</a> };</div>
|
|
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> </div>
|
|
<div class="foldopen" id="foldopen01246" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9"> 1246</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9">Log</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_enumeration" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421">Base</a> base)</div>
|
|
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</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>), base_(base) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> </div>
|
|
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f"> 1249</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390"> 1250</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> </div>
|
|
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a007ddbcf911093231f607a8b9ed5cd49"> 1252</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#ac646d4155322c34f58183d97301e3832"> 1253</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a2fc58ea4ca744db493b947d1136d05f8"> 1254</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#ab2cae6889352ca0674f6463f8f52d77d"> 1255</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> </div>
|
|
<div class="foldopen" id="foldopen01257" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a86fca2ec3766f5d4a2e6d8ba2983c3aa"> 1257</a></span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421">Base</a> <a class="code hl_function" href="classmlx_1_1core_1_1_log.html#a86fca2ec3766f5d4a2e6d8ba2983c3aa">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> <span class="keywordflow">return</span> base_;</div>
|
|
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> </div>
|
|
<div class="foldopen" id="foldopen01261" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d"> 1261</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d">print</a>(std::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordflow">switch</span> (base_) {</div>
|
|
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a491d45f7af463017c1f8cae94cd05590">e</a>:</div>
|
|
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> os << <span class="stringliteral">"Log"</span>;</div>
|
|
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251">two</a>:</div>
|
|
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> os << <span class="stringliteral">"Log2"</span>;</div>
|
|
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1">ten</a>:</div>
|
|
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> os << <span class="stringliteral">"Log10"</span>;</div>
|
|
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> }</div>
|
|
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> </div>
|
|
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> Base base_;</div>
|
|
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> </div>
|
|
<div class="foldopen" id="foldopen01279" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html"> 1279</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a">Log1p</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="l01280" name="l01280"></a><span class="lineno"> 1280</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a"> 1281</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a">Log1p</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> </div>
|
|
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23"> 1283</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431"> 1284</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> </div>
|
|
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a7122576f95ce479926bbbbc690891f71"> 1286</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a537e44c7c993daf48698082e75e71ba2"> 1287</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a8a1569dde30440ce11ea466ccc69d2d4"> 1288</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_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a">Log1p</a>)</div>
|
|
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log1p.html#a73a02ddf0f125fff83462d97146a0a08"> 1289</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> </div>
|
|
<div class="foldopen" id="foldopen01292" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html"> 1292</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7">LogicalNot</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="l01293" name="l01293"></a><span class="lineno"> 1293</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7"> 1294</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7">LogicalNot</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> </div>
|
|
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3"> 1296</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a"> 1297</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> </div>
|
|
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#a5308a271619ee74df561b0aaf525915d"> 1299</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#a4838c483ced707cfda3d6cd24bf4667c"> 1300</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#a001ff3eca46440f0d8a287e0b98a8a2c"> 1301</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_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7">LogicalNot</a>)</div>
|
|
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#aba53675da351cd9b71a73d475b4bbe99"> 1302</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_not.html#ad3889969521c6a040aa2f26caee219b7"> 1303</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> </div>
|
|
<div class="foldopen" id="foldopen01306" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html"> 1306</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3">LogicalAnd</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="l01307" name="l01307"></a><span class="lineno"> 1307</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3"> 1308</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3">LogicalAnd</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> </div>
|
|
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3"> 1310</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f"> 1311</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> </div>
|
|
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#aacc5f6f53ffc327b7771485e3da2a4e5"> 1313</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#a78d3be71da224ea19158cf9e8c4cf434"> 1314</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#a9a5220eb56e1fd94fd879394ee5ad397"> 1315</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_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3">LogicalAnd</a>)</div>
|
|
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#a9572c35f72e0db2f7f86bbf42438a6be"> 1316</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_and.html#a266f1eaced19b8b11e273de9219cf9ed"> 1317</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> </div>
|
|
<div class="foldopen" id="foldopen01320" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html"> 1320</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918">LogicalOr</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="l01321" name="l01321"></a><span class="lineno"> 1321</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918"> 1322</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918">LogicalOr</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> </div>
|
|
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62"> 1324</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a"> 1325</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> </div>
|
|
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a6e2e77e6aaf47872b2e96b151c32daf3"> 1327</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a292de6001c551214c8152a7a5b0e6bd4"> 1328</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a6becc5fbfadde850de9857099dcd5003"> 1329</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_logical_or.html#a269c22daca1c15ad010bb860bce93918">LogicalOr</a>)</div>
|
|
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a9c8b10a5cf5c69fdc2362390197e4e71"> 1330</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_logical_or.html#a931b98fca3e19085af9fa97a43db8ced"> 1331</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> </div>
|
|
<div class="foldopen" id="foldopen01334" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html"> 1334</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a">LogAddExp</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="l01335" name="l01335"></a><span class="lineno"> 1335</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a"> 1336</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a">LogAddExp</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> </div>
|
|
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0"> 1338</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a"> 1339</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> </div>
|
|
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#a82190aa1421a9734b6e9480debffac78"> 1341</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#aea2d1d58794e86f3488219ed3fa14329"> 1342</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#a702a2eff0bd1ae7b6fb829dd0b0b11b9"> 1343</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_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a">LogAddExp</a>)</div>
|
|
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#a3cf9a202c05aff39919d713d6e2b32e4"> 1344</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_log_add_exp.html#a234f8c8ea5f5bf2fb7e371588fea98b9"> 1345</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> </div>
|
|
<div class="foldopen" id="foldopen01348" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html"> 1348</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">Matmul</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="l01349" name="l01349"></a><span class="lineno"> 1349</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7"> 1350</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">Matmul</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> </div>
|
|
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc"> 1352</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7"> 1353</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> </div>
|
|
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#a6d949d8ab0fab0395532706c174686d5"> 1355</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#a3a1c6e70bac300240760fe41a58340c2"> 1356</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#abb4a16a265a05d56a2f5d2e89d6f9dfd"> 1357</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_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">Matmul</a>)</div>
|
|
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#aab372b59eae0840fc4f75ef5719a2630"> 1358</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_matmul.html#abfabe69f428f7f125bf5665713a0eb5c"> 1359</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_matmul.html#abfabe69f428f7f125bf5665713a0eb5c">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> </div>
|
|
<div class="foldopen" id="foldopen01362" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html"> 1362</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816">Maximum</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="l01363" name="l01363"></a><span class="lineno"> 1363</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816"> 1364</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816">Maximum</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> </div>
|
|
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf"> 1366</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7"> 1367</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> </div>
|
|
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#ab664918e0d71cfec1318a9879e78c5d3"> 1369</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a25ac5d5b453e571bf7240aa8de103c39"> 1370</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a3b708a1d6b526719c62850294776f8ca"> 1371</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_maximum.html#a28389307e385efe1b2955b86b115e816">Maximum</a>)</div>
|
|
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a21fe93fbd7799682f481260aee8bdb46"> 1372</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_maximum.html#a888a69fb68726c3c18973f3ea38cfd2b"> 1373</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> </div>
|
|
<div class="foldopen" id="foldopen01376" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html"> 1376</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5">Minimum</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="l01377" name="l01377"></a><span class="lineno"> 1377</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5"> 1378</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5">Minimum</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> </div>
|
|
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e"> 1380</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba"> 1381</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> </div>
|
|
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#adab0f31acf68075a0be908d8eb882980"> 1383</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#a10acf4fef35eed7ca55d131b5ae2d038"> 1384</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#a137677bf32c626a768b732a7b8575512"> 1385</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_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5">Minimum</a>)</div>
|
|
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#a56c54ee3293cc2cd84462b9ec7ac36b4"> 1386</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_minimum.html#af921b5202ebf9716972bcf0e3056742a"> 1387</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> </div>
|
|
<div class="foldopen" id="foldopen01390" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html"> 1390</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c">Multiply</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="l01391" name="l01391"></a><span class="lineno"> 1391</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c"> 1392</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c">Multiply</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> </div>
|
|
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34"> 1394</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0"> 1395</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> </div>
|
|
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#ae7e82c8fc8cbaf4e00c27eb54fac7dbf"> 1397</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#a79f7f0bb70de2e3e41a66c96285325b4"> 1398</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#aa4f1f7af68346ce80c2636df415c9909"> 1399</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_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c">Multiply</a>)</div>
|
|
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#ae288159fa2d6d35087a85aca8eafa9b2"> 1400</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_multiply.html#adfd4c7f89660b42ab58e088b1ae19435"> 1401</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> </div>
|
|
<div class="foldopen" id="foldopen01404" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html"> 1404</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70">Negative</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="l01405" name="l01405"></a><span class="lineno"> 1405</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70"> 1406</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70">Negative</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> </div>
|
|
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b"> 1408</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b"> 1409</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> </div>
|
|
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#a1f8a6079e272f1a0599f88a1a8419cf0"> 1411</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#a7d918f9b26b8fb7b047a27d85ebab979"> 1412</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#a0d5c30e267ff6468d64f1987f9f83f91"> 1413</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_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70">Negative</a>)</div>
|
|
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#ac2a4d8159c548639d6289980c8975823"> 1414</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_negative.html#a606fb13a48d10c88707f1a2c41bee9e8"> 1415</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> </div>
|
|
<div class="foldopen" id="foldopen01418" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html"> 1418</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9">NotEqual</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="l01419" name="l01419"></a><span class="lineno"> 1419</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9"> 1420</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9">NotEqual</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span> </div>
|
|
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047"> 1422</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2"> 1423</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span> </div>
|
|
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#ab8b57932f03c8eee664bf89adeaa43b5"> 1425</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#ae2d3e5776efaefed7f4c73f679b02f17"> 1426</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#a12aa2f764880d29e627540610b63af09"> 1427</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_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9">NotEqual</a>)</div>
|
|
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#ac12fd6b3e2f2e7e4e622b59badf2c73d"> 1428</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_not_equal.html#ad1e8a577dc103d96f1ab65bf3b389d35"> 1429</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span> </div>
|
|
<div class="foldopen" id="foldopen01432" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html"> 1432</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06">NumberOfElements</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="l01433" name="l01433"></a><span class="lineno"> 1433</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01434" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06"> 1434</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06">NumberOfElements</a>(</div>
|
|
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span> std::vector<int> axes,</div>
|
|
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span> <span class="keywordtype">bool</span> inverted,</div>
|
|
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype)</div>
|
|
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</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>),</div>
|
|
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)),</div>
|
|
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> inverted_(inverted),</div>
|
|
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> dtype_(dtype) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> </div>
|
|
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f"> 1444</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5"> 1445</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> </div>
|
|
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#a977d83eae845b8bd8c0b98b48cb1c6c2"> 1447</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#aecde30826970938f3aa688979a668f52"> 1448</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_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06">NumberOfElements</a>)</div>
|
|
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f"> 1449</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01450" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#a6cdf307348ba22b3dc8f90f1fb1e0757"> 1450</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#a6cdf307348ba22b3dc8f90f1fb1e0757">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span> <span class="keywordflow">return</span> {{}};</div>
|
|
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span> }</div>
|
|
</div>
|
|
<div class="foldopen" id="foldopen01453" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_number_of_elements.html#afbfee716b4896e98bdf502ceab87ac09"> 1453</a></span> std::tuple<std::vector<int>, bool, <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_number_of_elements.html#afbfee716b4896e98bdf502ceab87ac09">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span> <span class="keywordflow">return</span> {axes_, inverted_, dtype_};</div>
|
|
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> </div>
|
|
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> <span class="keywordtype">bool</span> inverted_;</div>
|
|
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype_;</div>
|
|
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> </div>
|
|
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span> </div>
|
|
<div class="foldopen" id="foldopen01465" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html"> 1465</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#aa55090a94f574c29678d841d091cdf44">Pad</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="l01466" name="l01466"></a><span class="lineno"> 1466</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01467" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#aa55090a94f574c29678d841d091cdf44"> 1467</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#aa55090a94f574c29678d841d091cdf44">Pad</a>(</div>
|
|
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> <span class="keyword">const</span> std::vector<int>& axes,</div>
|
|
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& low_pad_size,</div>
|
|
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& high_pad_size)</div>
|
|
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</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>),</div>
|
|
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span> axes_(axes),</div>
|
|
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span> low_pad_size_(low_pad_size),</div>
|
|
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span> high_pad_size_(high_pad_size) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> </div>
|
|
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb"> 1477</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153"> 1478</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> </div>
|
|
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#a85658812a0f3275ba3eb74b7c75686cf"> 1480</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#a6e43a42032ef11497e8d91290574ec72"> 1481</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#af87754daaf51f6a6cf8bd4949ca1e70a"> 1482</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_pad.html#aa55090a94f574c29678d841d091cdf44">Pad</a>)</div>
|
|
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b"> 1483</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01484" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_pad.html#a00a7cff2ae640f45b43f62cc25d6346c"> 1484</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_pad.html#a00a7cff2ae640f45b43f62cc25d6346c">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> <span class="keywordflow">return</span> std::make_tuple(axes_, low_pad_size_, high_pad_size_);</div>
|
|
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> </div>
|
|
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> low_pad_size_;</div>
|
|
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> high_pad_size_;</div>
|
|
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> </div>
|
|
<div class="foldopen" id="foldopen01494" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html"> 1494</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#a7b82ca3895b6654308fac566b277ac0d">Partition</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="l01495" name="l01495"></a><span class="lineno"> 1495</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01496" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#a7b82ca3895b6654308fac566b277ac0d"> 1496</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#a7b82ca3895b6654308fac566b277ac0d">Partition</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">int</span> kth, <span class="keywordtype">int</span> axis)</div>
|
|
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</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>), kth_(kth), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> </div>
|
|
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8"> 1499</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef"> 1500</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span> </div>
|
|
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#aa0cc55e4d4d2cb5d129d32832321df2c"> 1502</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#a310f569a163958940ed02cf52079746a"> 1503</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#ab5c7aa4fed325475b33d4004649f0dc0"> 1504</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_partition.html#a7b82ca3895b6654308fac566b277ac0d">Partition</a>)</div>
|
|
<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#a5e62aa0109e53fb4acb861ef39787b4a"> 1505</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8"> 1506</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01507" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_partition.html#adde13e40924c016473864119465cad4b"> 1507</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_partition.html#adde13e40924c016473864119465cad4b">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> <span class="keywordflow">return</span> std::make_pair(kth_, axis_);</div>
|
|
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> </div>
|
|
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span> <span class="keywordtype">int</span> kth_;</div>
|
|
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> </div>
|
|
<div class="foldopen" id="foldopen01516" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html"> 1516</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_power.html#a7bc6c64179b7a2aef56fe1dafb6459b2">Power</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="l01517" name="l01517"></a><span class="lineno"> 1517</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a7bc6c64179b7a2aef56fe1dafb6459b2"> 1518</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_power.html#a7bc6c64179b7a2aef56fe1dafb6459b2">Power</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span> </div>
|
|
<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206"> 1520</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11"> 1521</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span> </div>
|
|
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a5e22749592413a9adbdc877b03b87c8f"> 1523</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a3e78b06453faa4fd149fd19c0e7a300a"> 1524</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a33e2d7ff078426fe66ea2370ceb5af60"> 1525</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_power.html#a7bc6c64179b7a2aef56fe1dafb6459b2">Power</a>)</div>
|
|
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#a76b4ec9d1ff07f06189e414480453d68"> 1526</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_power.html#af23ed795bdcdc4c3f91f0d4c1bb1d928"> 1527</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> </div>
|
|
<div class="foldopen" id="foldopen01530" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html"> 1530</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c">QuantizedMatmul</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="l01531" name="l01531"></a><span class="lineno"> 1531</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01532" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c"> 1532</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c">QuantizedMatmul</a>(</div>
|
|
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> <span class="keywordtype">int</span> group_size,</div>
|
|
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> <span class="keywordtype">int</span> bits,</div>
|
|
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>)</div>
|
|
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</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>),</div>
|
|
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> group_size_(group_size),</div>
|
|
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> bits_(bits),</div>
|
|
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span> transpose_(<a class="code hl_function" href="group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span> </div>
|
|
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3"> 1542</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3"> 1543</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span> </div>
|
|
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#a3434394140177b285f971c9ffe7e8763"> 1545</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#ae51fdd0b81dd26c6687577567c126e23"> 1546</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#aaef8c96d4d40b4fa08ced540d341a4db"> 1547</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_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c">QuantizedMatmul</a>)</div>
|
|
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1"> 1548</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#a7d57a31d41c58e1bd88ffe9c6b0dbf52"> 1549</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#a7d57a31d41c58e1bd88ffe9c6b0dbf52">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen01550" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_quantized_matmul.html#ad83bfd32fda988c29e5ca277a84c0655"> 1550</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_quantized_matmul.html#ad83bfd32fda988c29e5ca277a84c0655">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> <span class="keywordflow">return</span> std::make_tuple(group_size_, bits_, transpose_);</div>
|
|
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span> </div>
|
|
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span> <span class="keywordtype">int</span> group_size_;</div>
|
|
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> <span class="keywordtype">int</span> bits_;</div>
|
|
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> <span class="keywordtype">bool</span> transpose_;</div>
|
|
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span> </div>
|
|
<div class="foldopen" id="foldopen01560" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html"> 1560</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360">GatherQMM</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="l01561" name="l01561"></a><span class="lineno"> 1561</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01562" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360"> 1562</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360">GatherQMM</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">int</span> group_size, <span class="keywordtype">int</span> bits, <span class="keywordtype">bool</span> <a class="code hl_function" href="group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>)</div>
|
|
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</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>),</div>
|
|
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> group_size_(group_size),</div>
|
|
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span> bits_(bits),</div>
|
|
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> transpose_(<a class="code hl_function" href="group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> </div>
|
|
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c"> 1568</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887"> 1569</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> </div>
|
|
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a13ce5e138ebddb8780a034452f68892f"> 1571</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#adc579058752b927c71b45a962d4869e0"> 1572</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a53c3fa7beb51ce2e1c2da28633406fe0"> 1573</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_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360">GatherQMM</a>)</div>
|
|
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11"> 1574</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01575" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_gather_q_m_m.html#a60c908bc836f930bb33f60b3e9db43af"> 1575</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_gather_q_m_m.html#a60c908bc836f930bb33f60b3e9db43af">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> <span class="keywordflow">return</span> std::make_tuple(group_size_, bits_, transpose_);</div>
|
|
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> </div>
|
|
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordtype">int</span> group_size_;</div>
|
|
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> <span class="keywordtype">int</span> bits_;</div>
|
|
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> <span class="keywordtype">bool</span> transpose_;</div>
|
|
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> </div>
|
|
<div class="foldopen" id="foldopen01585" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html"> 1585</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#acd79c5ea2d67132c98d00fa927f08e26">RandomBits</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="l01586" name="l01586"></a><span class="lineno"> 1586</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01587" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#acd79c5ea2d67132c98d00fa927f08e26"> 1587</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#acd79c5ea2d67132c98d00fa927f08e26">RandomBits</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="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape, <span class="keywordtype">int</span> width)</div>
|
|
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</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>), shape_(shape), width_(width) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span> </div>
|
|
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2"> 1590</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a"> 1591</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span> </div>
|
|
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a0dc12f053c6492f934bc18031412c415"> 1593</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a8a5593c34fd868d94b36a8ced1390271"> 1594</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_random_bits.html#acd79c5ea2d67132c98d00fa927f08e26">RandomBits</a>)</div>
|
|
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6"> 1595</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01596" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_random_bits.html#a75a34d7541a1c124710dc4d0ec2dfa60"> 1596</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>, <span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_random_bits.html#a75a34d7541a1c124710dc4d0ec2dfa60">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span> <span class="keywordflow">return</span> {shape_, width_};</div>
|
|
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span> </div>
|
|
<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
|
<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"> 1602</span> <span class="keywordtype">int</span> width_;</div>
|
|
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span> </div>
|
|
<div class="foldopen" id="foldopen01605" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html"> 1605</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_real.html#acd4480e3f0834d70ff6b5f1ecef17892">Real</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="l01606" name="l01606"></a><span class="lineno"> 1606</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#acd4480e3f0834d70ff6b5f1ecef17892"> 1607</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_real.html#acd4480e3f0834d70ff6b5f1ecef17892">Real</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span> </div>
|
|
<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934"> 1609</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2"> 1610</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01611" name="l01611"></a><span class="lineno"> 1611</span> </div>
|
|
<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a07fbbefb6a1bc1ebd3985b24c36693b6"> 1612</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#adff418a54970e2344bd3c2885aae5526"> 1613</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a740a0dfb54c2a4467a0a59f11fe69e1b"> 1614</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_real.html#acd4480e3f0834d70ff6b5f1ecef17892">Real</a>)</div>
|
|
<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a6d9bed396862a9e9d6abfbdcd8d8d239"> 1615</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01616" name="l01616"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_real.html#a75999bd0b97d97a5675b9cdbab27dcff"> 1616</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span> </div>
|
|
<div class="foldopen" id="foldopen01619" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html"> 1619</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aa5a5d520b6ec6c8d9ba9d79808e36312">Reshape</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="l01620" name="l01620"></a><span class="lineno"> 1620</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01621" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#aa5a5d520b6ec6c8d9ba9d79808e36312"> 1621</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aa5a5d520b6ec6c8d9ba9d79808e36312">Reshape</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="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape)</div>
|
|
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</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>), shape_(shape) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span> </div>
|
|
<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f"> 1624</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059"> 1625</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span> </div>
|
|
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#ae239dd3c6cab147e4af572dc58204f9d"> 1627</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#ab8fc28748991017cc3e29f93c91087a5"> 1628</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#a0f2323d5d67ece0eb25ecff565b21862"> 1629</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_reshape.html#aa5a5d520b6ec6c8d9ba9d79808e36312">Reshape</a>)</div>
|
|
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3"> 1630</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01631" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#aa8ad5958aac8723dd6ce49820eaba029"> 1631</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aa8ad5958aac8723dd6ce49820eaba029">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> <span class="keywordflow">return</span> shape_;</div>
|
|
<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#aa15020d7d844d714d42bc60b44aeefc1"> 1634</a></span> <span class="keyword">static</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aa15020d7d844d714d42bc60b44aeefc1">output_shape</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& input, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape);</div>
|
|
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reshape.html#aed3a83606d6917b2c344607101a2c43d"> 1635</a></span> std::vector<Shape> <a class="code hl_function" href="classmlx_1_1core_1_1_reshape.html#aed3a83606d6917b2c344607101a2c43d">output_shapes</a>(<span class="keyword">const</span> std::vector<array>& inputs) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span> </div>
|
|
<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
|
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span> </div>
|
|
<div class="foldopen" id="foldopen01641" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01641" name="l01641"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html"> 1641</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#a055368c1d036fb953a23ef230e33dcbf">Reduce</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="l01642" name="l01642"></a><span class="lineno"> 1642</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93"> 1643</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9">ReduceType</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93">And</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a2e53e38f8b906ed4def9a5653aeb51fe">Or</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd">Sum</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9ac5b077bfec55fe2b141b197dfa00ecf7">Prod</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418">Min</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a3d11c500ea4f7f639e20dd0755d39260">Max</a> };</div>
|
|
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> </div>
|
|
<div class="foldopen" id="foldopen01645" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#a055368c1d036fb953a23ef230e33dcbf"> 1645</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#a055368c1d036fb953a23ef230e33dcbf">Reduce</a>(</div>
|
|
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9">ReduceType</a> reduce_type,</div>
|
|
<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"> 1648</span> <span class="keyword">const</span> std::vector<int>& axes)</div>
|
|
<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</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>), reduce_type_(reduce_type), axes_(axes) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span> </div>
|
|
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa"> 1651</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f"> 1652</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span> </div>
|
|
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#abab1b5aa01ccad44f213f510c3596b38"> 1654</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> </div>
|
|
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#a684883d2a96315f548ca769510e28e4e"> 1656</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#a684883d2a96315f548ca769510e28e4e">vjp</a>(</div>
|
|
<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& primals,</div>
|
|
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& cotangents,</div>
|
|
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>& argnums,</div>
|
|
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& outputs) override;</div>
|
|
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> </div>
|
|
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#aaf3da1c98cdf530803118b382c5f58bc"> 1662</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#aaf3da1c98cdf530803118b382c5f58bc">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> </div>
|
|
<div class="foldopen" id="foldopen01664" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd"> 1664</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> <span class="keywordflow">switch</span> (reduce_type_) {</div>
|
|
<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93">And</a>:</div>
|
|
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> os << <span class="stringliteral">"And"</span>;</div>
|
|
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a2e53e38f8b906ed4def9a5653aeb51fe">Or</a>:</div>
|
|
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> os << <span class="stringliteral">"Or"</span>;</div>
|
|
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd">Sum</a>:</div>
|
|
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> os << <span class="stringliteral">"Sum"</span>;</div>
|
|
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9ac5b077bfec55fe2b141b197dfa00ecf7">Prod</a>:</div>
|
|
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span> os << <span class="stringliteral">"Prod"</span>;</div>
|
|
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418">Min</a>:</div>
|
|
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span> os << <span class="stringliteral">"Min"</span>;</div>
|
|
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a3d11c500ea4f7f639e20dd0755d39260">Max</a>:</div>
|
|
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> os << <span class="stringliteral">"Max"</span>;</div>
|
|
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span> }</div>
|
|
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e"> 1686</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e">is_equivalent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) <span class="keyword">const override</span>;</div>
|
|
<div class="foldopen" id="foldopen01687" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_reduce.html#afca1398c042a3b1ca9a9a2e40fe62367"> 1687</a></span> std::pair<ReduceType, std::vector<int>> <a class="code hl_function" href="classmlx_1_1core_1_1_reduce.html#afca1398c042a3b1ca9a9a2e40fe62367">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span> <span class="keywordflow">return</span> {reduce_type_, axes_};</div>
|
|
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span> </div>
|
|
<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span> ReduceType reduce_type_;</div>
|
|
<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span> </div>
|
|
<div class="foldopen" id="foldopen01696" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html"> 1696</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde">Round</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="l01697" name="l01697"></a><span class="lineno"> 1697</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde"> 1698</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde">Round</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span> </div>
|
|
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007"> 1700</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec"> 1701</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span> </div>
|
|
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#a6fad8799a7982e1ccbe05be7cc38a7fd"> 1703</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#a032075a7d0dde2dba6189636d216c5e7"> 1704</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#af0dfe8943109c936b35ab0082f566f72"> 1705</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_round.html#a1327a359b2aed91f576145a0e70d1dde">Round</a>)</div>
|
|
<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#aeb3d8607bbba7345a3142d4cbd4e6927"> 1706</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_round.html#a61821399e177e142723fc986e437d459"> 1707</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</span> </div>
|
|
<div class="foldopen" id="foldopen01710" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html"> 1710</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#ac93e8f9c6771de825d2186ef34fa7087">Scan</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="l01711" name="l01711"></a><span class="lineno"> 1711</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d"> 1712</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1">ReduceType</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d">Max</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898">Min</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36">Sum</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a33edce755ed1a74632c302ad93a14789">Prod</a> };</div>
|
|
<div class="line"><a id="l01713" name="l01713"></a><span class="lineno"> 1713</span> </div>
|
|
<div class="foldopen" id="foldopen01714" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#ac93e8f9c6771de825d2186ef34fa7087"> 1714</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#ac93e8f9c6771de825d2186ef34fa7087">Scan</a>(</div>
|
|
<div class="line"><a id="l01715" name="l01715"></a><span class="lineno"> 1715</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"> 1716</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1">ReduceType</a> reduce_type,</div>
|
|
<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</span> <span class="keywordtype">int</span> axis,</div>
|
|
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span> <span class="keywordtype">bool</span> reverse,</div>
|
|
<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span> <span class="keywordtype">bool</span> inclusive)</div>
|
|
<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</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>),</div>
|
|
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> reduce_type_(reduce_type),</div>
|
|
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> axis_(axis),</div>
|
|
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span> reverse_(reverse),</div>
|
|
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span> inclusive_(inclusive) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span> </div>
|
|
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b"> 1726</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde"> 1727</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span> </div>
|
|
<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a297c7cc89c9bf9d186ebdebb634c7804"> 1729</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a6f9c862f4fbc7eaf430a361cdd8933ee"> 1730</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>();</div>
|
|
<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span> </div>
|
|
<div class="foldopen" id="foldopen01732" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22"> 1732</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span> os << <span class="stringliteral">"Cum"</span>;</div>
|
|
<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span> <span class="keywordflow">switch</span> (reduce_type_) {</div>
|
|
<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36">Sum</a>:</div>
|
|
<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span> os << <span class="stringliteral">"Sum"</span>;</div>
|
|
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a33edce755ed1a74632c302ad93a14789">Prod</a>:</div>
|
|
<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span> os << <span class="stringliteral">"Prod"</span>;</div>
|
|
<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"> 1740</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898">Min</a>:</div>
|
|
<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span> os << <span class="stringliteral">"Min"</span>;</div>
|
|
<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d">Max</a>:</div>
|
|
<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span> os << <span class="stringliteral">"Max"</span>;</div>
|
|
<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span> }</div>
|
|
<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"> 1748</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6"> 1749</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6">is_equivalent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) <span class="keyword">const override</span>;</div>
|
|
<div class="foldopen" id="foldopen01750" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scan.html#a7249ca4c3316b1b1248df32c71fee0ea"> 1750</a></span> <span class="keyword">auto</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scan.html#a7249ca4c3316b1b1248df32c71fee0ea">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span> <span class="keywordflow">return</span> std::make_tuple(reduce_type_, axis_, reverse_, inclusive_);</div>
|
|
<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span> </div>
|
|
<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span> ReduceType reduce_type_;</div>
|
|
<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span> <span class="keywordtype">bool</span> reverse_;</div>
|
|
<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span> <span class="keywordtype">bool</span> inclusive_;</div>
|
|
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span> </div>
|
|
<div class="foldopen" id="foldopen01761" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html"> 1761</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3">Scatter</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="l01762" name="l01762"></a><span class="lineno"> 1762</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16"> 1763</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613c">ReduceType</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16">Max</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf">Min</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f">Sum</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca5e43e8ffd1f5ba49826e2e7ac3450466">Prod</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca87a6a1927de175b71d7d0b5c11b8665c">None</a> };</div>
|
|
<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span> </div>
|
|
<div class="foldopen" id="foldopen01765" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3"> 1765</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3">Scatter</a>(</div>
|
|
<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613c">ReduceType</a> reduce_type,</div>
|
|
<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span> <span class="keyword">const</span> std::vector<int>& axes)</div>
|
|
<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</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>), reduce_type_(reduce_type), axes_(axes) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span> </div>
|
|
<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97"> 1771</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678"> 1772</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> </div>
|
|
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a696c38b373a7a7c71bc112bd1117e322"> 1774</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>();</div>
|
|
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a270fa8ccf36ce4bbbc23875139223934"> 1775</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>();</div>
|
|
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span> </div>
|
|
<div class="foldopen" id="foldopen01777" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa"> 1777</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa">print</a>(std::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> os << <span class="stringliteral">"Scatter"</span>;</div>
|
|
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> <span class="keywordflow">switch</span> (reduce_type_) {</div>
|
|
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f">Sum</a>:</div>
|
|
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> os << <span class="stringliteral">" Sum"</span>;</div>
|
|
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca5e43e8ffd1f5ba49826e2e7ac3450466">Prod</a>:</div>
|
|
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> os << <span class="stringliteral">" Prod"</span>;</div>
|
|
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf">Min</a>:</div>
|
|
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span> os << <span class="stringliteral">" Min"</span>;</div>
|
|
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16">Max</a>:</div>
|
|
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span> os << <span class="stringliteral">" Max"</span>;</div>
|
|
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca87a6a1927de175b71d7d0b5c11b8665c">None</a>:</div>
|
|
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span> }</div>
|
|
<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f"> 1796</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f">is_equivalent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) <span class="keyword">const override</span>;</div>
|
|
<div class="foldopen" id="foldopen01797" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter.html#a50a65033dc2a1cc84bf529ba718c9c60"> 1797</a></span> std::pair<ReduceType, std::vector<int>> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter.html#a50a65033dc2a1cc84bf529ba718c9c60">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> <span class="keywordflow">return</span> {reduce_type_, axes_};</div>
|
|
<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span> </div>
|
|
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span> ReduceType reduce_type_;</div>
|
|
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> </div>
|
|
<div class="foldopen" id="foldopen01806" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html"> 1806</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#a7365a2c5fddb1c39509998598de411db">ScatterAxis</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="l01807" name="l01807"></a><span class="lineno"> 1807</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a93146c4280504f1f67459e6ae0d25c38"> 1808</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2">ReduceType</a> { <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a702b8cfdaf7fe3e063873595ff0508f2">Sum</a>, <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a93146c4280504f1f67459e6ae0d25c38">None</a> };</div>
|
|
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span> </div>
|
|
<div class="foldopen" id="foldopen01810" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#a7365a2c5fddb1c39509998598de411db"> 1810</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#a7365a2c5fddb1c39509998598de411db">ScatterAxis</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_enumeration" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2">ReduceType</a> reduce_type, <span class="keywordtype">int</span> axis)</div>
|
|
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</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>), reduce_type_(reduce_type), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> </div>
|
|
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#abf9d24565abdd7e1034daacac603cc54"> 1813</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#abf9d24565abdd7e1034daacac603cc54">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#a715c3b959dc904faefb16edbb11f29d7"> 1814</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#a715c3b959dc904faefb16edbb11f29d7">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> </div>
|
|
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#ae78709d1be122618f210ff595d888df8"> 1816</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#a77129b601e5ca9d97669a8b0fdc69805"> 1817</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> </div>
|
|
<div class="foldopen" id="foldopen01819" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#a657843d4d9846ecd56e35e066986eb96"> 1819</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#a657843d4d9846ecd56e35e066986eb96">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span> os << <span class="stringliteral">"ScatterAxis"</span>;</div>
|
|
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> <span class="keywordflow">switch</span> (reduce_type_) {</div>
|
|
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a702b8cfdaf7fe3e063873595ff0508f2">Sum</a>:</div>
|
|
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> os << <span class="stringliteral">" Sum"</span>;</div>
|
|
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a93146c4280504f1f67459e6ae0d25c38">None</a>:</div>
|
|
<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span> }</div>
|
|
<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> </div>
|
|
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#af511c39926d5b85ca59558d64e0608fb"> 1830</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#af511c39926d5b85ca59558d64e0608fb">is_equivalent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#af9688c010e1abee9b7b3788f11d91cc5"> 1831</a></span> std::vector<Shape> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#af9688c010e1abee9b7b3788f11d91cc5">output_shapes</a>(<span class="keyword">const</span> std::vector<array>& inputs) <span class="keyword">override</span>;</div>
|
|
<div class="foldopen" id="foldopen01832" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_scatter_axis.html#a1a0125be908a1d80875236c817f34495"> 1832</a></span> std::pair<ReduceType, int> <a class="code hl_function" href="classmlx_1_1core_1_1_scatter_axis.html#a1a0125be908a1d80875236c817f34495">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> <span class="keywordflow">return</span> {reduce_type_, axis_};</div>
|
|
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> </div>
|
|
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> ReduceType reduce_type_;</div>
|
|
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> </div>
|
|
<div class="foldopen" id="foldopen01841" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html"> 1841</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b">Sigmoid</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="l01842" name="l01842"></a><span class="lineno"> 1842</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b"> 1843</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b">Sigmoid</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> </div>
|
|
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255"> 1845</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca"> 1846</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span> </div>
|
|
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#a12712c23037e38192cbccd2d4b14cc85"> 1848</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#a62ca1c440896e32958c77af3340847db"> 1849</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#ad4cd19938e5159754aa7516f405580c2"> 1850</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_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b">Sigmoid</a>)</div>
|
|
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#a04814ba1b0edf8299d5ca1bcb8749d8e"> 1851</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sigmoid.html#aff024a3309584724c9842f172a4e440b"> 1852</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span> </div>
|
|
<div class="foldopen" id="foldopen01855" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html"> 1855</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763">Sign</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="l01856" name="l01856"></a><span class="lineno"> 1856</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763"> 1857</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763">Sign</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span> </div>
|
|
<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97"> 1859</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b"> 1860</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span> </div>
|
|
<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#aa7296045907015b4e0ae8a93e5e6e295"> 1862</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#a957992c7aa0e86cf06f861a94372086b"> 1863</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#a2aa0720fe0a6d2408eb43c25d3d45b0a"> 1864</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_sign.html#afe951e50907bc23a601ec5fa9eae5763">Sign</a>)</div>
|
|
<div class="line"><a id="l01865" name="l01865"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#a8c0934acbcc4b146e5aacd35a8c445bb"> 1865</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01866" name="l01866"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sign.html#a2260f2e8e081010192eb8a6f90acde6e"> 1866</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01867" name="l01867"></a><span class="lineno"> 1867</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span> </div>
|
|
<div class="foldopen" id="foldopen01869" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01869" name="l01869"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html"> 1869</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea">Sin</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="l01870" name="l01870"></a><span class="lineno"> 1870</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01871" name="l01871"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea"> 1871</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea">Sin</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01872" name="l01872"></a><span class="lineno"> 1872</span> </div>
|
|
<div class="line"><a id="l01873" name="l01873"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5"> 1873</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01874" name="l01874"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e"> 1874</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"> 1875</span> </div>
|
|
<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#a45533996f3d72d9dd97d4c61cd684fba"> 1876</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#af662d10180967399820496477ff050de"> 1877</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#a73b31005551015897f15c00e8b0222e4"> 1878</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_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea">Sin</a>)</div>
|
|
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#af00b0e5516f884996ce7a97e6c1e3e6a"> 1879</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sin.html#abdd433ecbb54898161b43aa9e14ec7f1"> 1880</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span> </div>
|
|
<div class="foldopen" id="foldopen01883" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html"> 1883</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96">Sinh</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="l01884" name="l01884"></a><span class="lineno"> 1884</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96"> 1885</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96">Sinh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span> </div>
|
|
<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd"> 1887</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75"> 1888</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span> </div>
|
|
<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#ae171df22bc34c32e31b8135dc4caa788"> 1890</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#a86e2b37823daf20a4c74c9f273215f9c"> 1891</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#a5b4753d52e80799d4fea0b9172d25a77"> 1892</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_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96">Sinh</a>)</div>
|
|
<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#adcb1878996fd4902cd550042dd6ad70d"> 1893</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sinh.html#ae04d8f6175c691a8f0d2a9fdd15af0ad"> 1894</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span> </div>
|
|
<div class="foldopen" id="foldopen01897" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html"> 1897</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#a3aa025acbf4a9ca9e030a1e6bda102f7">Slice</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="l01898" name="l01898"></a><span class="lineno"> 1898</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01899" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a3aa025acbf4a9ca9e030a1e6bda102f7"> 1899</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#a3aa025acbf4a9ca9e030a1e6bda102f7">Slice</a>(</div>
|
|
<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"> 1901</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& start_indices,</div>
|
|
<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& end_indices,</div>
|
|
<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& strides)</div>
|
|
<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</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>),</div>
|
|
<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span> start_indices_(start_indices),</div>
|
|
<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span> end_indices_(end_indices),</div>
|
|
<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span> strides_(strides) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span> </div>
|
|
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2"> 1909</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a"> 1910</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span> </div>
|
|
<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#ae33583b0db22fcfeae34dfe1c0e3eaa2"> 1912</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a8288324045ab21d6c97b1695ce86ef36"> 1913</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a50851148948d924b71817cfbd4401504"> 1914</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_slice.html#a3aa025acbf4a9ca9e030a1e6bda102f7">Slice</a>)</div>
|
|
<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0"> 1915</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen01916" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice.html#a069dafc62bf71e3ebc0bd99d96ec23be"> 1916</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_slice.html#a069dafc62bf71e3ebc0bd99d96ec23be">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span> <span class="keywordflow">return</span> std::make_tuple(start_indices_, end_indices_, strides_);</div>
|
|
<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span> </div>
|
|
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start_indices_;</div>
|
|
<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> end_indices_;</div>
|
|
<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> strides_;</div>
|
|
<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span> </div>
|
|
<div class="foldopen" id="foldopen01926" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html"> 1926</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#a63a49264b18340f2bc442c081a7b4c7a">SliceUpdate</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="l01927" name="l01927"></a><span class="lineno"> 1927</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01928" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#a63a49264b18340f2bc442c081a7b4c7a"> 1928</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#a63a49264b18340f2bc442c081a7b4c7a">SliceUpdate</a>(</div>
|
|
<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
|
<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& start_indices,</div>
|
|
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& end_indices,</div>
|
|
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& strides)</div>
|
|
<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</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>),</div>
|
|
<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span> start_indices_(start_indices),</div>
|
|
<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span> end_indices_(end_indices),</div>
|
|
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span> strides_(strides) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"> 1937</span> </div>
|
|
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b"> 1938</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b"> 1939</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span> </div>
|
|
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#adbf1c76de6ab2f986758530d351d6fa3"> 1941</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#a0ce3248cc61dae2b51d7aa8ee4197611"> 1942</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01943" name="l01943"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#a751eefb9922c56479b4b0de2ad45439b"> 1943</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_slice_update.html#a63a49264b18340f2bc442c081a7b4c7a">SliceUpdate</a>)</div>
|
|
<div class="line"><a id="l01944" name="l01944"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119"> 1944</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01945" name="l01945"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#abb6376f13c4269bd9e739e131893da53"> 1945</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="foldopen" id="foldopen01946" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01946" name="l01946"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_slice_update.html#aac5156a19209274b7de1dff231ef25fd"> 1946</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_slice_update.html#aac5156a19209274b7de1dff231ef25fd">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01947" name="l01947"></a><span class="lineno"> 1947</span> <span class="keywordflow">return</span> std::make_tuple(start_indices_, end_indices_, strides_);</div>
|
|
<div class="line"><a id="l01948" name="l01948"></a><span class="lineno"> 1948</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span> </div>
|
|
<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start_indices_;</div>
|
|
<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"> 1952</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> end_indices_;</div>
|
|
<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> strides_;</div>
|
|
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span> </div>
|
|
<div class="foldopen" id="foldopen01956" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html"> 1956</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#a97f23f7d45b69219dee1a208d9a3063b">DynamicSlice</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="l01957" name="l01957"></a><span class="lineno"> 1957</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01958" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a97f23f7d45b69219dee1a208d9a3063b"> 1958</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#a97f23f7d45b69219dee1a208d9a3063b">DynamicSlice</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::vector<int> axes, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> slice_size)</div>
|
|
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</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>),</div>
|
|
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span> axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)),</div>
|
|
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> slice_size_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(slice_size)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> </div>
|
|
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a4e8c22c24a587ea0648ce89f461ed1ee"> 1963</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#a4e8c22c24a587ea0648ce89f461ed1ee">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#ab0a2e31c03f02a4f25700e240cf18e3e"> 1964</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#ab0a2e31c03f02a4f25700e240cf18e3e">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span> </div>
|
|
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a825a6d4d1499b287525462854b841ef2"> 1966</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#acd0d2d6d83d4112e9e6fdd9ca8072ac3"> 1967</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a421283744fe5554ac9a8288cf47edeab"> 1968</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_dynamic_slice.html#a97f23f7d45b69219dee1a208d9a3063b">DynamicSlice</a>)</div>
|
|
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a0325271def8d9ea9ed21eb27e51994b4"> 1969</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#a0325271def8d9ea9ed21eb27e51994b4">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#a920dc4d1ee4976065e6d91fe3ecfbbf3"> 1970</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#a920dc4d1ee4976065e6d91fe3ecfbbf3">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen01971" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice.html#aec9084e603d7562f3a75c5fc32918581"> 1971</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice.html#aec9084e603d7562f3a75c5fc32918581">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> <span class="keywordflow">return</span> std::make_pair(axes_, slice_size_);</div>
|
|
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> </div>
|
|
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> slice_size_;</div>
|
|
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> </div>
|
|
<div class="foldopen" id="foldopen01980" data-start="{" data-end="};">
|
|
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html"> 1980</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a16bbd8d756598cf620e3b3c95dd23213">DynamicSliceUpdate</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="l01981" name="l01981"></a><span class="lineno"> 1981</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen01982" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a16bbd8d756598cf620e3b3c95dd23213"> 1982</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a16bbd8d756598cf620e3b3c95dd23213">DynamicSliceUpdate</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::vector<int> axes)</div>
|
|
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</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>), axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span> </div>
|
|
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a379185914db0326a5d4839839fe4fc83"> 1985</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a379185914db0326a5d4839839fe4fc83">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a249dab28690c45203c3995698de0cab7"> 1986</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a249dab28690c45203c3995698de0cab7">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> </div>
|
|
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a750fb3548d8f3a5c6f4e54958649936f"> 1988</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#ad1eae28869ebc2ecad87a9a01e314d56"> 1989</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a3669f4d939ba36256c43143b603eb12b"> 1990</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_dynamic_slice_update.html#a16bbd8d756598cf620e3b3c95dd23213">DynamicSliceUpdate</a>)</div>
|
|
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#ae6292d2b1f3221a7c8ef6b77cb466481"> 1991</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#ae6292d2b1f3221a7c8ef6b77cb466481">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a804c03c745fc563e209a7bfb3d425a91"> 1992</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="foldopen" id="foldopen01993" data-start="{" data-end="}">
|
|
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a0b0b2a0e4d97305fd6f3c635fcdccd76"> 1993</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_dynamic_slice_update.html#a0b0b2a0e4d97305fd6f3c635fcdccd76">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span> <span class="keywordflow">return</span> axes_;</div>
|
|
<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span> </div>
|
|
<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span> </div>
|
|
<div class="foldopen" id="foldopen02001" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html"> 2001</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb">Softmax</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="l02002" name="l02002"></a><span class="lineno"> 2002</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02003" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb"> 2003</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb">Softmax</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> precise)</div>
|
|
<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</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>), precise_(precise) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span> </div>
|
|
<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79"> 2006</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af"> 2007</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span> </div>
|
|
<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#ad22d3dcc71054d3dba529cf2dc981e19"> 2009</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#af96172634a24332b0fc8d7ca7e73f19f"> 2010</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#aa783610ef6b82b92681e78fc99412d83"> 2011</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_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb">Softmax</a>)</div>
|
|
<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#a1a798a4dcd62486362d4b58582357490"> 2012</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span> </div>
|
|
<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728"> 2014</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02015" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_softmax.html#adf665f7c292e84f56c630016b75427f3"> 2015</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_softmax.html#adf665f7c292e84f56c630016b75427f3">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span> <span class="keywordflow">return</span> precise_;</div>
|
|
<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span> </div>
|
|
<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span> <span class="keywordtype">bool</span> precise_;</div>
|
|
<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> </div>
|
|
<div class="foldopen" id="foldopen02023" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html"> 2023</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44">Sort</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="l02024" name="l02024"></a><span class="lineno"> 2024</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02025" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44"> 2025</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44">Sort</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">int</span> axis)</div>
|
|
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</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>), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span> </div>
|
|
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd"> 2028</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382"> 2029</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span> </div>
|
|
<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#abfabb9e625cc0cb9335c7454ed27505c"> 2031</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#af113ac983473433eec851c8fddfcba62"> 2032</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#ada81b9343f80958174eba708452927a2"> 2033</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_sort.html#a62943032dbd72e85ceb9b4b7211f4a44">Sort</a>)</div>
|
|
<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#acc0a3f078b3f4c83e6e1137cb81ee62c"> 2034</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511"> 2035</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02036" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02036" name="l02036"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sort.html#a5ab15d1a89efd8661887c805c35fc617"> 2036</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_sort.html#a5ab15d1a89efd8661887c805c35fc617">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span> <span class="keywordflow">return</span> axis_;</div>
|
|
<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span> </div>
|
|
<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span> </div>
|
|
<div class="foldopen" id="foldopen02044" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html"> 2044</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_split.html#ad3f4ed34b85c73683bad5d530309342f">Split</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="l02045" name="l02045"></a><span class="lineno"> 2045</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02046" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#ad3f4ed34b85c73683bad5d530309342f"> 2046</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_split.html#ad3f4ed34b85c73683bad5d530309342f">Split</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="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& indices, <span class="keywordtype">int</span> axis)</div>
|
|
<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</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>), indices_(indices), axis_(axis) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span> </div>
|
|
<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4"> 2049</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df"> 2051</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</span> </div>
|
|
<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#ab7c40e02a842e83bdb4698608472c7a6"> 2054</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#ab8a8d30fd1ebf0891f41f3c32eabe282"> 2055</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#ad0c31fe5972643cc75fde10445fc47f2"> 2056</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_split.html#ad3f4ed34b85c73683bad5d530309342f">Split</a>)</div>
|
|
<div class="line"><a id="l02057" name="l02057"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345"> 2057</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345">is_equivalent</a>(const <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02058" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_split.html#a915156cde0448ec26776e329004b1a92"> 2058</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::pair<<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>, <span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_split.html#a915156cde0448ec26776e329004b1a92">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span> <span class="keywordflow">return</span> {indices_, axis_};</div>
|
|
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span> </div>
|
|
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs);</div>
|
|
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> </div>
|
|
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> indices_;</div>
|
|
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span> </div>
|
|
<div class="foldopen" id="foldopen02069" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html"> 2069</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4">Square</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="l02070" name="l02070"></a><span class="lineno"> 2070</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4"> 2071</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4">Square</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l02072" name="l02072"></a><span class="lineno"> 2072</span> </div>
|
|
<div class="line"><a id="l02073" name="l02073"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59"> 2073</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045"> 2074</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> </div>
|
|
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a55bf43f878d4741c57a08d5fef472ea5"> 2076</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a822629b93b91e2bef29959431d95e22d"> 2077</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a75feb558cd1d615e96309dd7d1e81384"> 2078</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_square.html#ab94e28d5c92e6febc1c74e525f730dc4">Square</a>)</div>
|
|
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a6abc881d44071019aa15481e5ea75ab2"> 2079</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_square.html#a0513541766bb997ed166643fe95a6d38"> 2080</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"> 2081</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</span> </div>
|
|
<div class="foldopen" id="foldopen02083" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html"> 2083</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29">Sqrt</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="l02084" name="l02084"></a><span class="lineno"> 2084</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02085" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29"> 2085</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29">Sqrt</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> recip = <span class="keyword">false</span>)</div>
|
|
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</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>), recip_(recip) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> </div>
|
|
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5"> 2088</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501"> 2089</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> </div>
|
|
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a9d30e306ce08980c27d98c898577017e"> 2091</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a78544b1fb5da0c14bce3051ffd177818"> 2092</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#ae45215d61e2e99749d9a0bae291edd45"> 2093</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46"> 2094</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02095" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a053853757ad99195e3f2b1cca571e31b"> 2095</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a053853757ad99195e3f2b1cca571e31b">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span> <span class="keywordflow">return</span> recip_;</div>
|
|
<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> </div>
|
|
<div class="foldopen" id="foldopen02099" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f"> 2099</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f">print</a>(std::ostream& os)<span class="keyword"> override </span>{</div>
|
|
<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span> <span class="keywordflow">if</span> (recip_) {</div>
|
|
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span> os << <span class="stringliteral">"Rsqrt"</span>;</div>
|
|
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span> } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span> os << <span class="stringliteral">"Sqrt"</span>;</div>
|
|
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span> }</div>
|
|
<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> </div>
|
|
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> <span class="keywordtype">bool</span> recip_;</div>
|
|
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"> 2110</span> </div>
|
|
<div class="foldopen" id="foldopen02111" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html"> 2111</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f">StopGradient</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="l02112" name="l02112"></a><span class="lineno"> 2112</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f"> 2113</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f">StopGradient</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l02114" name="l02114"></a><span class="lineno"> 2114</span> </div>
|
|
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2"> 2115</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02116" name="l02116"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89"> 2116</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</span> </div>
|
|
<div class="line"><a id="l02118" name="l02118"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#aca680c8befef81da414c4375b11b16b0"> 2118</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#acc7a7d51cbf014dae8ba3d20bedcad50"> 2119</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_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f">StopGradient</a>)</div>
|
|
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#a327539298b21d800d26482b94fce41b3"> 2120</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l02121" name="l02121"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_stop_gradient.html#a8af7641d478505d1dc39c75ba7d5a3cf"> 2121</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</span> </div>
|
|
<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span> private:</div>
|
|
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span> <span class="keywordtype">void</span> eval(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span> </div>
|
|
<div class="foldopen" id="foldopen02127" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html"> 2127</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c">Subtract</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="l02128" name="l02128"></a><span class="lineno"> 2128</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c"> 2129</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c">Subtract</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span> </div>
|
|
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12"> 2131</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c"> 2132</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span> </div>
|
|
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#aa98f960e621a767c8a03624fd292f098"> 2134</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#a8100081a99df5166f02efc76d6641220"> 2135</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#a3834fd305435fb5a8e512566832e372b"> 2136</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_subtract.html#a834854757394f8de7082af65bf86ed9c">Subtract</a>)</div>
|
|
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#af1c05e1e3f703ba916d54f8ccbbd102b"> 2137</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_subtract.html#aaaff4872bde70ad40cf90e6131ea0489"> 2138</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"> 2140</span> </div>
|
|
<div class="foldopen" id="foldopen02141" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html"> 2141</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a032bd53dcc3d71a11d810bc3ca3ef4b0">Squeeze</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="l02142" name="l02142"></a><span class="lineno"> 2142</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02143" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a032bd53dcc3d71a11d810bc3ca3ef4b0"> 2143</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a032bd53dcc3d71a11d810bc3ca3ef4b0">Squeeze</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::vector<int> axes)</div>
|
|
<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</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>), axes_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(axes)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02145" name="l02145"></a><span class="lineno"> 2145</span> </div>
|
|
<div class="line"><a id="l02146" name="l02146"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a9bcb7476041020f59ef816196ddb81cb"> 2146</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a9bcb7476041020f59ef816196ddb81cb">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a18d382c8bc59d60b38e9fd1cb70660fd"> 2147</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a18d382c8bc59d60b38e9fd1cb70660fd">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02148" name="l02148"></a><span class="lineno"> 2148</span> </div>
|
|
<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#aa098a5850741bfb621800c7badce3532"> 2149</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02150" name="l02150"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a65ac5f63f98d85453ad884e9fa6e8083"> 2150</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02151" name="l02151"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a74c9c825b5b968badb9bca8159eabcdf"> 2151</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_squeeze.html#a032bd53dcc3d71a11d810bc3ca3ef4b0">Squeeze</a>)</div>
|
|
<div class="line"><a id="l02152" name="l02152"></a><span class="lineno"> 2152</span> </div>
|
|
<div class="line"><a id="l02153" name="l02153"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a839d9d72ac0a19e1146b5b470292a174"> 2153</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a839d9d72ac0a19e1146b5b470292a174">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l02154" name="l02154"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a08f35991d36e30fa4c05a5c9e91feb93"> 2154</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a08f35991d36e30fa4c05a5c9e91feb93">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l02155" name="l02155"></a><span class="lineno"> 2155</span> </div>
|
|
<div class="line"><a id="l02156" name="l02156"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#aadf1d3b85839390a2ec560603aeed04a"> 2156</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#aadf1d3b85839390a2ec560603aeed04a">output_shape</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& input, const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>>& axes);</div>
|
|
<div class="foldopen" id="foldopen02157" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02157" name="l02157"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_squeeze.html#a04f9d2595cb7d4ec988479cd33fe9362"> 2157</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_squeeze.html#a04f9d2595cb7d4ec988479cd33fe9362">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02158" name="l02158"></a><span class="lineno"> 2158</span> <span class="keywordflow">return</span> axes_;</div>
|
|
<div class="line"><a id="l02159" name="l02159"></a><span class="lineno"> 2159</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02160" name="l02160"></a><span class="lineno"> 2160</span> </div>
|
|
<div class="line"><a id="l02161" name="l02161"></a><span class="lineno"> 2161</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02162" name="l02162"></a><span class="lineno"> 2162</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l02163" name="l02163"></a><span class="lineno"> 2163</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l02164" name="l02164"></a><span class="lineno"> 2164</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02165" name="l02165"></a><span class="lineno"> 2165</span> </div>
|
|
<div class="foldopen" id="foldopen02166" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02166" name="l02166"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html"> 2166</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_tan.html#a8dcc9ff660210ccf05134dd95f47de08">Tan</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="l02167" name="l02167"></a><span class="lineno"> 2167</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02168" name="l02168"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#a8dcc9ff660210ccf05134dd95f47de08"> 2168</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tan.html#a8dcc9ff660210ccf05134dd95f47de08">Tan</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l02169" name="l02169"></a><span class="lineno"> 2169</span> </div>
|
|
<div class="line"><a id="l02170" name="l02170"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9"> 2170</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02171" name="l02171"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f"> 2171</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02172" name="l02172"></a><span class="lineno"> 2172</span> </div>
|
|
<div class="line"><a id="l02173" name="l02173"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#ae2f67ca2adc83b10009cf28498bf58b7"> 2173</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02174" name="l02174"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#a5d7c76122d63619df17b0e45450bc8f2"> 2174</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02175" name="l02175"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#aeea7c284d595a2a928d5f28a55e9be7f"> 2175</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_tan.html#a8dcc9ff660210ccf05134dd95f47de08">Tan</a>)</div>
|
|
<div class="line"><a id="l02176" name="l02176"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#afdf46288e7f60ea7f878688347dff7e4"> 2176</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l02177" name="l02177"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tan.html#a9e4bba311bb24617dbb5ca591bc2868e"> 2177</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02178" name="l02178"></a><span class="lineno"> 2178</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02179" name="l02179"></a><span class="lineno"> 2179</span> </div>
|
|
<div class="foldopen" id="foldopen02180" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02180" name="l02180"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html"> 2180</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_tanh.html#ae551297bf573e1802fb831440276dee4">Tanh</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="l02181" name="l02181"></a><span class="lineno"> 2181</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02182" name="l02182"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#ae551297bf573e1802fb831440276dee4"> 2182</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tanh.html#ae551297bf573e1802fb831440276dee4">Tanh</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_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">UnaryPrimitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>) {}</div>
|
|
<div class="line"><a id="l02183" name="l02183"></a><span class="lineno"> 2183</span> </div>
|
|
<div class="line"><a id="l02184" name="l02184"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5"> 2184</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02185" name="l02185"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761"> 2185</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02186" name="l02186"></a><span class="lineno"> 2186</span> </div>
|
|
<div class="line"><a id="l02187" name="l02187"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#a32df3564c1ecb858c1ba9f855376762f"> 2187</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02188" name="l02188"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#ae0fbb5370dc1c3a4fb0dd02ca28a832a"> 2188</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02189" name="l02189"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#a73f4976d641daf697cc1a231d773d78e"> 2189</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_tanh.html#ae551297bf573e1802fb831440276dee4">Tanh</a>)</div>
|
|
<div class="line"><a id="l02190" name="l02190"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#a0692a1de2373b86eb394252ed4fecfda"> 2190</a></span> <a class="code hl_define" href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a>()</div>
|
|
<div class="line"><a id="l02191" name="l02191"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_tanh.html#a8873286b69b805486fa83c4806843f3d"> 2191</a></span> <a class="code hl_define" href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a>()</div>
|
|
<div class="line"><a id="l02192" name="l02192"></a><span class="lineno"> 2192</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02193" name="l02193"></a><span class="lineno"> 2193</span> </div>
|
|
<div class="foldopen" id="foldopen02194" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02194" name="l02194"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html"> 2194</a></span>class <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a2d1c32eb1fe2bc7641ade600453c7966">Unflatten</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="l02195" name="l02195"></a><span class="lineno"> 2195</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02196" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02196" name="l02196"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a2d1c32eb1fe2bc7641ade600453c7966"> 2196</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a2d1c32eb1fe2bc7641ade600453c7966">Unflatten</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">int</span> axis, <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape)</div>
|
|
<div class="line"><a id="l02197" name="l02197"></a><span class="lineno"> 2197</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>), axis_(axis), shape_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(shape)) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02198" name="l02198"></a><span class="lineno"> 2198</span> </div>
|
|
<div class="line"><a id="l02199" name="l02199"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a507c22306b7afcdd5970cfaa32188f0a"> 2199</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a507c22306b7afcdd5970cfaa32188f0a">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02200" name="l02200"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#adfbb8208355f9c3cb2e4cb1fd4fe788f"> 2200</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#adfbb8208355f9c3cb2e4cb1fd4fe788f">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02201" name="l02201"></a><span class="lineno"> 2201</span> </div>
|
|
<div class="line"><a id="l02202" name="l02202"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a0f6ee31b99aca962d887c856414813fe"> 2202</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02203" name="l02203"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#aa3da5fc9920581931d6f9d4236a6d8e5"> 2203</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02204" name="l02204"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a77820cf21bd1277c173305b72599bdef"> 2204</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_unflatten.html#a2d1c32eb1fe2bc7641ade600453c7966">Unflatten</a>)</div>
|
|
<div class="line"><a id="l02205" name="l02205"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a068cf053b5b0612fafd4a2d53d42f9fa"> 2205</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a068cf053b5b0612fafd4a2d53d42f9fa">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l02206" name="l02206"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a6a89fc709aae0fb3e17035e39b5ccd58"> 2206</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a6a89fc709aae0fb3e17035e39b5ccd58">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l02207" name="l02207"></a><span class="lineno"> 2207</span> </div>
|
|
<div class="line"><a id="l02208" name="l02208"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#a4c760c8fe981fd2ac17a31ff9faff10a"> 2208</a></span> static <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#a4c760c8fe981fd2ac17a31ff9faff10a">output_shape</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& input, <span class="keywordtype">int</span> axis, const <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape);</div>
|
|
<div class="foldopen" id="foldopen02209" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02209" name="l02209"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_unflatten.html#aeba13680064238191811230171365598"> 2209</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_unflatten.html#aeba13680064238191811230171365598">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02210" name="l02210"></a><span class="lineno"> 2210</span> <span class="keywordflow">return</span> std::make_pair(axis_, shape_);</div>
|
|
<div class="line"><a id="l02211" name="l02211"></a><span class="lineno"> 2211</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02212" name="l02212"></a><span class="lineno"> 2212</span> </div>
|
|
<div class="line"><a id="l02213" name="l02213"></a><span class="lineno"> 2213</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02214" name="l02214"></a><span class="lineno"> 2214</span> <span class="keywordtype">int</span> axis_;</div>
|
|
<div class="line"><a id="l02215" name="l02215"></a><span class="lineno"> 2215</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
|
<div class="line"><a id="l02216" name="l02216"></a><span class="lineno"> 2216</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l02217" name="l02217"></a><span class="lineno"> 2217</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02218" name="l02218"></a><span class="lineno"> 2218</span> </div>
|
|
<div class="foldopen" id="foldopen02219" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02219" name="l02219"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html"> 2219</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e">View</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="l02220" name="l02220"></a><span class="lineno"> 2220</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02221" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02221" name="l02221"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e"> 2221</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e">View</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_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype)</div>
|
|
<div class="line"><a id="l02222" name="l02222"></a><span class="lineno"> 2222</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>), dtype_(dtype) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02223" name="l02223"></a><span class="lineno"> 2223</span> </div>
|
|
<div class="line"><a id="l02224" name="l02224"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497"> 2224</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02225" name="l02225"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075"> 2225</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02226" name="l02226"></a><span class="lineno"> 2226</span> </div>
|
|
<div class="line"><a id="l02227" name="l02227"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#a2230d3e5f434fb2b888de50b529ac121"> 2227</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02228" name="l02228"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c"> 2228</a></span> void <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c">print</a>(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::ostream& os) override;</div>
|
|
<div class="line"><a id="l02229" name="l02229"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64"> 2229</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02230" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02230" name="l02230"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_view.html#a37620f6548630bd2d0dd44e9ab084b93"> 2230</a></span> auto <a class="code hl_function" href="classmlx_1_1core_1_1_view.html#a37620f6548630bd2d0dd44e9ab084b93">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02231" name="l02231"></a><span class="lineno"> 2231</span> <span class="keywordflow">return</span> dtype_;</div>
|
|
<div class="line"><a id="l02232" name="l02232"></a><span class="lineno"> 2232</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02233" name="l02233"></a><span class="lineno"> 2233</span> </div>
|
|
<div class="line"><a id="l02234" name="l02234"></a><span class="lineno"> 2234</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02235" name="l02235"></a><span class="lineno"> 2235</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype_;</div>
|
|
<div class="line"><a id="l02236" name="l02236"></a><span class="lineno"> 2236</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02237" name="l02237"></a><span class="lineno"> 2237</span> </div>
|
|
<div class="foldopen" id="foldopen02238" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02238" name="l02238"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html"> 2238</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a">Transpose</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="l02239" name="l02239"></a><span class="lineno"> 2239</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02240" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02240" name="l02240"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a"> 2240</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a">Transpose</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="keyword">const</span> std::vector<int>& axes)</div>
|
|
<div class="line"><a id="l02241" name="l02241"></a><span class="lineno"> 2241</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>), axes_(axes) {}</div>
|
|
</div>
|
|
<div class="line"><a id="l02242" name="l02242"></a><span class="lineno"> 2242</span> </div>
|
|
<div class="line"><a id="l02243" name="l02243"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8"> 2243</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02244" name="l02244"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e"> 2244</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02245" name="l02245"></a><span class="lineno"> 2245</span> </div>
|
|
<div class="line"><a id="l02246" name="l02246"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a5ef848b69def9a246665b67e6e3ffdfe"> 2246</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02247" name="l02247"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#ac1a523e25ab7fd9df4da363a922afbe1"> 2247</a></span> <a class="code hl_define" href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a>()</div>
|
|
<div class="line"><a id="l02248" name="l02248"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#ac6c87b850f4e5560aa13a5e1e9f9fe04"> 2248</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_transpose.html#a1a9ba023584c61c7ac93d6dce536760a">Transpose</a>)</div>
|
|
<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab"> 2249</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab">is_equivalent</a>(const <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>& other) const override;</div>
|
|
<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#ac9328f43900bedec555909d09202ccd7"> 2250</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#ac9328f43900bedec555909d09202ccd7">output_shapes</a>(const <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="foldopen" id="foldopen02251" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02251" name="l02251"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_transpose.html#a23167291e2bf12e2bb2e51d1db340909"> 2251</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<span class="keywordtype">int</span>> <a class="code hl_function" href="classmlx_1_1core_1_1_transpose.html#a23167291e2bf12e2bb2e51d1db340909">state</a>()<span class="keyword"> const </span>{</div>
|
|
<div class="line"><a id="l02252" name="l02252"></a><span class="lineno"> 2252</span> <span class="keywordflow">return</span> axes_;</div>
|
|
<div class="line"><a id="l02253" name="l02253"></a><span class="lineno"> 2253</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l02254" name="l02254"></a><span class="lineno"> 2254</span> </div>
|
|
<div class="line"><a id="l02255" name="l02255"></a><span class="lineno"> 2255</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02256" name="l02256"></a><span class="lineno"> 2256</span> std::vector<int> axes_;</div>
|
|
<div class="line"><a id="l02257" name="l02257"></a><span class="lineno"> 2257</span> </div>
|
|
<div class="line"><a id="l02258" name="l02258"></a><span class="lineno"> 2258</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">eval</a>(<span class="keyword">const</span> std::vector<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
|
<div class="line"><a id="l02259" name="l02259"></a><span class="lineno"> 2259</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02260" name="l02260"></a><span class="lineno"> 2260</span> </div>
|
|
<div class="line"><a id="l02261" name="l02261"></a><span class="lineno"> 2261</span><span class="comment">/* QR Factorization primitive. */</span></div>
|
|
<div class="foldopen" id="foldopen02262" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02262" name="l02262"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_q_r_f.html"> 2262</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983">QRF</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="l02263" name="l02263"></a><span class="lineno"> 2263</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02264" name="l02264"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983"> 2264</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983">QRF</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="l02265" name="l02265"></a><span class="lineno"> 2265</span> </div>
|
|
<div class="line"><a id="l02266" name="l02266"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2"> 2266</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02267" name="l02267"></a><span class="lineno"> 2267</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02268" name="l02268"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9"> 2268</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02269" name="l02269"></a><span class="lineno"> 2269</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02270" name="l02270"></a><span class="lineno"> 2270</span> </div>
|
|
<div class="line"><a id="l02271" name="l02271"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_q_r_f.html#aba3526722b3a52b41fa8103b909f7f3b"> 2271</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_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983">QRF</a>)</div>
|
|
<div class="line"><a id="l02272" name="l02272"></a><span class="lineno"> 2272</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02273" name="l02273"></a><span class="lineno"> 2273</span> </div>
|
|
<div class="line"><a id="l02274" name="l02274"></a><span class="lineno"> 2274</span><span class="comment">/* SVD primitive. */</span></div>
|
|
<div class="foldopen" id="foldopen02275" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02275" name="l02275"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html"> 2275</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="l02276" name="l02276"></a><span class="lineno"> 2276</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l02277" name="l02277"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1"> 2277</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="l02278" name="l02278"></a><span class="lineno"> 2278</span> </div>
|
|
<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6"> 2279</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<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02280" name="l02280"></a><span class="lineno"> 2280</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02281" name="l02281"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83"> 2281</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<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02282" name="l02282"></a><span class="lineno"> 2282</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02283" name="l02283"></a><span class="lineno"> 2283</span> </div>
|
|
<div class="line"><a id="l02284" name="l02284"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8"> 2284</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53"> 2285</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="l02286" name="l02286"></a><span class="lineno"> 2286</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span> </div>
|
|
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</span><span class="comment">/* Matrix inversion primitive. */</span></div>
|
|
<div class="foldopen" id="foldopen02289" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html"> 2289</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="l02290" name="l02290"></a><span class="lineno"> 2290</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02291" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad"> 2291</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="l02292" name="l02292"></a><span class="lineno"> 2292</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="l02293" name="l02293"></a><span class="lineno"> 2293</span> </div>
|
|
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81"> 2294</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<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& output) <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_inverse.html#a086fbbc947ad232e01686ad063a78ed2"> 2295</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<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& output) <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_inverse.html#a98419b9f0b8a6c9185fe012d523552c2"> 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_inverse.html#a543f18f1ce5c06c897141091e95a66e9"> 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_inverse.html#a71467681e523abb725724490bfeb76ad">Inverse</a>)</div>
|
|
<div class="foldopen" id="foldopen02299" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_inverse.html#aa1fce744f4a2d660c65901a7542056f2"> 2299</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="l02300" name="l02300"></a><span class="lineno"> 2300</span> <span class="keywordflow">return</span> std::make_pair(tri_, upper_);</div>
|
|
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span> </div>
|
|
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"> 2304</span> <span class="keywordtype">bool</span> tri_;</div>
|
|
<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"> 2305</span> <span class="keywordtype">bool</span> upper_;</div>
|
|
<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</span> </div>
|
|
<div class="foldopen" id="foldopen02308" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html"> 2308</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="l02309" name="l02309"></a><span class="lineno"> 2309</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen02310" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a6ae2e30b85f99f4f0d7f14c7949818ab"> 2310</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="l02311" name="l02311"></a><span class="lineno"> 2311</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="l02312" name="l02312"></a><span class="lineno"> 2312</span> </div>
|
|
<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5"> 2313</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<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795"> 2314</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<array>& inputs, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) <span class="keyword">override</span>;</div>
|
|
<div class="foldopen" id="foldopen02315" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a64f03d32ed249a3b2a59b6af66d23727"> 2315</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="l02316" name="l02316"></a><span class="lineno"> 2316</span> <span class="keywordflow">return</span> upper_;</div>
|
|
<div class="line"><a id="l02317" name="l02317"></a><span class="lineno"> 2317</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"> 2318</span> </div>
|
|
<div class="line"><a id="l02319" name="l02319"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5"> 2319</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84"> 2320</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="l02321" name="l02321"></a><span class="lineno"> 2321</span> </div>
|
|
<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</span> private:</div>
|
|
<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"> 2323</span> <span class="keywordtype">bool</span> upper_;</div>
|
|
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"> 2325</span> </div>
|
|
<div class="foldopen" id="foldopen02326" data-start="{" data-end="};">
|
|
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html"> 2326</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="l02327" name="l02327"></a><span class="lineno"> 2327</span> <span class="keyword">public</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_eigh.html#ad8f5d012ebd5942abeffecca77fcddda"> 2328</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="l02329" name="l02329"></a><span class="lineno"> 2329</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="l02330" name="l02330"></a><span class="lineno"> 2330</span> uplo_(<a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::move(uplo)),</div>
|
|
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span> compute_eigenvectors_(compute_eigenvectors) {}</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_eigh.html#a894b32e17229394f6a43b4a0655fd8be"> 2333</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<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2"> 2335</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<array>& inputs, std::vector<array>& outputs)</div>
|
|
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span> <span class="keyword">override</span>;</div>
|
|
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span> </div>
|
|
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#ab2f2ea5326e2f6045f9b7250692c240f"> 2338</a></span> <a class="code hl_define" href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a>()</div>
|
|
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a2b8e47ecd60cd7330716761c5fb1fe84"> 2339</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="l02340" name="l02340"></a><span class="lineno"> 2340</span> </div>
|
|
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a9892f5b72dec19a5a2f7af5efcf2a952"> 2341</a></span> <a class="code hl_function" href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">std</a>::vector<<a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>> <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<<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>>& inputs) override;</div>
|
|
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> </div>
|
|
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381"> 2343</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>& other) const override;</div>
|
|
<div class="foldopen" id="foldopen02344" data-start="{" data-end="}">
|
|
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1_eigh.html#aa3b6c33b5679c5528863f3de2ab2f914"> 2344</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="l02345" name="l02345"></a><span class="lineno"> 2345</span> <span class="keywordflow">return</span> std::make_pair(uplo_, compute_eigenvectors_);</div>
|
|
<div class="line"><a id="l02346" name="l02346"></a><span class="lineno"> 2346</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l02347" name="l02347"></a><span class="lineno"> 2347</span> </div>
|
|
<div class="line"><a id="l02348" name="l02348"></a><span class="lineno"> 2348</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l02349" name="l02349"></a><span class="lineno"> 2349</span> std::string uplo_;</div>
|
|
<div class="line"><a id="l02350" name="l02350"></a><span class="lineno"> 2350</span> <span class="keywordtype">bool</span> compute_eigenvectors_;</div>
|
|
<div class="line"><a id="l02351" name="l02351"></a><span class="lineno"> 2351</span>};</div>
|
|
</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"> 2353</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< array > &inputs, array &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< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_abs_html_a1247e72feb640fb562d036b2dd1ae4ad"><div class="ttname"><a href="classmlx_1_1core_1_1_abs.html#a1247e72feb640fb562d036b2dd1ae4ad">mlx::core::Abs::Abs</a></div><div class="ttdeci">Abs(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:156</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_html_a5bacfc51dfa2a5a931bad2dd7bdc7a5f"><div class="ttname"><a href="classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f">mlx::core::Add::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_html_aa0aacbc1e26b95a2f040f62aa4f69c3d"><div class="ttname"><a href="classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d">mlx::core::Add::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_html_ae3fd5483f3454eac3df256e3f5f3cdae"><div class="ttname"><a href="classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae">mlx::core::Add::Add</a></div><div class="ttdeci">Add(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:170</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_m_m_html_a15694e3bf2ed5c193237b2b9ca00867c"><div class="ttname"><a href="classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c">mlx::core::AddMM::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_m_m_html_a24ab73de46d0589780dac5ade43f93b8"><div class="ttname"><a href="classmlx_1_1core_1_1_add_m_m.html#a24ab73de46d0589780dac5ade43f93b8">mlx::core::AddMM::state</a></div><div class="ttdeci">std::pair< float, float > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:195</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_m_m_html_a5f933be14baebc32a0be0f9a69148aa9"><div class="ttname"><a href="classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9">mlx::core::AddMM::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_m_m_html_a6e37c6882dba995a63fb6d8dfb01754f"><div class="ttname"><a href="classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f">mlx::core::AddMM::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_add_m_m_html_a8ae4372b3f96e72e8a5a06d59de8a550"><div class="ttname"><a href="classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550">mlx::core::AddMM::AddMM</a></div><div class="ttdeci">AddMM(Stream stream, float alpha, float beta)</div><div class="ttdef"><b>Definition</b> primitives.h:184</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_a1a70c3b0b9c67d5a9446c141c5b7c574"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574">mlx::core::Arange::Arange</a></div><div class="ttdeci">Arange(Stream stream, double start, double stop, double step)</div><div class="ttdef"><b>Definition</b> primitives.h:206</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_a447083a1403d3d42a7ad9c307a666946"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#a447083a1403d3d42a7ad9c307a666946">mlx::core::Arange::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_a7a2e9787c6c3a78b4a6df91206974031"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031">mlx::core::Arange::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_a7b6a45cf9c4b109d4e0373f3fe576c35"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35">mlx::core::Arange::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_aba44432491cbd599bf72712f5f4267a1"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1">mlx::core::Arange::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arange_html_ac4a9f48a11c2af03ed57fdf2422cbfad"><div class="ttname"><a href="classmlx_1_1core_1_1_arange.html#ac4a9f48a11c2af03ed57fdf2422cbfad">mlx::core::Arange::state</a></div><div class="ttdeci">std::tuple< double, double, double > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:215</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cos_html_a46f72d4af89b0a0f5f203783fb44589c"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c">mlx::core::ArcCos::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cos_html_a58dcba9e706cb12bab062bb7fa5fa006"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006">mlx::core::ArcCos::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cos_html_a66f4ee841d17923d93241b71ea5103e9"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9">mlx::core::ArcCos::ArcCos</a></div><div class="ttdeci">ArcCos(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:227</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cosh_html_a0f6d989bcbbc38f15ef17a136879a9c9"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9">mlx::core::ArcCosh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cosh_html_a34597054db467941a2a883c653ba4d71"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71">mlx::core::ArcCosh::ArcCosh</a></div><div class="ttdeci">ArcCosh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:241</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_cosh_html_aa6a2587485a0e015ac2d5211d7d045fc"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc">mlx::core::ArcCosh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sin_html_a7fa4ae7a85bc8bed97ea258ae30762f3"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3">mlx::core::ArcSin::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sin_html_a97cb8c3d4d9d6abc627dec49a404f013"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013">mlx::core::ArcSin::ArcSin</a></div><div class="ttdeci">ArcSin(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:255</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sin_html_ab3542492c14021329788de8f2a9be1e4"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4">mlx::core::ArcSin::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sinh_html_a30076b222788deeaaf9ad92d3c535f20"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20">mlx::core::ArcSinh::ArcSinh</a></div><div class="ttdeci">ArcSinh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:269</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sinh_html_a52574b24d8d16839c58673f51f8ac066"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066">mlx::core::ArcSinh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_sinh_html_a79f648a86de4c10386a1ce3b5e38e8ac"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac">mlx::core::ArcSinh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan2_html_a13094e6b702769928ca0da468f5ce45c"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c">mlx::core::ArcTan2::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan2_html_a76d3f0c29e0ff4642b8d39dac90d3f50"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50">mlx::core::ArcTan2::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan2_html_aa1a4ebab9924b6bcc80df5b52ed0121a"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a">mlx::core::ArcTan2::ArcTan2</a></div><div class="ttdeci">ArcTan2(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:297</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan_html_a1211bc31241227528f04435239ddb9a3"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3">mlx::core::ArcTan::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan_html_a3511153bbd421e89fd9294cdb3f79b44"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44">mlx::core::ArcTan::ArcTan</a></div><div class="ttdeci">ArcTan(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:283</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tan_html_a77866feb27028865d844070447c9a254"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254">mlx::core::ArcTan::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tanh_html_a10566b9d3b2c7d090895b46d9040bc1d"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d">mlx::core::ArcTanh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tanh_html_a17857bd0e2a3ecf1f7bf8e1a3d354358"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358">mlx::core::ArcTanh::ArcTanh</a></div><div class="ttdeci">ArcTanh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:311</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arc_tanh_html_a5af9224e1f1ffec412b0baa0af7e1ecd"><div class="ttname"><a href="classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd">mlx::core::ArcTanh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_partition_html_a5033c46f5aae9b14859cc8b0ca4c8e19"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_partition.html#a5033c46f5aae9b14859cc8b0ca4c8e19">mlx::core::ArgPartition::state</a></div><div class="ttdeci">std::pair< int, int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:336</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_partition_html_a896f75c5325798ac3f9093f6a4581828"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828">mlx::core::ArgPartition::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_partition_html_a9a60995eaf85f63c877e86b23cbc15fc"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc">mlx::core::ArgPartition::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_partition_html_ab54b13dbf92351ba1ac06fd3e5a802df"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df">mlx::core::ArgPartition::ArgPartition</a></div><div class="ttdeci">ArgPartition(Stream stream, int kth, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:325</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_partition_html_ad87509ce70b51fb75dfb9c3a05a5b31a"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a">mlx::core::ArgPartition::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_a03b81a670dcb1e39bf7279e4d4583b97"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97">mlx::core::ArgReduce::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_a81a70885480c1d436329025091b2fa4c"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#a81a70885480c1d436329025091b2fa4c">mlx::core::ArgReduce::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_a920ed48caaba76683be0d1f1ed4a8bd3"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3">mlx::core::ArgReduce::ReduceType</a></div><div class="ttdeci">ReduceType</div><div class="ttdef"><b>Definition</b> primitives.h:347</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9">mlx::core::ArgReduce::ArgMin</a></div><div class="ttdeci">@ ArgMin</div><div class="ttdef"><b>Definition</b> primitives.h:348</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e">mlx::core::ArgReduce::ArgMax</a></div><div class="ttdeci">@ ArgMax</div><div class="ttdef"><b>Definition</b> primitives.h:349</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_aaccf8021dc24895656e25142eb65aa03"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03">mlx::core::ArgReduce::ArgReduce</a></div><div class="ttdeci">ArgReduce(Stream stream, ReduceType reduce_type, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:352</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_aafa982ce2abc0cd9e81e43aa2c823d29"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29">mlx::core::ArgReduce::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_acac3b26364260aac7511b4cb7add3604"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#acac3b26364260aac7511b4cb7add3604">mlx::core::ArgReduce::state</a></div><div class="ttdeci">std::pair< ReduceType, int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:363</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_reduce_html_ad8d48725623ede1ff654fa13eccf2287"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287">mlx::core::ArgReduce::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_sort_html_a022079683774bfeb531b3a002cff16fa"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa">mlx::core::ArgSort::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_sort_html_a048cd09c557d29d1111726f97010a845"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845">mlx::core::ArgSort::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_sort_html_a38507a8445302a81cb44674c4a5fc0b0"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0">mlx::core::ArgSort::ArgSort</a></div><div class="ttdeci">ArgSort(Stream stream, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:374</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_sort_html_a90548429765f9e7e2332f01b72692fa2"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_sort.html#a90548429765f9e7e2332f01b72692fa2">mlx::core::ArgSort::state</a></div><div class="ttdeci">int state() const</div><div class="ttdef"><b>Definition</b> primitives.h:384</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_arg_sort_html_abc2d730850ec4ee8d7968b7417911709"><div class="ttname"><a href="classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709">mlx::core::ArgSort::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_strided_html_a1738c6aa0a3a3eb68530f0d5b436e094"><div class="ttname"><a href="classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094">mlx::core::AsStrided::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_strided_html_ab6771a208323994927ca162ba7bb10ed"><div class="ttname"><a href="classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed">mlx::core::AsStrided::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_strided_html_acdd4705e4503ff0b124215c4676b4193"><div class="ttname"><a href="classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193">mlx::core::AsStrided::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_strided_html_ae730aeff375498ba774d4207c7af8c36"><div class="ttname"><a href="classmlx_1_1core_1_1_as_strided.html#ae730aeff375498ba774d4207c7af8c36">mlx::core::AsStrided::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:427</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_strided_html_aee21aadc21343fd15aacb8f2f8ac3761"><div class="ttname"><a href="classmlx_1_1core_1_1_as_strided.html#aee21aadc21343fd15aacb8f2f8ac3761">mlx::core::AsStrided::AsStrided</a></div><div class="ttdeci">AsStrided(Stream stream, Shape shape, Strides strides, size_t offset)</div><div class="ttdef"><b>Definition</b> primitives.h:415</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html_a5b111b9d74c60d27b4a7ebaa49f96e0b"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b">mlx::core::AsType::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html_a8c3241d402a8977bb4db037e225f5b47"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47">mlx::core::AsType::AsType</a></div><div class="ttdeci">AsType(Stream stream, Dtype dtype)</div><div class="ttdef"><b>Definition</b> primitives.h:394</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html_a8e6c8b2428ab15c4fb43f2e3a8fb38af"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af">mlx::core::AsType::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html_a98ea769fc9cd6d76b07817444e7a78ab"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html#a98ea769fc9cd6d76b07817444e7a78ab">mlx::core::AsType::state</a></div><div class="ttdeci">Dtype state() const</div><div class="ttdef"><b>Definition</b> primitives.h:405</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_as_type_html_aa89dbf4d73b00c6a44cffd04d5bb228d"><div class="ttname"><a href="classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d">mlx::core::AsType::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a0d8b3a94951621ffcdebc6fda748a172"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a0d8b3a94951621ffcdebc6fda748a172">mlx::core::BitwiseBinary::BitwiseBinary</a></div><div class="ttdeci">BitwiseBinary(Stream stream, Op op)</div><div class="ttdef"><b>Definition</b> primitives.h:443</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a2194bf585213bda1b2966aa02d2fe283"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283">mlx::core::BitwiseBinary::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a69b28e239da7fdb89f0a9f9467dd797d"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d">mlx::core::BitwiseBinary::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23d"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23d">mlx::core::BitwiseBinary::Op</a></div><div class="ttdeci">Op</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23da011e7b275a1f0edbd9345cfcf6501503"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da011e7b275a1f0edbd9345cfcf6501503">mlx::core::BitwiseBinary::RightShift</a></div><div class="ttdeci">@ RightShift</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23da51065a44e7f9a76a6dab6de637c6db22"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da51065a44e7f9a76a6dab6de637c6db22">mlx::core::BitwiseBinary::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23da986b39e75cbe29fcda1d7bf7942a65a0"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da986b39e75cbe29fcda1d7bf7942a65a0">mlx::core::BitwiseBinary::LeftShift</a></div><div class="ttdeci">@ LeftShift</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4">mlx::core::BitwiseBinary::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a6f8b5d455d0c1770428a6bef1608f23dac95e7d8e6205449a70c8134e7dae3bd1"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dac95e7d8e6205449a70c8134e7dae3bd1">mlx::core::BitwiseBinary::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition</b> primitives.h:441</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a8a67d6f431b4055ab66656201622af4d"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a8a67d6f431b4055ab66656201622af4d">mlx::core::BitwiseBinary::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:454</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_a8cd6b916b4838a6c329cf4df8530c3b8"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8">mlx::core::BitwiseBinary::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_bitwise_binary_html_ac831a29fc46701b00bbe63ee33832afd"><div class="ttname"><a href="classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd">mlx::core::BitwiseBinary::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_a1adf20087ee2f685bf39c2724b8e7120"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120">mlx::core::BlockMaskedMM::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_a6bbcc34b256840e4df2953563f2b4a07"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#a6bbcc34b256840e4df2953563f2b4a07">mlx::core::BlockMaskedMM::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:478</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_aa85da478cdc6d4a97be06e5d4abee1f2"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2">mlx::core::BlockMaskedMM::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_ab372b6df4de00a33795a052a23bb1df9"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9">mlx::core::BlockMaskedMM::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_ad26509deb5306d0c5eb72477e9a57477"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#ad26509deb5306d0c5eb72477e9a57477">mlx::core::BlockMaskedMM::BlockMaskedMM</a></div><div class="ttdeci">BlockMaskedMM(Stream stream, int block_size)</div><div class="ttdef"><b>Definition</b> primitives.h:464</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_block_masked_m_m_html_aef1c303955f9b8f445296372cf181160"><div class="ttname"><a href="classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160">mlx::core::BlockMaskedMM::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a42c4385e65851d58e4411a4afe73f58e"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a42c4385e65851d58e4411a4afe73f58e">mlx::core::BroadcastAxes::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a44d14b22b995e643cb04cc43654d7b16"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a44d14b22b995e643cb04cc43654d7b16">mlx::core::BroadcastAxes::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a5136f33489670cdc0802e46725288195"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a5136f33489670cdc0802e46725288195">mlx::core::BroadcastAxes::BroadcastAxes</a></div><div class="ttdeci">BroadcastAxes(Stream stream, std::vector< int > ignore_axes={})</div><div class="ttdef"><b>Definition</b> primitives.h:505</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a56d16e75a0df867d2f1ba4e5198f15cb"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a56d16e75a0df867d2f1ba4e5198f15cb">mlx::core::BroadcastAxes::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a5b2594b7a70dd4873a07e742140a245f"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a5b2594b7a70dd4873a07e742140a245f">mlx::core::BroadcastAxes::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:519</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_a6423095cd28b2f90893c03166257a568"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#a6423095cd28b2f90893c03166257a568">mlx::core::BroadcastAxes::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_axes_html_aaa495110c16fbbc642fbb224ef8dfae6"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast_axes.html#aaa495110c16fbbc642fbb224ef8dfae6">mlx::core::BroadcastAxes::output_shape</a></div><div class="ttdeci">static Shape output_shape(const std::vector< array > &inputs, const std::vector< int > &ignore_axes)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_a004cce3029c0427569830016f99648cb"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#a004cce3029c0427569830016f99648cb">mlx::core::Broadcast::Broadcast</a></div><div class="ttdeci">Broadcast(Stream stream, const Shape &shape)</div><div class="ttdef"><b>Definition</b> primitives.h:530</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_a00c39c113fe3e698771e2e6b595c32cd"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#a00c39c113fe3e698771e2e6b595c32cd">mlx::core::Broadcast::output_shape</a></div><div class="ttdeci">static Shape output_shape(const std::vector< array > &inputs)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_a0e27692b0090ec451954649a36042616"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616">mlx::core::Broadcast::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_a49fdb421047860733af7dfbbb478da8d"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#a49fdb421047860733af7dfbbb478da8d">mlx::core::Broadcast::state</a></div><div class="ttdeci">std::vector< int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:542</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_a53d48d9778e2d4c24a124cd767900780"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780">mlx::core::Broadcast::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_ab9bd9dbcedcefc9b29c84911b5ce69fe"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe">mlx::core::Broadcast::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_broadcast_html_adef65b1ec75efbe43e5574ec81b7c0ac"><div class="ttname"><a href="classmlx_1_1core_1_1_broadcast.html#adef65b1ec75efbe43e5574ec81b7c0ac">mlx::core::Broadcast::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_ceil_html_a9791801fff3f8b79944e15ac2a45a035"><div class="ttname"><a href="classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035">mlx::core::Ceil::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<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< array > &inputs, array &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:554</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< array > &inputs, array &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:2315</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:2310</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< array > &inputs, array &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< Shape > output_shapes(const std::vector< array > &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 &os) override</div><div class="ttdoc">Print the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_a2d8cefff835c419a48a077d306b8e051"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#a2d8cefff835c419a48a077d306b8e051">mlx::core::Compiled::Compiled</a></div><div class="ttdeci">Compiled(Stream stream, std::vector< array > inputs, std::vector< array > outputs, std::vector< array > tape, std::unordered_set< uintptr_t > constant_ids)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_a63e5016458887813b4a59dee5a0a3f10"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10">mlx::core::Compiled::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_aa3d5ff0f2b3554ad48fbbf2a0f3336d5"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5">mlx::core::Compiled::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_compiled_html_ac45b1d0fedd85feefbff7ce7e168b151"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151">mlx::core::Compiled::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_compiled_html_ae5c16cb91ac31b97e7652cc526c07439"><div class="ttname"><a href="classmlx_1_1core_1_1_compiled.html#ae5c16cb91ac31b97e7652cc526c07439">mlx::core::Compiled::lib_name</a></div><div class="ttdeci">std::string lib_name() const</div><div class="ttdef"><b>Definition</b> primitives.h:595</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_a309a1c50e97f9925866433ee2841c474"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474">mlx::core::Concatenate::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_a609e76bede7fc5581ec84ddcb727a258"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258">mlx::core::Concatenate::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_a60cd572a42b346399ee539af2dfbf29e"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#a60cd572a42b346399ee539af2dfbf29e">mlx::core::Concatenate::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:621</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_aaf8a72a0c30114460caf519580cc35d2"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2">mlx::core::Concatenate::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_acff07853de2d31faeec7c4ca40ce0888"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#acff07853de2d31faeec7c4ca40ce0888">mlx::core::Concatenate::Concatenate</a></div><div class="ttdeci">Concatenate(Stream stream, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:610</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_concatenate_html_af8415a2fe28804a1437d0876ba15615f"><div class="ttname"><a href="classmlx_1_1core_1_1_concatenate.html#af8415a2fe28804a1437d0876ba15615f">mlx::core::Concatenate::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_conjugate_html_a627f9e6a8729fb3ffb3ca3228d007c87"><div class="ttname"><a href="classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87">mlx::core::Conjugate::Conjugate</a></div><div class="ttdeci">Conjugate(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:631</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_conjugate_html_ae39643e2178f442ffba05139f8609d61"><div class="ttname"><a href="classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61">mlx::core::Conjugate::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_conjugate_html_aff0a802166e3724db88ab5d3feb2d3de"><div class="ttname"><a href="classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de">mlx::core::Conjugate::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_contiguous_html_a3e83f414c02ae0b92a50b6f8e402e1c0"><div class="ttname"><a href="classmlx_1_1core_1_1_contiguous.html#a3e83f414c02ae0b92a50b6f8e402e1c0">mlx::core::Contiguous::Contiguous</a></div><div class="ttdeci">Contiguous(Stream stream, bool allow_col_major)</div><div class="ttdef"><b>Definition</b> primitives.h:644</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_contiguous_html_a519cd16fd0c55b371ea7625fbb37c70f"><div class="ttname"><a href="classmlx_1_1core_1_1_contiguous.html#a519cd16fd0c55b371ea7625fbb37c70f">mlx::core::Contiguous::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_contiguous_html_a742de24e6c0310cd85a606dec0cd8336"><div class="ttname"><a href="classmlx_1_1core_1_1_contiguous.html#a742de24e6c0310cd85a606dec0cd8336">mlx::core::Contiguous::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_contiguous_html_aa5d273a461fc6e64f3c9a67c24cb3372"><div class="ttname"><a href="classmlx_1_1core_1_1_contiguous.html#aa5d273a461fc6e64f3c9a67c24cb3372">mlx::core::Contiguous::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_a30b64109eeb1778f002b99447dff9dd2"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2">mlx::core::Convolution::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_a6f1de77b719bb13217b0d8c64cabb8ef"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#a6f1de77b719bb13217b0d8c64cabb8ef">mlx::core::Convolution::Convolution</a></div><div class="ttdeci">Convolution(Stream stream, const std::vector< int > &kernel_strides, const std::vector< int > &padding, const std::vector< int > &kernel_dilation, const std::vector< int > &input_dilation, const int groups=1, const bool flip=false)</div><div class="ttdef"><b>Definition</b> primitives.h:663</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_a7f44f0caea20cc2858717afba1e915d8"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#a7f44f0caea20cc2858717afba1e915d8">mlx::core::Convolution::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:690</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_ac74256068da01730629109fa4fa8432b"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b">mlx::core::Convolution::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_af8eb9c0c055ad20aa74b547016917690"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#af8eb9c0c055ad20aa74b547016917690">mlx::core::Convolution::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_convolution_html_afb87708a5e3aab2e9e663daa9d8863de"><div class="ttname"><a href="classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de">mlx::core::Convolution::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_copy_html_a1eda7b2ea771a168f67421f0d384b3a1"><div class="ttname"><a href="classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1">mlx::core::Copy::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_copy_html_a6243e044af119105ffaaed7d405cd584"><div class="ttname"><a href="classmlx_1_1core_1_1_copy.html#a6243e044af119105ffaaed7d405cd584">mlx::core::Copy::Copy</a></div><div class="ttdeci">Copy(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:711</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_copy_html_af4a0ebec423e84ffe8083a5e9ed0d70c"><div class="ttname"><a href="classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c">mlx::core::Copy::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cos_html_a061fc446268fe56237ae6b20ccf78152"><div class="ttname"><a href="classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152">mlx::core::Cos::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cos_html_a2acb9fcf0901462189c476756fd99995"><div class="ttname"><a href="classmlx_1_1core_1_1_cos.html#a2acb9fcf0901462189c476756fd99995">mlx::core::Cos::Cos</a></div><div class="ttdeci">Cos(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:728</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cos_html_a5ef41aafad595f6cdd8c535e36e12060"><div class="ttname"><a href="classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060">mlx::core::Cos::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cosh_html_a23f71b43792934c3ec0ebe9b74f32559"><div class="ttname"><a href="classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559">mlx::core::Cosh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cosh_html_a44e8ac2e09a55ec32e9dc6641eedc8f1"><div class="ttname"><a href="classmlx_1_1core_1_1_cosh.html#a44e8ac2e09a55ec32e9dc6641eedc8f1">mlx::core::Cosh::Cosh</a></div><div class="ttdeci">Cosh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:742</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_cosh_html_ae8702df7e8f0e20cbeccb2a548961d3d"><div class="ttname"><a href="classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d">mlx::core::Cosh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_a7b3538681acbb20af3ed37b0877f6667"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667">mlx::core::CustomTransforms::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_a906a2ff30d9c5281fbf1fa927e4c021b"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b">mlx::core::CustomTransforms::vmap</a></div><div class="ttdeci">virtual std::pair< std::vector< array >, std::vector< int > > vmap(const std::vector< array > &inputs, const std::vector< int > &axes) override</div><div class="ttdoc">The primitive must know how to vectorize itself across the given axes.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_aa1da36cef632df767cd9809d6cf06209"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#aa1da36cef632df767cd9809d6cf06209">mlx::core::CustomTransforms::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_aa9f695100170d5cae999b3da138ce720"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#aa9f695100170d5cae999b3da138ce720">mlx::core::CustomTransforms::jvp</a></div><div class="ttdeci">std::vector< array > jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) override</div><div class="ttdoc">The Jacobian-vector product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_ab52abadb9c6f6db83d087c7b751be488"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#ab52abadb9c6f6db83d087c7b751be488">mlx::core::CustomTransforms::CustomTransforms</a></div><div class="ttdeci">CustomTransforms(Stream stream, int num_outputs, std::function< std::vector< array >(const std::vector< array > &, const std::vector< array > &, const std::vector< array > &)> vjp, std::function< std::vector< array >(const std::vector< array > &, const std::vector< array > &, const std::vector< int > &)> jvp, std::function< std::pair< std::vector< array >, std::vector< int > >(const std::vector< array > &, const std::vector< int > &)> vmap)</div><div class="ttdef"><b>Definition</b> primitives.h:756</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_custom_transforms_html_adba1c40c77a2138df6b5f75483f62184"><div class="ttname"><a href="classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184">mlx::core::CustomTransforms::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_depends_html_a02996fa45f01f7cb9f37074d5f8ccab0"><div class="ttname"><a href="classmlx_1_1core_1_1_depends.html#a02996fa45f01f7cb9f37074d5f8ccab0">mlx::core::Depends::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotan, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_depends_html_a0c7ea6db97337591fa53c6e6bde41e5e"><div class="ttname"><a href="classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e">mlx::core::Depends::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_depends_html_a4ccb792c99f5d8d133d3fac29f7d3f62"><div class="ttname"><a href="classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62">mlx::core::Depends::Depends</a></div><div class="ttdeci">Depends(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:808</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_depends_html_ae5057f65e69490ad0add8eeda2b75e28"><div class="ttname"><a href="classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28">mlx::core::Depends::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_div_mod_html_a003117c9ecf3c06a27248f72a76348dc"><div class="ttname"><a href="classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc">mlx::core::DivMod::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_div_mod_html_a1b7f104346cb5423ac15371b45c7ef86"><div class="ttname"><a href="classmlx_1_1core_1_1_div_mod.html#a1b7f104346cb5423ac15371b45c7ef86">mlx::core::DivMod::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:854</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_div_mod_html_a859e3b6149cdceab1c7ccfd2246fb826"><div class="ttname"><a href="classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826">mlx::core::DivMod::DivMod</a></div><div class="ttdeci">DivMod(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:843</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_div_mod_html_ae350b7b93ad128e3133ee14f247193b3"><div class="ttname"><a href="classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3">mlx::core::DivMod::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_divide_html_a62fc71e8998be65ff18285dbbd21eedb"><div class="ttname"><a href="classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb">mlx::core::Divide::Divide</a></div><div class="ttdeci">Divide(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:829</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_divide_html_a823443c2a8e8b81bbcaeee6ddbcdbf49"><div class="ttname"><a href="classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49">mlx::core::Divide::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_divide_html_abffda0ce37221ddc28dc9eea794f6bc7"><div class="ttname"><a href="classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7">mlx::core::Divide::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_a0325271def8d9ea9ed21eb27e51994b4"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#a0325271def8d9ea9ed21eb27e51994b4">mlx::core::DynamicSlice::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_a4e8c22c24a587ea0648ce89f461ed1ee"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#a4e8c22c24a587ea0648ce89f461ed1ee">mlx::core::DynamicSlice::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_a920dc4d1ee4976065e6d91fe3ecfbbf3"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#a920dc4d1ee4976065e6d91fe3ecfbbf3">mlx::core::DynamicSlice::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_a97f23f7d45b69219dee1a208d9a3063b"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#a97f23f7d45b69219dee1a208d9a3063b">mlx::core::DynamicSlice::DynamicSlice</a></div><div class="ttdeci">DynamicSlice(Stream stream, std::vector< int > axes, Shape slice_size)</div><div class="ttdef"><b>Definition</b> primitives.h:1958</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_ab0a2e31c03f02a4f25700e240cf18e3e"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#ab0a2e31c03f02a4f25700e240cf18e3e">mlx::core::DynamicSlice::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_html_aec9084e603d7562f3a75c5fc32918581"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice.html#aec9084e603d7562f3a75c5fc32918581">mlx::core::DynamicSlice::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1971</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_update_html_a0b0b2a0e4d97305fd6f3c635fcdccd76"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice_update.html#a0b0b2a0e4d97305fd6f3c635fcdccd76">mlx::core::DynamicSliceUpdate::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1993</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_update_html_a16bbd8d756598cf620e3b3c95dd23213"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice_update.html#a16bbd8d756598cf620e3b3c95dd23213">mlx::core::DynamicSliceUpdate::DynamicSliceUpdate</a></div><div class="ttdeci">DynamicSliceUpdate(Stream stream, std::vector< int > axes)</div><div class="ttdef"><b>Definition</b> primitives.h:1982</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_update_html_a249dab28690c45203c3995698de0cab7"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice_update.html#a249dab28690c45203c3995698de0cab7">mlx::core::DynamicSliceUpdate::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_update_html_a379185914db0326a5d4839839fe4fc83"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice_update.html#a379185914db0326a5d4839839fe4fc83">mlx::core::DynamicSliceUpdate::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_dynamic_slice_update_html_ae6292d2b1f3221a7c8ef6b77cb466481"><div class="ttname"><a href="classmlx_1_1core_1_1_dynamic_slice_update.html#ae6292d2b1f3221a7c8ef6b77cb466481">mlx::core::DynamicSliceUpdate::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_eigh_html_a09414e3fe88a952408d164d6dd0af381"><div class="ttname"><a href="classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381">mlx::core::Eigh::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<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< array > &inputs, std::vector< array > &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< array > &inputs, std::vector< array > &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< Shape > output_shapes(const std::vector< array > &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:2344</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:2328</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 &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:900</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:889</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:907</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_equal_html_aabb8aa61fa581defddcdca1274b1b454"><div class="ttname"><a href="classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454">mlx::core::Equal::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_equal_html_ac3757001fec42ceb5ece2954df42161c"><div class="ttname"><a href="classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c">mlx::core::Equal::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_html_a702f76f848928d8d7d3d0881ac6e4c82"><div class="ttname"><a href="classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82">mlx::core::Erf::Erf</a></div><div class="ttdeci">Erf(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:917</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_html_a84ea16e43d5b7f83bbc2d5ece78a3fb6"><div class="ttname"><a href="classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6">mlx::core::Erf::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_html_ad8551be664d767dccc3c0d8cc1eca008"><div class="ttname"><a href="classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008">mlx::core::Erf::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_inv_html_a4a2413d0634db1f3dae1806ddfa632db"><div class="ttname"><a href="classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db">mlx::core::ErfInv::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_inv_html_a5d0279247b67da4592311559f04e1478"><div class="ttname"><a href="classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478">mlx::core::ErfInv::ErfInv</a></div><div class="ttdeci">ErfInv(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:931</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_erf_inv_html_af579627402af3249565134884701d39e"><div class="ttname"><a href="classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e">mlx::core::ErfInv::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_exp_html_a1d0a618cbb91ab29ef53b57ff6ed6e06"><div class="ttname"><a href="classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06">mlx::core::Exp::Exp</a></div><div class="ttdeci">Exp(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:945</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_exp_html_a47934c5a5023bc7ae7ae89bff45ebb2c"><div class="ttname"><a href="classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c">mlx::core::Exp::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_exp_html_a7d63695a97a14760fd33b5d4e6590822"><div class="ttname"><a href="classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822">mlx::core::Exp::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_a34058a87582a6ab2e5d82a75bc713030"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#a34058a87582a6ab2e5d82a75bc713030">mlx::core::ExpandDims::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_a3814ad4697eccb75fdb9275017a3fd67"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#a3814ad4697eccb75fdb9275017a3fd67">mlx::core::ExpandDims::output_shape</a></div><div class="ttdeci">static Shape output_shape(const array &input, const std::vector< int > &axes)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_a7cacc704c533c00ba072f0a7872631cf"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#a7cacc704c533c00ba072f0a7872631cf">mlx::core::ExpandDims::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:986</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_ad350ede3abecc55371ddeb89fbba2b90"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#ad350ede3abecc55371ddeb89fbba2b90">mlx::core::ExpandDims::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_aea2479ea4dd93941eb83a22e087983a8"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#aea2479ea4dd93941eb83a22e087983a8">mlx::core::ExpandDims::ExpandDims</a></div><div class="ttdeci">ExpandDims(Stream stream, std::vector< int > axes)</div><div class="ttdef"><b>Definition</b> primitives.h:972</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_aef468da4027527afec7b24161ce1e1f3"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#aef468da4027527afec7b24161ce1e1f3">mlx::core::ExpandDims::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expand_dims_html_af64bd4bc2cc5f5c58869f34cd974bb3c"><div class="ttname"><a href="classmlx_1_1core_1_1_expand_dims.html#af64bd4bc2cc5f5c58869f34cd974bb3c">mlx::core::ExpandDims::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expm1_html_a47c2a1b2a4ef6bb07ba77c55ddddaec2"><div class="ttname"><a href="classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2">mlx::core::Expm1::Expm1</a></div><div class="ttdeci">Expm1(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:959</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expm1_html_a82930071f4b77d883b300f77966aff5f"><div class="ttname"><a href="classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f">mlx::core::Expm1::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_expm1_html_ab9c8b7aa50fe4592d55f8957baac647a"><div class="ttname"><a href="classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a">mlx::core::Expm1::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_f_f_t_html_a0cdce626ed2c8eeeecc6949418437839"><div class="ttname"><a href="classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839">mlx::core::FFT::FFT</a></div><div class="ttdeci">FFT(Stream stream, const std::vector< size_t > &axes, bool inverse, bool real)</div><div class="ttdef"><b>Definition</b> primitives.h:997</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_f_f_t_html_a0ede3bc8b6d77d560c0a750b68fddc06"><div class="ttname"><a href="classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06">mlx::core::FFT::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_f_f_t_html_a1c21b26d1e9ad7c4da78ae845721b2dd"><div class="ttname"><a href="classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd">mlx::core::FFT::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_f_f_t_html_a6bc262a0c2b5d4fe655e3e2e0ff28635"><div class="ttname"><a href="classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635">mlx::core::FFT::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_f_f_t_html_a710c6f6e8412da0af0fdbe58fbae320e"><div class="ttname"><a href="classmlx_1_1core_1_1_f_f_t.html#a710c6f6e8412da0af0fdbe58fbae320e">mlx::core::FFT::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1012</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_a2f8e1defb9c33af2dec29ff8697132aa"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#a2f8e1defb9c33af2dec29ff8697132aa">mlx::core::Flatten::output_shape</a></div><div class="ttdeci">static Shape output_shape(const array &input, int start_axis, int end_axis)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_a42499e796aac751fceb4628317cc58f4"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#a42499e796aac751fceb4628317cc58f4">mlx::core::Flatten::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_a5069a73ba1e7b52b7b051f692db6d0d2"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#a5069a73ba1e7b52b7b051f692db6d0d2">mlx::core::Flatten::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_a72ade7d22386b349712f6c7c1f619842"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#a72ade7d22386b349712f6c7c1f619842">mlx::core::Flatten::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_ab9f72c6a90640b91f35a2bcc8dac8780"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#ab9f72c6a90640b91f35a2bcc8dac8780">mlx::core::Flatten::Flatten</a></div><div class="ttdeci">Flatten(Stream stream, int start_axis, int end_axis)</div><div class="ttdef"><b>Definition</b> primitives.h:1024</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_acb2219cc122d218b273af2cb9a882e7f"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#acb2219cc122d218b273af2cb9a882e7f">mlx::core::Flatten::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_flatten_html_af95dd89c47cd2342233dc0b6d36822a3"><div class="ttname"><a href="classmlx_1_1core_1_1_flatten.html#af95dd89c47cd2342233dc0b6d36822a3">mlx::core::Flatten::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1037</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_floor_html_a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7"><div class="ttname"><a href="classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7">mlx::core::Floor::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_floor_html_aaa29c83538099eb8f951c95a41f2eb65"><div class="ttname"><a href="classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65">mlx::core::Floor::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_floor_html_ada4e979b784b732696313d7094e91340"><div class="ttname"><a href="classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340">mlx::core::Floor::Floor</a></div><div class="ttdeci">Floor(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1049</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_full_html_a3dccd3756599d7fd018b2af0093b082c"><div class="ttname"><a href="classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c">mlx::core::Full::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_full_html_aa54f99bb4cba12a551392dea56003872"><div class="ttname"><a href="classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872">mlx::core::Full::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_full_html_aafcb86a2e41353853ec48c717e0c54d6"><div class="ttname"><a href="classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6">mlx::core::Full::Full</a></div><div class="ttdeci">Full(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1063</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_a1344749d33e4ea2cb80b69a5a4a21afc"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#a1344749d33e4ea2cb80b69a5a4a21afc">mlx::core::GatherAxis::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_a474eae1d024e676e668318bf10928e2a"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#a474eae1d024e676e668318bf10928e2a">mlx::core::GatherAxis::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_a8f603c5c46d566654bd8a615d24c1089"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#a8f603c5c46d566654bd8a615d24c1089">mlx::core::GatherAxis::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_abc483c7da7747263b2f1498f98b4d96d"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#abc483c7da7747263b2f1498f98b4d96d">mlx::core::GatherAxis::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_ad8fc6400954c52079f0a2f2b711df060"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#ad8fc6400954c52079f0a2f2b711df060">mlx::core::GatherAxis::GatherAxis</a></div><div class="ttdeci">GatherAxis(Stream stream, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:1100</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_axis_html_adff37b05799654b1a589e334d1cd6b46"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_axis.html#adff37b05799654b1a589e334d1cd6b46">mlx::core::GatherAxis::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1111</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_a23ff1406dbf0c770e75ad47440b467aa"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa">mlx::core::Gather::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_a53d89a6c4ebb634bc208bd85aa2fcda1"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#a53d89a6c4ebb634bc208bd85aa2fcda1">mlx::core::Gather::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_a9ed5587f0d04b59a2b9186c0aac21290"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290">mlx::core::Gather::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_aec48ee529cb2449915a7b27a3c4361e8"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8">mlx::core::Gather::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_aee59ff90127ef4c2d7fcbe2955b95b27"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#aee59ff90127ef4c2d7fcbe2955b95b27">mlx::core::Gather::state</a></div><div class="ttdeci">std::pair< std::vector< int >, std::vector< int > > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1089</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_html_af24220fde798f2ad17cdce297c0dbc43"><div class="ttname"><a href="classmlx_1_1core_1_1_gather.html#af24220fde798f2ad17cdce297c0dbc43">mlx::core::Gather::Gather</a></div><div class="ttdeci">Gather(Stream stream, std::vector< int > axes, Shape slice_sizes)</div><div class="ttdef"><b>Definition</b> primitives.h:1076</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_m_m_html_a62352074a480df0e1f879b0bae425730"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730">mlx::core::GatherMM::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_m_m_html_a76c9f27c57354f6230b43944882e1bda"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_m_m.html#a76c9f27c57354f6230b43944882e1bda">mlx::core::GatherMM::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_m_m_html_ad754c35f460a055cc383ad93a5f72da1"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1">mlx::core::GatherMM::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_m_m_html_afd9bbc08138181b80e2fb86536ff3f2a"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_m_m.html#afd9bbc08138181b80e2fb86536ff3f2a">mlx::core::GatherMM::GatherMM</a></div><div class="ttdeci">GatherMM(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:488</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_q_m_m_html_a60c908bc836f930bb33f60b3e9db43af"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_q_m_m.html#a60c908bc836f930bb33f60b3e9db43af">mlx::core::GatherQMM::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1575</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_q_m_m_html_a60ed2ade7f10dd9c9314913a810f9360"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_q_m_m.html#a60ed2ade7f10dd9c9314913a810f9360">mlx::core::GatherQMM::GatherQMM</a></div><div class="ttdeci">GatherQMM(Stream stream, int group_size, int bits, bool transpose)</div><div class="ttdef"><b>Definition</b> primitives.h:1562</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_q_m_m_html_a6a7da6bcf657fcdb157c45bf35fdec11"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11">mlx::core::GatherQMM::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_q_m_m_html_a86eb048afc95646b2e96ec5493e3d887"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887">mlx::core::GatherQMM::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_gather_q_m_m_html_a89aae98bfbdd6563df44ef7d70f0bf8c"><div class="ttname"><a href="classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c">mlx::core::GatherQMM::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_equal_html_a15469125b9bea89b64bfeac01590c075"><div class="ttname"><a href="classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075">mlx::core::GreaterEqual::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_equal_html_a19a3c49d5a9b40e17da0e56ef6908527"><div class="ttname"><a href="classmlx_1_1core_1_1_greater_equal.html#a19a3c49d5a9b40e17da0e56ef6908527">mlx::core::GreaterEqual::GreaterEqual</a></div><div class="ttdeci">GreaterEqual(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1135</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_equal_html_ac246263b4548126c3d4ab7e392575d24"><div class="ttname"><a href="classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24">mlx::core::GreaterEqual::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_html_a1d5992a66c020cd97a70e8e3d8cd1a1b"><div class="ttname"><a href="classmlx_1_1core_1_1_greater.html#a1d5992a66c020cd97a70e8e3d8cd1a1b">mlx::core::Greater::Greater</a></div><div class="ttdeci">Greater(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1121</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_html_abe1c03f311d0e0b610f3392a6566f2ae"><div class="ttname"><a href="classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae">mlx::core::Greater::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_greater_html_ae8957cccf4c924d941f57a1bb751c878"><div class="ttname"><a href="classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878">mlx::core::Greater::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_hadamard_html_a2470feb690f5463138490763c38b5733"><div class="ttname"><a href="classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733">mlx::core::Hadamard::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_hadamard_html_a8a528d8d69a7343bdfd704a3e74230b8"><div class="ttname"><a href="classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8">mlx::core::Hadamard::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_hadamard_html_ab27d6a9df42b3aab41ace3073a4c880d"><div class="ttname"><a href="classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d">mlx::core::Hadamard::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_hadamard_html_abe4a0ed820b126940beec519d4239923"><div class="ttname"><a href="classmlx_1_1core_1_1_hadamard.html#abe4a0ed820b126940beec519d4239923">mlx::core::Hadamard::Hadamard</a></div><div class="ttdeci">Hadamard(Stream stream, float scale)</div><div class="ttdef"><b>Definition</b> primitives.h:1149</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_hadamard_html_afd67d09fde38ab3b6ba873b797f03dae"><div class="ttname"><a href="classmlx_1_1core_1_1_hadamard.html#afd67d09fde38ab3b6ba873b797f03dae">mlx::core::Hadamard::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1161</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_imag_html_a17d1f1f9f8528668fcdf39b636720829"><div class="ttname"><a href="classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829">mlx::core::Imag::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<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< array > &inputs, array &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:1171</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< array > &inputs, array &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:2291</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:2299</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< array > &inputs, array &output) 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:1199</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_less_equal_html_a55d1352b0e97841a92503bc57c19ed16"><div class="ttname"><a href="classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16">mlx::core::LessEqual::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_less_equal_html_acf035a82b11e6f63742143ea540fedac"><div class="ttname"><a href="classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac">mlx::core::LessEqual::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_less_html_a32624124ffece066f496b3299056bcef"><div class="ttname"><a href="classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef">mlx::core::Less::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_less_html_a353335ce06ddbe8498d86d129c835917"><div class="ttname"><a href="classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917">mlx::core::Less::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_less_html_aa55c5cfbab0ac30e1b72c080fe9525d7"><div class="ttname"><a href="classmlx_1_1core_1_1_less.html#aa55c5cfbab0ac30e1b72c080fe9525d7">mlx::core::Less::Less</a></div><div class="ttdeci">Less(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1185</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_load_html_a06933e887ea94a4d01d81195c5e07a3d"><div class="ttname"><a href="classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d">mlx::core::Load::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_load_html_a3aa8a537cd90bab048df47dca1ed526a"><div class="ttname"><a href="classmlx_1_1core_1_1_load.html#a3aa8a537cd90bab048df47dca1ed526a">mlx::core::Load::Load</a></div><div class="ttdeci">Load(Stream stream, std::shared_ptr< io::Reader > reader, size_t offset, bool swap_endianness=false)</div><div class="ttdef"><b>Definition</b> primitives.h:1213</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_load_html_ada026ac30566f3109d8182e35d307c0a"><div class="ttname"><a href="classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a">mlx::core::Load::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log1p_html_a1b97decae7338d46874e736c95fa7431"><div class="ttname"><a href="classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431">mlx::core::Log1p::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log1p_html_a8192e5438de99c4cda056987935cba23"><div class="ttname"><a href="classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23">mlx::core::Log1p::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log1p_html_ab0d6eb90c6f98775fce56f3446ff127a"><div class="ttname"><a href="classmlx_1_1core_1_1_log1p.html#ab0d6eb90c6f98775fce56f3446ff127a">mlx::core::Log1p::Log1p</a></div><div class="ttdeci">Log1p(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1281</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_add_exp_html_abef17fb590b1a8d356f2a580e45d41f0"><div class="ttname"><a href="classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0">mlx::core::LogAddExp::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_add_exp_html_acace355b62ec00df649f9f99e8f2eb7a"><div class="ttname"><a href="classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a">mlx::core::LogAddExp::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_add_exp_html_ad8938ca90ccf1a3259973fc68902975a"><div class="ttname"><a href="classmlx_1_1core_1_1_log_add_exp.html#ad8938ca90ccf1a3259973fc68902975a">mlx::core::LogAddExp::LogAddExp</a></div><div class="ttdeci">LogAddExp(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1336</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a044a23e8b1422984628e1cd5ab506421"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421">mlx::core::Log::Base</a></div><div class="ttdeci">Base</div><div class="ttdef"><b>Definition</b> primitives.h:1244</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1">mlx::core::Log::ten</a></div><div class="ttdeci">@ ten</div><div class="ttdef"><b>Definition</b> primitives.h:1244</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251">mlx::core::Log::two</a></div><div class="ttdeci">@ two</div><div class="ttdef"><b>Definition</b> primitives.h:1244</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a044a23e8b1422984628e1cd5ab506421a491d45f7af463017c1f8cae94cd05590"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a491d45f7af463017c1f8cae94cd05590">mlx::core::Log::e</a></div><div class="ttdeci">@ e</div><div class="ttdef"><b>Definition</b> primitives.h:1244</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a663e54790c60b56eb0ff09f4f6635fb9"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a663e54790c60b56eb0ff09f4f6635fb9">mlx::core::Log::Log</a></div><div class="ttdeci">Log(Stream stream, Base base)</div><div class="ttdef"><b>Definition</b> primitives.h:1246</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a7b946d98d4a228c6be9f606a3bd8a30d"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d">mlx::core::Log::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1261</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_a86fca2ec3766f5d4a2e6d8ba2983c3aa"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#a86fca2ec3766f5d4a2e6d8ba2983c3aa">mlx::core::Log::state</a></div><div class="ttdeci">Base state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1257</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_aaaa49e9455f3a197bc319646b5ca6390"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390">mlx::core::Log::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_log_html_aadc7bb4cb24f3ecbbb9ed54a699ab74f"><div class="ttname"><a href="classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f">mlx::core::Log::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_and_html_a132b2eedaa3978de5a5350da3c2ca40f"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f">mlx::core::LogicalAnd::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_and_html_aaf2cab8ffcf6606b8babfef60fc06fb3"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_and.html#aaf2cab8ffcf6606b8babfef60fc06fb3">mlx::core::LogicalAnd::LogicalAnd</a></div><div class="ttdeci">LogicalAnd(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1308</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_and_html_adbe1c1785af1a8b827289d22b0d170b3"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3">mlx::core::LogicalAnd::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_not_html_a1d0d2bc93f935eca6c85ef7bf67f2d6a"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a">mlx::core::LogicalNot::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_not_html_a6f5850b4c78b83d5e2c0d37437fc79b7"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_not.html#a6f5850b4c78b83d5e2c0d37437fc79b7">mlx::core::LogicalNot::LogicalNot</a></div><div class="ttdeci">LogicalNot(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1294</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_not_html_acf3f7b3b20ca69533536e0e0a05725b3"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3">mlx::core::LogicalNot::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_or_html_a13cd4cbf26589287e85aeaaca42d7f62"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62">mlx::core::LogicalOr::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_or_html_a269c22daca1c15ad010bb860bce93918"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_or.html#a269c22daca1c15ad010bb860bce93918">mlx::core::LogicalOr::LogicalOr</a></div><div class="ttdeci">LogicalOr(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1322</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_logical_or_html_a3be1da328f0f8620de2e4fc1d22a077a"><div class="ttname"><a href="classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a">mlx::core::LogicalOr::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_matmul_html_a357a7f57a2a220a91977f810a69413fc"><div class="ttname"><a href="classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc">mlx::core::Matmul::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_matmul_html_a8707a4e9b75c769e8f1dbca15c6a1ae7"><div class="ttname"><a href="classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7">mlx::core::Matmul::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_matmul_html_abfabe69f428f7f125bf5665713a0eb5c"><div class="ttname"><a href="classmlx_1_1core_1_1_matmul.html#abfabe69f428f7f125bf5665713a0eb5c">mlx::core::Matmul::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_matmul_html_adef92f30ab35e540ccb316ea6b94e6f7"><div class="ttname"><a href="classmlx_1_1core_1_1_matmul.html#adef92f30ab35e540ccb316ea6b94e6f7">mlx::core::Matmul::Matmul</a></div><div class="ttdeci">Matmul(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1350</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_maximum_html_a28389307e385efe1b2955b86b115e816"><div class="ttname"><a href="classmlx_1_1core_1_1_maximum.html#a28389307e385efe1b2955b86b115e816">mlx::core::Maximum::Maximum</a></div><div class="ttdeci">Maximum(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1364</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_maximum_html_a62b38fbe5f96db58c2b60165ac4eadcf"><div class="ttname"><a href="classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf">mlx::core::Maximum::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_maximum_html_ade0f721b10a6b3a12bdadd34c48f72a7"><div class="ttname"><a href="classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7">mlx::core::Maximum::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_minimum_html_a6b93f493ee87089943a8085fe59dfc6e"><div class="ttname"><a href="classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e">mlx::core::Minimum::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_minimum_html_aadc68afa0afbe2103f19d161f5e0a2ba"><div class="ttname"><a href="classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba">mlx::core::Minimum::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_minimum_html_ab0f2ce17108df44b82cff68886b0f6f5"><div class="ttname"><a href="classmlx_1_1core_1_1_minimum.html#ab0f2ce17108df44b82cff68886b0f6f5">mlx::core::Minimum::Minimum</a></div><div class="ttdeci">Minimum(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1378</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_multiply_html_a624fce06c047cdc4dfdbdcaaddb25f34"><div class="ttname"><a href="classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34">mlx::core::Multiply::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_multiply_html_a634fcb4e981d8d3f4d94252caf25bee0"><div class="ttname"><a href="classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0">mlx::core::Multiply::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_multiply_html_aca5c50f900321f3eb4d6fbcbc225c00c"><div class="ttname"><a href="classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c">mlx::core::Multiply::Multiply</a></div><div class="ttdeci">Multiply(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1392</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_negative_html_a97f1b316eace0c6d9e576d766940c75b"><div class="ttname"><a href="classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b">mlx::core::Negative::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_negative_html_aa3b73395d9fa5b7215dca488bc0d3c70"><div class="ttname"><a href="classmlx_1_1core_1_1_negative.html#aa3b73395d9fa5b7215dca488bc0d3c70">mlx::core::Negative::Negative</a></div><div class="ttdeci">Negative(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1406</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_negative_html_af43553dc418c8ebe75fa9cdcba103c3b"><div class="ttname"><a href="classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b">mlx::core::Negative::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_not_equal_html_a61179747e34e203150e9c660dfddb5f2"><div class="ttname"><a href="classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2">mlx::core::NotEqual::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_not_equal_html_a8f95f8b5873850b875b1641df8196047"><div class="ttname"><a href="classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047">mlx::core::NotEqual::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_not_equal_html_ac568397bd17b5d9f25ad1a0ebadedbb9"><div class="ttname"><a href="classmlx_1_1core_1_1_not_equal.html#ac568397bd17b5d9f25ad1a0ebadedbb9">mlx::core::NotEqual::NotEqual</a></div><div class="ttdeci">NotEqual(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1420</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_a2c98c42915fb2bfe12f5c99ea553eff5"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5">mlx::core::NumberOfElements::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_a6cdf307348ba22b3dc8f90f1fb1e0757"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#a6cdf307348ba22b3dc8f90f1fb1e0757">mlx::core::NumberOfElements::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1450</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_ac64d7c40ae29d687f8b7d2fa33e13b06"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#ac64d7c40ae29d687f8b7d2fa33e13b06">mlx::core::NumberOfElements::NumberOfElements</a></div><div class="ttdeci">NumberOfElements(Stream stream, std::vector< int > axes, bool inverted, Dtype dtype)</div><div class="ttdef"><b>Definition</b> primitives.h:1434</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_acc328321cf5300874ee884367cbede3f"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f">mlx::core::NumberOfElements::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_ad6a32565ccc64499e368e15bba0b438f"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f">mlx::core::NumberOfElements::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_number_of_elements_html_afbfee716b4896e98bdf502ceab87ac09"><div class="ttname"><a href="classmlx_1_1core_1_1_number_of_elements.html#afbfee716b4896e98bdf502ceab87ac09">mlx::core::NumberOfElements::state</a></div><div class="ttdeci">std::tuple< std::vector< int >, bool, Dtype > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1453</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_pad_html_a00a7cff2ae640f45b43f62cc25d6346c"><div class="ttname"><a href="classmlx_1_1core_1_1_pad.html#a00a7cff2ae640f45b43f62cc25d6346c">mlx::core::Pad::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1484</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_pad_html_aa55090a94f574c29678d841d091cdf44"><div class="ttname"><a href="classmlx_1_1core_1_1_pad.html#aa55090a94f574c29678d841d091cdf44">mlx::core::Pad::Pad</a></div><div class="ttdeci">Pad(Stream stream, const std::vector< int > &axes, const Shape &low_pad_size, const Shape &high_pad_size)</div><div class="ttdef"><b>Definition</b> primitives.h:1467</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_pad_html_aad7c3bfecafe435d6a8e807de4c7ea9b"><div class="ttname"><a href="classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b">mlx::core::Pad::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_pad_html_aaf82dd163cd536fbf97304f8b29080cb"><div class="ttname"><a href="classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb">mlx::core::Pad::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_pad_html_aefd4d3a5bd8b6b35b266c9e558ada153"><div class="ttname"><a href="classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153">mlx::core::Pad::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_partition_html_a784596ab567f9f3cb4fe1a69466523d8"><div class="ttname"><a href="classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8">mlx::core::Partition::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_partition_html_a7b82ca3895b6654308fac566b277ac0d"><div class="ttname"><a href="classmlx_1_1core_1_1_partition.html#a7b82ca3895b6654308fac566b277ac0d">mlx::core::Partition::Partition</a></div><div class="ttdeci">Partition(Stream stream, int kth, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:1496</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_partition_html_a8eca1be21ae9ccfda46e6f3e85f506ef"><div class="ttname"><a href="classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef">mlx::core::Partition::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_partition_html_aabdf6ef4f2159b2bfe93e0e87d4772f8"><div class="ttname"><a href="classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8">mlx::core::Partition::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_partition_html_adde13e40924c016473864119465cad4b"><div class="ttname"><a href="classmlx_1_1core_1_1_partition.html#adde13e40924c016473864119465cad4b">mlx::core::Partition::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1507</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_power_html_a6783da16fb6ff393aaa57737f1973206"><div class="ttname"><a href="classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206">mlx::core::Power::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_power_html_a7bc6c64179b7a2aef56fe1dafb6459b2"><div class="ttname"><a href="classmlx_1_1core_1_1_power.html#a7bc6c64179b7a2aef56fe1dafb6459b2">mlx::core::Power::Power</a></div><div class="ttdeci">Power(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1518</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_power_html_a80577d4c0853c24027777c90a1ec7e11"><div class="ttname"><a href="classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11">mlx::core::Power::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a1596dc50b910538eae14878e98f07575"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575">mlx::core::Primitive::eval_cpu</a></div><div class="ttdeci">virtual void eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs)=0</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_primitive_html_a1dcb6807326eeab62474c6a0e3836d42"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42">mlx::core::Primitive::vjp</a></div><div class="ttdeci">virtual std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs)</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a29f70eb2d3b7e6c5fe52779c03f03777"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777">mlx::core::Primitive::~Primitive</a></div><div class="ttdeci">virtual ~Primitive()=default</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a3349f745fae50ca7627f79a731a19e32"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a3349f745fae50ca7627f79a731a19e32">mlx::core::Primitive::Primitive</a></div><div class="ttdeci">Primitive(const Primitive &other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a342da891b9882bdee9a0e0c1ac826eda"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a342da891b9882bdee9a0e0c1ac826eda">mlx::core::Primitive::Primitive</a></div><div class="ttdeci">Primitive(Primitive &&other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a46e6257397a662528f9f831842ac456a"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">mlx::core::Primitive::stream</a></div><div class="ttdeci">const Stream & stream()</div><div class="ttdoc">The stream the primitive will run on.</div><div class="ttdef"><b>Definition</b> primitives.h:58</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a50bbddd43e1ba0cf5f127cd7aa756a9e"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e">mlx::core::Primitive::operator=</a></div><div class="ttdeci">Primitive & operator=(Primitive &&other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a6140a502af4c2bbbc776ab26e9afebcd"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">mlx::core::Primitive::is_equivalent</a></div><div class="ttdeci">virtual bool is_equivalent(const Primitive &other) const</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:107</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a6b1be7ea92f3a7bb19875c70259dad6b"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b">mlx::core::Primitive::operator=</a></div><div class="ttdeci">Primitive & operator=(const Primitive &other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a8ae61e3289c4134232a69295268f8261"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261">mlx::core::Primitive::device</a></div><div class="ttdeci">const Device & device()</div><div class="ttdoc">The device the primitive will run on.</div><div class="ttdef"><b>Definition</b> primitives.h:53</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a9fecf38f53da08ba1947543c2b3158c2"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a9fecf38f53da08ba1947543c2b3158c2">mlx::core::Primitive::jvp</a></div><div class="ttdeci">virtual std::vector< array > jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums)</div><div class="ttdoc">The Jacobian-vector product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_aa5b443d71db1c7ed31a5ae6e31b7fe29"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#aa5b443d71db1c7ed31a5ae6e31b7fe29">mlx::core::Primitive::output_shapes</a></div><div class="ttdeci">virtual std::vector< Shape > output_shapes(const std::vector< array > &inputs)</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_ac632b9619dd7a6a0f177bd36202e8103"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103">mlx::core::Primitive::vmap</a></div><div class="ttdeci">virtual std::pair< std::vector< array >, std::vector< int > > vmap(const std::vector< array > &inputs, const std::vector< int > &axes)</div><div class="ttdoc">The primitive must know how to vectorize itself across the given axes.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_ad217376dcf5eff691d731566faec2ba2"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2">mlx::core::Primitive::eval_gpu</a></div><div class="ttdeci">virtual void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs)=0</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_ae1aff91354ce036596088a3e19474ecb"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb">mlx::core::Primitive::print</a></div><div class="ttdeci">virtual void print(std::ostream &os)=0</div><div class="ttdoc">Print the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_afc69f22ee1f6e8a9ecc2c3a8f43b8fdb"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#afc69f22ee1f6e8a9ecc2c3a8f43b8fdb">mlx::core::Primitive::Primitive</a></div><div class="ttdeci">Primitive(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:50</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_q_r_f_html_a44ed2924dc574c4aeb79b1188b5c3983"><div class="ttname"><a href="classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983">mlx::core::QRF::QRF</a></div><div class="ttdeci">QRF(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2264</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_q_r_f_html_a48493887395d65a27f04de1804d277d2"><div class="ttname"><a href="classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2">mlx::core::QRF::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_q_r_f_html_ae5fa3482192f4713605cd07e7fc1c6c9"><div class="ttname"><a href="classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9">mlx::core::QRF::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_a2812ad007d695ed1aaf9cf706fb9c4b3"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3">mlx::core::QuantizedMatmul::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_a5bd164d038d9dc21919f7e0bfdeaa25c"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c">mlx::core::QuantizedMatmul::QuantizedMatmul</a></div><div class="ttdeci">QuantizedMatmul(Stream stream, int group_size, int bits, bool transpose)</div><div class="ttdef"><b>Definition</b> primitives.h:1532</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_a7d57a31d41c58e1bd88ffe9c6b0dbf52"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#a7d57a31d41c58e1bd88ffe9c6b0dbf52">mlx::core::QuantizedMatmul::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_ab3dfa73b74d8f4f2e9ab4f0eb016b0e3"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3">mlx::core::QuantizedMatmul::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_ad83bfd32fda988c29e5ca277a84c0655"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#ad83bfd32fda988c29e5ca277a84c0655">mlx::core::QuantizedMatmul::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1550</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_quantized_matmul_html_af28b36e3f40ea41785387800326cc8e1"><div class="ttname"><a href="classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1">mlx::core::QuantizedMatmul::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_random_bits_html_a5752d051cd16cf5f8d4754c0a656f0d2"><div class="ttname"><a href="classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2">mlx::core::RandomBits::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_random_bits_html_a578756866665358577418e4cdd94aa3a"><div class="ttname"><a href="classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a">mlx::core::RandomBits::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_random_bits_html_a72ec915debf5823e7c0463045b2894e6"><div class="ttname"><a href="classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6">mlx::core::RandomBits::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_random_bits_html_a75a34d7541a1c124710dc4d0ec2dfa60"><div class="ttname"><a href="classmlx_1_1core_1_1_random_bits.html#a75a34d7541a1c124710dc4d0ec2dfa60">mlx::core::RandomBits::state</a></div><div class="ttdeci">std::pair< std::vector< int >, int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1596</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_random_bits_html_acd79c5ea2d67132c98d00fa927f08e26"><div class="ttname"><a href="classmlx_1_1core_1_1_random_bits.html#acd79c5ea2d67132c98d00fa927f08e26">mlx::core::RandomBits::RandomBits</a></div><div class="ttdeci">RandomBits(Stream stream, const Shape &shape, int width)</div><div class="ttdef"><b>Definition</b> primitives.h:1587</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_real_html_a1e209e88a43bdd1eea43ad0b03f9a7f2"><div class="ttname"><a href="classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2">mlx::core::Real::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_real_html_a365d046caac91b521f0f5a5518037934"><div class="ttname"><a href="classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934">mlx::core::Real::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_real_html_acd4480e3f0834d70ff6b5f1ecef17892"><div class="ttname"><a href="classmlx_1_1core_1_1_real.html#acd4480e3f0834d70ff6b5f1ecef17892">mlx::core::Real::Real</a></div><div class="ttdeci">Real(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1607</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a055368c1d036fb953a23ef230e33dcbf"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a055368c1d036fb953a23ef230e33dcbf">mlx::core::Reduce::Reduce</a></div><div class="ttdeci">Reduce(Stream stream, ReduceType reduce_type, const std::vector< int > &axes)</div><div class="ttdef"><b>Definition</b> primitives.h:1645</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9">mlx::core::Reduce::ReduceType</a></div><div class="ttdeci">ReduceType</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a0d3d1f5c94725bdc42fa692e2c074418">mlx::core::Reduce::Min</a></div><div class="ttdeci">@ Min</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9a2e53e38f8b906ed4def9a5653aeb51fe"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a2e53e38f8b906ed4def9a5653aeb51fe">mlx::core::Reduce::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9a3d11c500ea4f7f639e20dd0755d39260"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a3d11c500ea4f7f639e20dd0755d39260">mlx::core::Reduce::Max</a></div><div class="ttdeci">@ Max</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93">mlx::core::Reduce::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd">mlx::core::Reduce::Sum</a></div><div class="ttdeci">@ Sum</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a0848518b16ae6d4043d6be247bdf31c9ac5b077bfec55fe2b141b197dfa00ecf7"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9ac5b077bfec55fe2b141b197dfa00ecf7">mlx::core::Reduce::Prod</a></div><div class="ttdeci">@ Prod</div><div class="ttdef"><b>Definition</b> primitives.h:1643</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a399be3a89553787a0a687706881f03cd"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd">mlx::core::Reduce::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1664</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_a684883d2a96315f548ca769510e28e4e"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#a684883d2a96315f548ca769510e28e4e">mlx::core::Reduce::vjp</a></div><div class="ttdeci">std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_aaf3da1c98cdf530803118b382c5f58bc"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#aaf3da1c98cdf530803118b382c5f58bc">mlx::core::Reduce::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_abe8f3327d617d0dd7438f066497ae08e"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e">mlx::core::Reduce::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_ae9caaf42edadfe73ea208d98f526890f"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f">mlx::core::Reduce::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_aeb8a58b560c0a09ae3a695df7829acfa"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa">mlx::core::Reduce::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reduce_html_afca1398c042a3b1ca9a9a2e40fe62367"><div class="ttname"><a href="classmlx_1_1core_1_1_reduce.html#afca1398c042a3b1ca9a9a2e40fe62367">mlx::core::Reduce::state</a></div><div class="ttdeci">std::pair< ReduceType, std::vector< int > > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1687</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_remainder_html_a4f3eada4a21898af4a77d1d27ce14641"><div class="ttname"><a href="classmlx_1_1core_1_1_remainder.html#a4f3eada4a21898af4a77d1d27ce14641">mlx::core::Remainder::Remainder</a></div><div class="ttdeci">Remainder(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:875</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_remainder_html_a7919ea9b84e42522d51bf0d5a396e161"><div class="ttname"><a href="classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161">mlx::core::Remainder::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_remainder_html_ac6c6c86a0bf02e6e529eb87f6e617ccc"><div class="ttname"><a href="classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc">mlx::core::Remainder::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_a658de2c5f710991b48e14b2bd19b229f"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f">mlx::core::Reshape::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_aa15020d7d844d714d42bc60b44aeefc1"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#aa15020d7d844d714d42bc60b44aeefc1">mlx::core::Reshape::output_shape</a></div><div class="ttdeci">static Shape output_shape(const array &input, Shape shape)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_aa1e85f28471875750c47351520b56059"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059">mlx::core::Reshape::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_aa5a5d520b6ec6c8d9ba9d79808e36312"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#aa5a5d520b6ec6c8d9ba9d79808e36312">mlx::core::Reshape::Reshape</a></div><div class="ttdeci">Reshape(Stream stream, const Shape &shape)</div><div class="ttdef"><b>Definition</b> primitives.h:1621</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_aa8ad5958aac8723dd6ce49820eaba029"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#aa8ad5958aac8723dd6ce49820eaba029">mlx::core::Reshape::state</a></div><div class="ttdeci">std::vector< int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1631</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_abd07c53af476777a04307e0423784cf3"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3">mlx::core::Reshape::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_reshape_html_aed3a83606d6917b2c344607101a2c43d"><div class="ttname"><a href="classmlx_1_1core_1_1_reshape.html#aed3a83606d6917b2c344607101a2c43d">mlx::core::Reshape::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<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:1698</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< array > &inputs, array &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< array > &inputs, array &out) override</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< array > &inputs, std::vector< array > &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< array > &inputs, std::vector< array > &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:2277</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< array > &inputs, array &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:1712</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:1712</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1a7d2ee8f14f2e70a9d47170fecc6da898">mlx::core::Scan::Min</a></div><div class="ttdeci">@ Min</div><div class="ttdef"><b>Definition</b> primitives.h:1712</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ad54b2905015a390708f79bae6cdac56d">mlx::core::Scan::Max</a></div><div class="ttdeci">@ Max</div><div class="ttdef"><b>Definition</b> primitives.h:1712</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36">mlx::core::Scan::Sum</a></div><div class="ttdeci">@ Sum</div><div class="ttdef"><b>Definition</b> primitives.h:1712</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a54445a4d677ca4fe2a58d08eb5223ac6"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6">mlx::core::Scan::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_a7249ca4c3316b1b1248df32c71fee0ea"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#a7249ca4c3316b1b1248df32c71fee0ea">mlx::core::Scan::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1750</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_ac93e8f9c6771de825d2186ef34fa7087"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#ac93e8f9c6771de825d2186ef34fa7087">mlx::core::Scan::Scan</a></div><div class="ttdeci">Scan(Stream stream, ReduceType reduce_type, int axis, bool reverse, bool inclusive)</div><div class="ttdef"><b>Definition</b> primitives.h:1714</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_ad5b6308c79e9b985a49df35eadd15b22"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22">mlx::core::Scan::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1732</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scan_html_aef22c6fc2b2cb2a907cd8965c7413dde"><div class="ttname"><a href="classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde">mlx::core::Scan::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_a1a0125be908a1d80875236c817f34495"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#a1a0125be908a1d80875236c817f34495">mlx::core::ScatterAxis::state</a></div><div class="ttdeci">std::pair< ReduceType, int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1832</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_a657843d4d9846ecd56e35e066986eb96"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#a657843d4d9846ecd56e35e066986eb96">mlx::core::ScatterAxis::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1819</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_a715c3b959dc904faefb16edbb11f29d7"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#a715c3b959dc904faefb16edbb11f29d7">mlx::core::ScatterAxis::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_a7365a2c5fddb1c39509998598de411db"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#a7365a2c5fddb1c39509998598de411db">mlx::core::ScatterAxis::ScatterAxis</a></div><div class="ttdeci">ScatterAxis(Stream stream, ReduceType reduce_type, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:1810</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_aa292e6cb2a4b32c42ad4f7a258b334f2"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2">mlx::core::ScatterAxis::ReduceType</a></div><div class="ttdeci">ReduceType</div><div class="ttdef"><b>Definition</b> primitives.h:1808</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_aa292e6cb2a4b32c42ad4f7a258b334f2a702b8cfdaf7fe3e063873595ff0508f2"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a702b8cfdaf7fe3e063873595ff0508f2">mlx::core::ScatterAxis::Sum</a></div><div class="ttdeci">@ Sum</div><div class="ttdef"><b>Definition</b> primitives.h:1808</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_aa292e6cb2a4b32c42ad4f7a258b334f2a93146c4280504f1f67459e6ae0d25c38"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#aa292e6cb2a4b32c42ad4f7a258b334f2a93146c4280504f1f67459e6ae0d25c38">mlx::core::ScatterAxis::None</a></div><div class="ttdeci">@ None</div><div class="ttdef"><b>Definition</b> primitives.h:1808</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_abf9d24565abdd7e1034daacac603cc54"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#abf9d24565abdd7e1034daacac603cc54">mlx::core::ScatterAxis::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_af511c39926d5b85ca59558d64e0608fb"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#af511c39926d5b85ca59558d64e0608fb">mlx::core::ScatterAxis::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_axis_html_af9688c010e1abee9b7b3788f11d91cc5"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter_axis.html#af9688c010e1abee9b7b3788f11d91cc5">mlx::core::ScatterAxis::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a0208172562abdc90472e6eb5f84c987f"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f">mlx::core::Scatter::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a50a65033dc2a1cc84bf529ba718c9c60"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a50a65033dc2a1cc84bf529ba718c9c60">mlx::core::Scatter::state</a></div><div class="ttdeci">std::pair< ReduceType, std::vector< int > > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1797</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613c"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613c">mlx::core::Scatter::ReduceType</a></div><div class="ttdeci">ReduceType</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f">mlx::core::Scatter::Sum</a></div><div class="ttdeci">@ Sum</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca1c2da7b96d743296fe660f5fc4072f16">mlx::core::Scatter::Max</a></div><div class="ttdeci">@ Max</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613ca5e43e8ffd1f5ba49826e2e7ac3450466"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca5e43e8ffd1f5ba49826e2e7ac3450466">mlx::core::Scatter::Prod</a></div><div class="ttdeci">@ Prod</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613ca87a6a1927de175b71d7d0b5c11b8665c"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca87a6a1927de175b71d7d0b5c11b8665c">mlx::core::Scatter::None</a></div><div class="ttdeci">@ None</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613cad914e4c3475ce9858f2de4bf35dcfdbf">mlx::core::Scatter::Min</a></div><div class="ttdeci">@ Min</div><div class="ttdef"><b>Definition</b> primitives.h:1763</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_a7623f590f8b77167b5ebb4f14bc9dc97"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97">mlx::core::Scatter::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_aa9d45cbfb27b814517f6016092b30efa"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa">mlx::core::Scatter::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:1777</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_ab304345db3d8cfeea15e27461ae2e678"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678">mlx::core::Scatter::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_scatter_html_ac9b3eff67389ef9aa820753379ffeaa3"><div class="ttname"><a href="classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3">mlx::core::Scatter::Scatter</a></div><div class="ttdeci">Scatter(Stream stream, ReduceType reduce_type, const std::vector< int > &axes)</div><div class="ttdef"><b>Definition</b> primitives.h:1765</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_select_html_a2a82b6cba4c386b2b87f225a4b08ea9b"><div class="ttname"><a href="classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b">mlx::core::Select::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_select_html_a6f833fe55dd68ad3726bbf9a8f75eec9"><div class="ttname"><a href="classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9">mlx::core::Select::Select</a></div><div class="ttdeci">Select(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:861</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_select_html_aa51aa36e0adbd69e0d23d7c7adf88de2"><div class="ttname"><a href="classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2">mlx::core::Select::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sigmoid_html_a47eca99113ec19f0eb60b6a0472c592b"><div class="ttname"><a href="classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b">mlx::core::Sigmoid::Sigmoid</a></div><div class="ttdeci">Sigmoid(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1843</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sigmoid_html_a7a6bd0222d51d7f25f2719a91ccdfeca"><div class="ttname"><a href="classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca">mlx::core::Sigmoid::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sigmoid_html_aa930ce05734cca529ebcb8d0ca8e1255"><div class="ttname"><a href="classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255">mlx::core::Sigmoid::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sign_html_a7498ec993b66879be30c5d9762c45a97"><div class="ttname"><a href="classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97">mlx::core::Sign::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sign_html_afa2b48b99a194106006b44af69ffda8b"><div class="ttname"><a href="classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b">mlx::core::Sign::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sign_html_afe951e50907bc23a601ec5fa9eae5763"><div class="ttname"><a href="classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763">mlx::core::Sign::Sign</a></div><div class="ttdeci">Sign(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1857</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sin_html_a10d1ecc0ca96e79cdf55b57073d126ea"><div class="ttname"><a href="classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea">mlx::core::Sin::Sin</a></div><div class="ttdeci">Sin(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1871</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sin_html_a6b59f1156cf8bdad8d45acd1d825cb5e"><div class="ttname"><a href="classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e">mlx::core::Sin::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sin_html_ab34f9cebc2aed55a0b6ab4c991f02eb5"><div class="ttname"><a href="classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5">mlx::core::Sin::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sinh_html_a4a4f6814d403c2ce5d6c574b0dca3c96"><div class="ttname"><a href="classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96">mlx::core::Sinh::Sinh</a></div><div class="ttdeci">Sinh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:1885</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sinh_html_a5a1af2399f166d5b228b5e83a1837c75"><div class="ttname"><a href="classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75">mlx::core::Sinh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sinh_html_ab6d5f6f40d177f6435f6a51c71b939dd"><div class="ttname"><a href="classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd">mlx::core::Sinh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_html_a069dafc62bf71e3ebc0bd99d96ec23be"><div class="ttname"><a href="classmlx_1_1core_1_1_slice.html#a069dafc62bf71e3ebc0bd99d96ec23be">mlx::core::Slice::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1916</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_html_a3aa025acbf4a9ca9e030a1e6bda102f7"><div class="ttname"><a href="classmlx_1_1core_1_1_slice.html#a3aa025acbf4a9ca9e030a1e6bda102f7">mlx::core::Slice::Slice</a></div><div class="ttdeci">Slice(Stream stream, const Shape &start_indices, const Shape &end_indices, const Shape &strides)</div><div class="ttdef"><b>Definition</b> primitives.h:1899</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_html_a43202c3b8966ae1db9ab82072e4918b0"><div class="ttname"><a href="classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0">mlx::core::Slice::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_html_a4b13503f5b2f5c6a90d394b020f9b3f2"><div class="ttname"><a href="classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2">mlx::core::Slice::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_html_aa53c21ff06a7c659e889af6b97d10a4a"><div class="ttname"><a href="classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a">mlx::core::Slice::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_update_html_a60f588acced42391e6e5615ae8d16119"><div class="ttname"><a href="classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119">mlx::core::SliceUpdate::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_update_html_a63a49264b18340f2bc442c081a7b4c7a"><div class="ttname"><a href="classmlx_1_1core_1_1_slice_update.html#a63a49264b18340f2bc442c081a7b4c7a">mlx::core::SliceUpdate::SliceUpdate</a></div><div class="ttdeci">SliceUpdate(Stream stream, const Shape &start_indices, const Shape &end_indices, const Shape &strides)</div><div class="ttdef"><b>Definition</b> primitives.h:1928</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_update_html_aac1a1d122e5697be057d63552141032b"><div class="ttname"><a href="classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b">mlx::core::SliceUpdate::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_update_html_aac5156a19209274b7de1dff231ef25fd"><div class="ttname"><a href="classmlx_1_1core_1_1_slice_update.html#aac5156a19209274b7de1dff231ef25fd">mlx::core::SliceUpdate::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:1946</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_slice_update_html_ad82ca0e3ab88a0e086431050deea831b"><div class="ttname"><a href="classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b">mlx::core::SliceUpdate::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_softmax_html_a35dac69ddcc7e2ec0e1a76fe93db85af"><div class="ttname"><a href="classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af">mlx::core::Softmax::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_softmax_html_a4ec686aac4e06f0dfe2cbd6801af40eb"><div class="ttname"><a href="classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb">mlx::core::Softmax::Softmax</a></div><div class="ttdeci">Softmax(Stream stream, bool precise)</div><div class="ttdef"><b>Definition</b> primitives.h:2003</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_softmax_html_a9215ed7bd36bc11276c58dfb9808d728"><div class="ttname"><a href="classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728">mlx::core::Softmax::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_softmax_html_ac9ebc2eab1683b682e689ed8f4622b79"><div class="ttname"><a href="classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79">mlx::core::Softmax::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_softmax_html_adf665f7c292e84f56c630016b75427f3"><div class="ttname"><a href="classmlx_1_1core_1_1_softmax.html#adf665f7c292e84f56c630016b75427f3">mlx::core::Softmax::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2015</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sort_html_a4141c48f0e8670c728663f3722675382"><div class="ttname"><a href="classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382">mlx::core::Sort::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sort_html_a459769a0241b2620e55bedaba19827cd"><div class="ttname"><a href="classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd">mlx::core::Sort::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sort_html_a5ab15d1a89efd8661887c805c35fc617"><div class="ttname"><a href="classmlx_1_1core_1_1_sort.html#a5ab15d1a89efd8661887c805c35fc617">mlx::core::Sort::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2036</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sort_html_a62943032dbd72e85ceb9b4b7211f4a44"><div class="ttname"><a href="classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44">mlx::core::Sort::Sort</a></div><div class="ttdeci">Sort(Stream stream, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:2025</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sort_html_ae48f07cf641d54234fc4fb6529a33511"><div class="ttname"><a href="classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511">mlx::core::Sort::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_split_html_a78ddda89c4daee73c74cfbc1e44656df"><div class="ttname"><a href="classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df">mlx::core::Split::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_split_html_a915156cde0448ec26776e329004b1a92"><div class="ttname"><a href="classmlx_1_1core_1_1_split.html#a915156cde0448ec26776e329004b1a92">mlx::core::Split::state</a></div><div class="ttdeci">std::pair< std::vector< int >, int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2058</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_split_html_ad3f4ed34b85c73683bad5d530309342f"><div class="ttname"><a href="classmlx_1_1core_1_1_split.html#ad3f4ed34b85c73683bad5d530309342f">mlx::core::Split::Split</a></div><div class="ttdeci">Split(Stream stream, const Shape &indices, int axis)</div><div class="ttdef"><b>Definition</b> primitives.h:2046</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_split_html_af25a0cc259573b9dce60d285eee18345"><div class="ttname"><a href="classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345">mlx::core::Split::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_split_html_aff2889cb9074f0fda53edf8fa40b1fd4"><div class="ttname"><a href="classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4">mlx::core::Split::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &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_sqrt_html_a053853757ad99195e3f2b1cca571e31b"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#a053853757ad99195e3f2b1cca571e31b">mlx::core::Sqrt::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2095</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sqrt_html_a5a64ecc4eef1e30a2963435dca7cefd5"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5">mlx::core::Sqrt::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sqrt_html_a6682a7c31ca427c9d2c5ddb6a479bf29"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29">mlx::core::Sqrt::Sqrt</a></div><div class="ttdeci">Sqrt(Stream stream, bool recip=false)</div><div class="ttdef"><b>Definition</b> primitives.h:2085</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sqrt_html_a6d205e679a593d1ba20206c5c47ba501"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501">mlx::core::Sqrt::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sqrt_html_a8681c8de2f50049848d320c47f713c0f"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f">mlx::core::Sqrt::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:2099</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_sqrt_html_ab871c2b8ab4a27a3f782a005d0e87c46"><div class="ttname"><a href="classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46">mlx::core::Sqrt::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_square_html_a0ea2a78a5bb52daa4103263bf2f98045"><div class="ttname"><a href="classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045">mlx::core::Square::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_square_html_a1f4d327a705950616da63b83c2829e59"><div class="ttname"><a href="classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59">mlx::core::Square::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_square_html_ab94e28d5c92e6febc1c74e525f730dc4"><div class="ttname"><a href="classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4">mlx::core::Square::Square</a></div><div class="ttdeci">Square(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2071</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a032bd53dcc3d71a11d810bc3ca3ef4b0"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a032bd53dcc3d71a11d810bc3ca3ef4b0">mlx::core::Squeeze::Squeeze</a></div><div class="ttdeci">Squeeze(Stream stream, std::vector< int > axes)</div><div class="ttdef"><b>Definition</b> primitives.h:2143</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a04f9d2595cb7d4ec988479cd33fe9362"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a04f9d2595cb7d4ec988479cd33fe9362">mlx::core::Squeeze::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2157</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a08f35991d36e30fa4c05a5c9e91feb93"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a08f35991d36e30fa4c05a5c9e91feb93">mlx::core::Squeeze::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a18d382c8bc59d60b38e9fd1cb70660fd"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a18d382c8bc59d60b38e9fd1cb70660fd">mlx::core::Squeeze::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a839d9d72ac0a19e1146b5b470292a174"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a839d9d72ac0a19e1146b5b470292a174">mlx::core::Squeeze::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_a9bcb7476041020f59ef816196ddb81cb"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#a9bcb7476041020f59ef816196ddb81cb">mlx::core::Squeeze::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_squeeze_html_aadf1d3b85839390a2ec560603aeed04a"><div class="ttname"><a href="classmlx_1_1core_1_1_squeeze.html#aadf1d3b85839390a2ec560603aeed04a">mlx::core::Squeeze::output_shape</a></div><div class="ttdeci">static Shape output_shape(const array &input, const std::vector< int > &axes)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_stop_gradient_html_a56207714d374b08f60e4d9cdbc7340b2"><div class="ttname"><a href="classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2">mlx::core::StopGradient::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_stop_gradient_html_a907b96f0a1ce608e211d87ccf2b9ca89"><div class="ttname"><a href="classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89">mlx::core::StopGradient::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_stop_gradient_html_ac70d1ab819d04e00f76bc25aeebaf84f"><div class="ttname"><a href="classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f">mlx::core::StopGradient::StopGradient</a></div><div class="ttdeci">StopGradient(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2113</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_subtract_html_a47574258b6c95f8ad260c114d6d36a12"><div class="ttname"><a href="classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12">mlx::core::Subtract::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_subtract_html_a69021b23daf061764d97fabbc0f4f06c"><div class="ttname"><a href="classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c">mlx::core::Subtract::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_subtract_html_a834854757394f8de7082af65bf86ed9c"><div class="ttname"><a href="classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c">mlx::core::Subtract::Subtract</a></div><div class="ttdeci">Subtract(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2129</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tan_html_a8dcc9ff660210ccf05134dd95f47de08"><div class="ttname"><a href="classmlx_1_1core_1_1_tan.html#a8dcc9ff660210ccf05134dd95f47de08">mlx::core::Tan::Tan</a></div><div class="ttdeci">Tan(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2168</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tan_html_a9c9a731158fa60eef30067fe0da9f3e9"><div class="ttname"><a href="classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9">mlx::core::Tan::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tan_html_aca7dbb4836507005a2032ac957a04d3f"><div class="ttname"><a href="classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f">mlx::core::Tan::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tanh_html_a48df896599ae93dbce84a5c0f50cf761"><div class="ttname"><a href="classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761">mlx::core::Tanh::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tanh_html_ae551297bf573e1802fb831440276dee4"><div class="ttname"><a href="classmlx_1_1core_1_1_tanh.html#ae551297bf573e1802fb831440276dee4">mlx::core::Tanh::Tanh</a></div><div class="ttdeci">Tanh(Stream stream)</div><div class="ttdef"><b>Definition</b> primitives.h:2182</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_tanh_html_af7ed4345f622da069e5b0284067923f5"><div class="ttname"><a href="classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5">mlx::core::Tanh::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_a1a9ba023584c61c7ac93d6dce536760a"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a">mlx::core::Transpose::Transpose</a></div><div class="ttdeci">Transpose(Stream stream, const std::vector< int > &axes)</div><div class="ttdef"><b>Definition</b> primitives.h:2240</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_a1fbcfcca43f9ec06c63a3c14708c30f8"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8">mlx::core::Transpose::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_a23167291e2bf12e2bb2e51d1db340909"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#a23167291e2bf12e2bb2e51d1db340909">mlx::core::Transpose::state</a></div><div class="ttdeci">std::vector< int > state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2251</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_a38d25739c08aa594a6775015a1d7d92e"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e">mlx::core::Transpose::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_a799ec3c3fa9f1b9e6177c755252a3eab"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab">mlx::core::Transpose::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_transpose_html_ac9328f43900bedec555909d09202ccd7"><div class="ttname"><a href="classmlx_1_1core_1_1_transpose.html#ac9328f43900bedec555909d09202ccd7">mlx::core::Transpose::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html">mlx::core::UnaryPrimitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:126</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a0a859309a4f192f2679e07f2e4ff4d22"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22">mlx::core::UnaryPrimitive::operator=</a></div><div class="ttdeci">UnaryPrimitive & operator=(const UnaryPrimitive &other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a189f6d4ed369f82a4b724a29eb056d4e"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a189f6d4ed369f82a4b724a29eb056d4e">mlx::core::UnaryPrimitive::UnaryPrimitive</a></div><div class="ttdeci">UnaryPrimitive(Stream stream)</div><div class="ttdoc">An abstract base class for a primitive with a single output.</div><div class="ttdef"><b>Definition</b> primitives.h:131</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a6b7f80abaf038d53ec6ffbb0dfac6adb"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb">mlx::core::UnaryPrimitive::eval_gpu</a></div><div class="ttdeci">virtual void eval_gpu(const std::vector< array > &inputs, array &output)=0</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a780281fb04e2daf1be630c124bd605e3"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a780281fb04e2daf1be630c124bd605e3">mlx::core::UnaryPrimitive::UnaryPrimitive</a></div><div class="ttdeci">UnaryPrimitive(UnaryPrimitive &&other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a7e8f6f5d6ae0a33f6abc0f5a46e0b132"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132">mlx::core::UnaryPrimitive::eval_cpu</a></div><div class="ttdeci">virtual void eval_cpu(const std::vector< array > &inputs, array &output)=0</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a971fe9ad47f6569118879ce1d0f41447"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447">mlx::core::UnaryPrimitive::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div><div class="ttdef"><b>Definition</b> primitives.h:141</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_a9935cffc4f246d3d883bc3d26c5163f2"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#a9935cffc4f246d3d883bc3d26c5163f2">mlx::core::UnaryPrimitive::UnaryPrimitive</a></div><div class="ttdeci">UnaryPrimitive(const UnaryPrimitive &other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_aa0ed6e32c36200a3ff9bc592c9b300db"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db">mlx::core::UnaryPrimitive::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div><div class="ttdef"><b>Definition</b> primitives.h:136</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_ab90b2ea80f1d914be03cf44def5db5a5"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5">mlx::core::UnaryPrimitive::operator=</a></div><div class="ttdeci">UnaryPrimitive & operator=(UnaryPrimitive &&other)=delete</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unary_primitive_html_ac0677ab99a5ca660ed6ab7902ea364de"><div class="ttname"><a href="classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de">mlx::core::UnaryPrimitive::~UnaryPrimitive</a></div><div class="ttdeci">virtual ~UnaryPrimitive()=default</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_a068cf053b5b0612fafd4a2d53d42f9fa"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#a068cf053b5b0612fafd4a2d53d42f9fa">mlx::core::Unflatten::output_shapes</a></div><div class="ttdeci">std::vector< Shape > output_shapes(const std::vector< array > &inputs) override</div><div class="ttdoc">Get the output shapes of the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_a2d1c32eb1fe2bc7641ade600453c7966"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#a2d1c32eb1fe2bc7641ade600453c7966">mlx::core::Unflatten::Unflatten</a></div><div class="ttdeci">Unflatten(Stream stream, int axis, Shape shape)</div><div class="ttdef"><b>Definition</b> primitives.h:2196</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_a4c760c8fe981fd2ac17a31ff9faff10a"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#a4c760c8fe981fd2ac17a31ff9faff10a">mlx::core::Unflatten::output_shape</a></div><div class="ttdeci">static Shape output_shape(const array &input, int axis, const Shape &shape)</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_a507c22306b7afcdd5970cfaa32188f0a"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#a507c22306b7afcdd5970cfaa32188f0a">mlx::core::Unflatten::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_a6a89fc709aae0fb3e17035e39b5ccd58"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#a6a89fc709aae0fb3e17035e39b5ccd58">mlx::core::Unflatten::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_adfbb8208355f9c3cb2e4cb1fd4fe788f"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#adfbb8208355f9c3cb2e4cb1fd4fe788f">mlx::core::Unflatten::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_unflatten_html_aeba13680064238191811230171365598"><div class="ttname"><a href="classmlx_1_1core_1_1_unflatten.html#aeba13680064238191811230171365598">mlx::core::Unflatten::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2209</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_a0ad6deb11914a242f10e8039fcb02497"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497">mlx::core::View::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, array &out) override</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_a37620f6548630bd2d0dd44e9ab084b93"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#a37620f6548630bd2d0dd44e9ab084b93">mlx::core::View::state</a></div><div class="ttdeci">auto state() const</div><div class="ttdef"><b>Definition</b> primitives.h:2230</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_a513b034919a8a494add3155f910a360c"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c">mlx::core::View::print</a></div><div class="ttdeci">void print(std::ostream &os) override</div><div class="ttdoc">Print the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_a7cb8403a96a47cb258caac4e3b850f64"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64">mlx::core::View::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_ad7eed156c308e9a29a8b41f965ec941e"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e">mlx::core::View::View</a></div><div class="ttdeci">View(Stream stream, Dtype dtype)</div><div class="ttdef"><b>Definition</b> primitives.h:2221</div></div>
|
|
<div class="ttc" id="aclassmlx_1_1core_1_1_view_html_add6e12ff1e476fe1db7718b14f21b075"><div class="ttname"><a href="classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075">mlx::core::View::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, array &out) override</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="adevice_8h_html"><div class="ttname"><a href="device_8h.html">device.h</a></div></div>
|
|
<div class="ttc" id="agroup__ops_html_ga2a466024f8061febc0a64be557644cb0"><div class="ttname"><a href="group__ops.html#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a></div><div class="ttdeci">array std(const array &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="agroup__ops_html_ga4f3389e5b89e70e862e7d2b40d6c7f78"><div class="ttname"><a href="group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78">mlx::core::tri</a></div><div class="ttdeci">array tri(int n, int m, int k, Dtype type, StreamOrDevice s={})</div></div>
|
|
<div class="ttc" id="agroup__ops_html_gac1869f3b7094869b44fe7ac4ce58638b"><div class="ttname"><a href="group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b">mlx::core::transpose</a></div><div class="ttdeci">array transpose(const array &a, std::vector< int > axes, StreamOrDevice s={})</div><div class="ttdoc">Permutes the dimensions according to the given axes.</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 &a, StreamOrDevice s={})</div></div>
|
|
<div class="ttc" id="aio_2load_8h_html"><div class="ttname"><a href="io_2load_8h.html">load.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_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector< ShapeElem > Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
|
|
<div class="ttc" id="anamespacemlx_1_1core_html_a6f7c63a9be10337b3b96d527e1db3c2f"><div class="ttname"><a href="namespacemlx_1_1core.html#a6f7c63a9be10337b3b96d527e1db3c2f">mlx::core::new_stream</a></div><div class="ttdeci">Stream new_stream(Device d)</div><div class="ttdoc">Make a new stream on the given device.</div></div>
|
|
<div class="ttc" id="anamespacemlx_1_1core_html_a79939016d0972ded7db37130da2a8b5c"><div class="ttname"><a href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a></div><div class="ttdeci">std::vector< int64_t > Strides</div><div class="ttdef"><b>Definition</b> array.h:22</div></div>
|
|
<div class="ttc" id="anamespacemlx_1_1core_html_a7d6e097d8effed52f4713672e471f299"><div class="ttname"><a href="namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299">mlx::core::eval</a></div><div class="ttdeci">void eval(std::vector< array > outputs)</div></div>
|
|
<div class="ttc" id="aprimitives_8h_html_a0fb9d19207dc4869aca35abfbdf4d70a"><div class="ttname"><a href="primitives_8h.html#a0fb9d19207dc4869aca35abfbdf4d70a">DEFINE_DEFAULT_IS_EQUIVALENT</a></div><div class="ttdeci">#define DEFINE_DEFAULT_IS_EQUIVALENT()</div><div class="ttdef"><b>Definition</b> primitives.h:34</div></div>
|
|
<div class="ttc" id="aprimitives_8h_html_a1d3a37af519e16f6a703b1e9ebd0f592"><div class="ttname"><a href="primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592">DEFINE_PRINT</a></div><div class="ttdeci">#define DEFINE_PRINT(PRIMITIVE)</div><div class="ttdef"><b>Definition</b> primitives.h:29</div></div>
|
|
<div class="ttc" id="aprimitives_8h_html_a649a06267b75e007224ea4ddefedb999"><div class="ttname"><a href="primitives_8h.html#a649a06267b75e007224ea4ddefedb999">DEFINE_INPUT_OUTPUT_SHAPE</a></div><div class="ttdeci">#define DEFINE_INPUT_OUTPUT_SHAPE()</div><div class="ttdef"><b>Definition</b> primitives.h:39</div></div>
|
|
<div class="ttc" id="aprimitives_8h_html_a77abdcb55bc2eb0f9a45edc5ee639bf6"><div class="ttname"><a href="primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6">DEFINE_GRADS</a></div><div class="ttdeci">#define DEFINE_GRADS()</div><div class="ttdef"><b>Definition</b> primitives.h:17</div></div>
|
|
<div class="ttc" id="aprimitives_8h_html_adc0fbd79fe0d1114dc85da4ed99798bd"><div class="ttname"><a href="primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd">DEFINE_VMAP</a></div><div class="ttdeci">#define DEFINE_VMAP()</div><div class="ttdef"><b>Definition</b> primitives.h:12</div></div>
|
|
<div class="ttc" id="astream_8h_html"><div class="ttname"><a href="stream_8h.html">stream.h</a></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_1_device_html_a45ed081b56ae5d4ddd39c83a5d8a1616"><div class="ttname"><a href="structmlx_1_1core_1_1_device.html#a45ed081b56ae5d4ddd39c83a5d8a1616">mlx::core::Device::gpu</a></div><div class="ttdeci">static constexpr DeviceType gpu</div><div class="ttdef"><b>Definition</b> device.h:14</div></div>
|
|
<div class="ttc" id="astructmlx_1_1core_1_1_device_html_a69ee81924251dec96f1945c9d91506fd"><div class="ttname"><a href="structmlx_1_1core_1_1_device.html#a69ee81924251dec96f1945c9d91506fd">mlx::core::Device::cpu</a></div><div class="ttdeci">static constexpr DeviceType cpu</div><div class="ttdef"><b>Definition</b> device.h:13</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_stream_html"><div class="ttname"><a href="structmlx_1_1core_1_1_stream.html">mlx::core::Stream</a></div><div class="ttdef"><b>Definition</b> stream.h:9</div></div>
|
|
<div class="ttc" id="astructmlx_1_1core_1_1_stream_html_a406b1b0162287a4162fab1f70e2ff3bb"><div class="ttname"><a href="structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb">mlx::core::Stream::device</a></div><div class="ttdeci">Device device</div><div class="ttdef"><b>Definition</b> stream.h:11</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="primitives_8h.html">primitives.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>
|