This commit is contained in:
CircleCI Docs
2025-01-09 21:56:20 +00:00
parent 04b749a588
commit d8d647015b
2642 changed files with 137687 additions and 70861 deletions

View File

@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: mlx/backend/common/ops.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -11,11 +11,18 @@
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -28,12 +35,24 @@
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<!-- Generated by Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
$(function(){initNavTree('backend_2common_2ops_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">ops.h</div></div>
</div><!--header-->
@@ -144,16 +158,16 @@ $(function(){ initResizable(false); });
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790"> 47</a></span><span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790">fast_erf</a>(<span class="keywordtype">float</span> a) {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">float</span> r, s, t, <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">float</span> r, s, t, u;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> t = std::abs(a);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> s = a * a;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">if</span> (t &gt; 0.927734375f) {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// maximum error 0.99527 ulp</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> r = std::fma(</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> -1.72853470e-5f, t, 3.83197126e-4f); <span class="comment">// -0x1.220000p-16,0x1.91cfb2p-12</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a> = std::fma(</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> u = std::fma(</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> -3.88396438e-3f, t, 2.42546219e-2f); <span class="comment">// -0x1.fd1438p-9, 0x1.8d6342p-6</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> r = std::fma(r, s, <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a>);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> r = std::fma(r, s, u);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> r = std::fma(r, t, -1.06777877e-1f); <span class="comment">// -0x1.b55cb8p-4</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> r = std::fma(r, t, -6.34846687e-1f); <span class="comment">// -0x1.450aa0p-1</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> r = std::fma(r, t, -1.28717512e-1f); <span class="comment">// -0x1.079d0cp-3</span></div>
@@ -826,263 +840,268 @@ $(function(){ initResizable(false); });
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00502" data-start="{" data-end="}">
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf"> 502</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">return</span> x == y || (std::isnan(x) &amp;&amp; std::isnan(y));</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> }</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_integral_v&lt;T&gt;) {</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="comment">// isnan always returns false for integers, and MSVC refuses to compile.</span></div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">return</span> x == y;</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">return</span> x == y || (std::isnan(x) &amp;&amp; std::isnan(y));</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> }</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> }</div>
</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span>};</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span>};</div>
</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
<div class="foldopen" id="foldopen00507" data-start="{" data-end="};">
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html"> 507</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater.html">Greater</a> {</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00509" data-start="{" data-end="}">
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094"> 509</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">return</span> x &gt; y;</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> }</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="foldopen" id="foldopen00512" data-start="{" data-end="};">
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html"> 512</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater.html">Greater</a> {</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00514" data-start="{" data-end="}">
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094"> 514</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">return</span> x &gt; y;</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> }</div>
</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span>};</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span>};</div>
</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> </div>
<div class="foldopen" id="foldopen00514" data-start="{" data-end="};">
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html"> 514</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">GreaterEqual</a> {</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00516" data-start="{" data-end="}">
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30"> 516</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">return</span> x &gt;= y;</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> }</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> </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="structmlx_1_1core_1_1detail_1_1_greater_equal.html"> 519</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">GreaterEqual</a> {</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00521" data-start="{" data-end="}">
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30"> 521</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">return</span> x &gt;= y;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span>};</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span>};</div>
</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
<div class="foldopen" id="foldopen00521" data-start="{" data-end="};">
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html"> 521</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less.html">Less</a> {</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00523" data-start="{" data-end="}">
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb"> 523</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">return</span> x &lt; y;</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="foldopen" id="foldopen00526" data-start="{" data-end="};">
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html"> 526</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less.html">Less</a> {</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb"> 528</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">return</span> x &lt; y;</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> }</div>
</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span>};</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</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="structmlx_1_1core_1_1detail_1_1_less_equal.html"> 528</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less_equal.html">LessEqual</a> {</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7"> 530</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> x &lt;= y;</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> }</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
<div class="foldopen" id="foldopen00533" data-start="{" data-end="};">
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html"> 533</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less_equal.html">LessEqual</a> {</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00535" data-start="{" data-end="}">
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7"> 535</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">return</span> x &lt;= y;</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> }</div>
</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span>};</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span>};</div>
</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
<div class="foldopen" id="foldopen00535" data-start="{" data-end="};">
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html"> 535</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a> {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00537" data-start="{" data-end="}">
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a"> 537</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">return</span> (x &gt; y) ? x : y;</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> }</div>
</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> </div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="foldopen" id="foldopen00540" data-start="{" data-end="};">
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html"> 540</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a> {</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd"> 542</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">return</span> x;</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="keywordflow">return</span> (x &gt; y) ? x : y;</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a"> 542</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> (x &gt; y) ? x : y;</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> }</div>
</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>};</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">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00547" data-start="{" data-end="}">
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd"> 547</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> x;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> }</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">return</span> (x &gt; y) ? x : y;</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> }</div>
</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> </div>
<div class="foldopen" id="foldopen00550" data-start="{" data-end="};">
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html"> 550</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a> {</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69"> 552</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">return</span> x &lt; y ? x : y;</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> }</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span>};</div>
</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> </div>
<div class="foldopen" id="foldopen00555" data-start="{" data-end="};">
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html"> 555</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a> {</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00557" data-start="{" data-end="}">
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8"> 557</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">return</span> x;</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> }</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> x &lt; y ? x : y;</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69"> 557</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> x &lt; y ? x : y;</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> }</div>
</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span>};</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> </div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00562" data-start="{" data-end="}">
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8"> 562</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">return</span> x;</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> }</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">return</span> x &lt; y ? x : y;</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> }</div>
</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
<div class="foldopen" id="foldopen00565" data-start="{" data-end="};">
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html"> 565</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">LogAddExp</a> {</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00567" data-start="{" data-end="}">
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5"> 567</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">constexpr</span> <span class="keywordtype">float</span> inf = std::numeric_limits&lt;float&gt;::infinity();</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keyword">auto</span> maxval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a>()(x, y);</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">auto</span> minval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a>()(x, y);</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">return</span> (minval == -inf || maxval == inf)</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> ? maxval</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> : <span class="keyword">static_cast&lt;</span>decltype(x)<span class="keyword">&gt;</span>(</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> maxval + std::log1p(<a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374">fast_exp</a>(minval - maxval)));</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> }</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span>};</div>
</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span>};</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
<div class="foldopen" id="foldopen00570" data-start="{" data-end="};">
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html"> 570</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">LogAddExp</a> {</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00572" data-start="{" data-end="}">
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5"> 572</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">constexpr</span> <span class="keywordtype">float</span> inf = std::numeric_limits&lt;float&gt;::infinity();</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">auto</span> maxval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a>()(x, y);</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keyword">auto</span> minval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a>()(x, y);</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">return</span> (minval == -inf || maxval == inf)</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> ? maxval</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> : <span class="keyword">static_cast&lt;</span>decltype(x)<span class="keyword">&gt;</span>(</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> maxval + std::log1p(<a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374">fast_exp</a>(minval - maxval)));</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> }</div>
</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> </div>
<div class="foldopen" id="foldopen00578" data-start="{" data-end="};">
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html"> 578</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_multiply.html">Multiply</a> {</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00580" data-start="{" data-end="}">
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1"> 580</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">return</span> x * y;</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> }</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span>};</div>
</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span>};</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> </div>
<div class="foldopen" id="foldopen00583" data-start="{" data-end="};">
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html"> 583</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_multiply.html">Multiply</a> {</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00585" data-start="{" data-end="}">
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1"> 585</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">return</span> x * y;</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> }</div>
</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
<div class="foldopen" id="foldopen00585" data-start="{" data-end="};">
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html"> 585</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_not_equal.html">NotEqual</a> {</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00587" data-start="{" data-end="}">
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d"> 587</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">return</span> x != y;</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> }</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span>};</div>
</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span>};</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> </div>
<div class="foldopen" id="foldopen00590" data-start="{" data-end="};">
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html"> 590</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_not_equal.html">NotEqual</a> {</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00592" data-start="{" data-end="}">
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d"> 592</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">return</span> x != y;</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> }</div>
</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> </div>
<div class="foldopen" id="foldopen00592" data-start="{" data-end="};">
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html"> 592</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_power.html">Power</a> {</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00594" data-start="{" data-end="}">
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8"> 594</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>);</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> }</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span>};</div>
</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> </div>
<div class="foldopen" id="foldopen00597" data-start="{" data-end="};">
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html"> 597</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_power.html">Power</a> {</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00599" data-start="{" data-end="}">
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c"> 599</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> T res = 1;</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> &amp; 1) {</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> res *= base;</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> <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> &gt;&gt;= 1;</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> base *= base;</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> }</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> }</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8"> 599</a></span> std::enable_if_t&lt;!std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>);</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> }</div>
</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span>};</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> </div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00604" data-start="{" data-end="}">
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c"> 604</a></span> std::enable_if_t&lt;std::is_integral_v&lt;T&gt;, T&gt; <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> T res = 1;</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> &amp; 1) {</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> res *= base;</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> }</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> &gt;&gt;= 1;</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> base *= base;</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"> 613</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> }</div>
</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> </div>
<div class="foldopen" id="foldopen00612" data-start="{" data-end="};">
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html"> 612</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_subtract.html">Subtract</a> {</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00614" data-start="{" data-end="}">
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a"> 614</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">return</span> x - y;</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span>};</div>
</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>};</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
<div class="foldopen" id="foldopen00617" data-start="{" data-end="};">
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html"> 617</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_subtract.html">Subtract</a> {</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00619" data-start="{" data-end="}">
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a"> 619</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">return</span> x - y;</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> }</div>
</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
<div class="foldopen" id="foldopen00619" data-start="{" data-end="};">
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html"> 619</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_and.html">LogicalAnd</a> {</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8"> 621</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">return</span> x &amp;&amp; y;</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> }</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span>};</div>
</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span>};</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
<div class="foldopen" id="foldopen00624" data-start="{" data-end="};">
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html"> 624</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_and.html">LogicalAnd</a> {</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00626" data-start="{" data-end="}">
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8"> 626</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">return</span> x &amp;&amp; y;</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> }</div>
</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> </div>
<div class="foldopen" id="foldopen00626" data-start="{" data-end="};">
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html"> 626</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_or.html">LogicalOr</a> {</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00628" data-start="{" data-end="}">
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a"> 628</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">return</span> x || y;</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> }</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span>};</div>
</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span>};</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
<div class="foldopen" id="foldopen00631" data-start="{" data-end="};">
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html"> 631</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_or.html">LogicalOr</a> {</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00633" data-start="{" data-end="}">
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a"> 633</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">return</span> x || y;</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> }</div>
</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> </div>
<div class="foldopen" id="foldopen00633" data-start="{" data-end="};">
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html"> 633</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_select.html">Select</a> {</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00635" data-start="{" data-end="}">
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb"> 635</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">operator()</a>(<span class="keywordtype">bool</span> condition, T x, T y) {</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordflow">return</span> condition ? x : y;</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> }</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span>};</div>
</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span>};</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> </div>
<div class="foldopen" id="foldopen00638" data-start="{" data-end="};">
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html"> 638</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_select.html">Select</a> {</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00640" data-start="{" data-end="}">
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb"> 640</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">operator()</a>(<span class="keywordtype">bool</span> condition, T x, T y) {</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">return</span> condition ? x : y;</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> }</div>
</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> </div>
<div class="foldopen" id="foldopen00640" data-start="{" data-end="};">
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html"> 640</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">BitwiseAnd</a> {</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700"> 642</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">return</span> x &amp; y;</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> }</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span>};</div>
</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span>};</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
<div class="foldopen" id="foldopen00645" data-start="{" data-end="};">
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html"> 645</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">BitwiseAnd</a> {</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00647" data-start="{" data-end="}">
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700"> 647</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">return</span> x &amp; y;</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> }</div>
</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
<div class="foldopen" id="foldopen00647" data-start="{" data-end="};">
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html"> 647</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">BitwiseOr</a> {</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00649" data-start="{" data-end="}">
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20"> 649</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="keywordflow">return</span> x | y;</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> }</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span>};</div>
</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span>};</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
<div class="foldopen" id="foldopen00652" data-start="{" data-end="};">
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html"> 652</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">BitwiseOr</a> {</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00654" data-start="{" data-end="}">
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20"> 654</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">return</span> x | y;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> }</div>
</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> </div>
<div class="foldopen" id="foldopen00654" data-start="{" data-end="};">
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html"> 654</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">BitwiseXor</a> {</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00656" data-start="{" data-end="}">
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0"> 656</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">return</span> x ^ y;</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> }</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span>};</div>
</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span>};</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> </div>
<div class="foldopen" id="foldopen00659" data-start="{" data-end="};">
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html"> 659</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">BitwiseXor</a> {</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0"> 661</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">return</span> x ^ y;</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</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="structmlx_1_1core_1_1detail_1_1_left_shift.html"> 661</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_left_shift.html">LeftShift</a> {</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a"> 663</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">return</span> x &lt;&lt; y;</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> }</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span>};</div>
</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span>};</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
<div class="foldopen" id="foldopen00666" data-start="{" data-end="};">
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html"> 666</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_left_shift.html">LeftShift</a> {</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00668" data-start="{" data-end="}">
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a"> 668</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keywordflow">return</span> x &lt;&lt; y;</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> }</div>
</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
<div class="foldopen" id="foldopen00668" data-start="{" data-end="};">
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html"> 668</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_right_shift.html">RightShift</a> {</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00670" data-start="{" data-end="}">
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620"> 670</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">return</span> x &gt;&gt; y;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> }</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span>};</div>
</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span>};</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> </div>
<div class="foldopen" id="foldopen00673" data-start="{" data-end="};">
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html"> 673</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_right_shift.html">RightShift</a> {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00675" data-start="{" data-end="}">
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620"> 675</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">operator()</a>(T x, T y) {</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> x &gt;&gt; y;</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> }</div>
</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> </div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span>} <span class="comment">// namespace mlx::core::detail</span></div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span>};</div>
</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> </div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span>} <span class="comment">// namespace mlx::core::detail</span></div>
</div>
<div class="ttc" id="agroup__ops_html_ga20a1f4270c35b0fa544f5105a87a1604"><div class="ttname"><a href="group__ops.html#ga20a1f4270c35b0fa544f5105a87a1604">mlx::core::log1p</a></div><div class="ttdeci">array log1p(const array &amp;a, StreamOrDevice s={})</div><div class="ttdoc">Natural logarithm of one plus elements in the array: log(1 + a).</div></div>
<div class="ttc" id="agroup__ops_html_ga54ca54f06bfb2be15b163a5209e2a0f0"><div class="ttname"><a href="group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0">mlx::core::expm1</a></div><div class="ttdeci">array expm1(const array &amp;a, StreamOrDevice s={})</div><div class="ttdoc">Computes the expm1 function of the elements of an array.</div></div>
@@ -1115,12 +1134,12 @@ $(function(){ initResizable(false); });
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tan_html_aee87bf10c278a70ca788085d1b499afe"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe">mlx::core::detail::ArcTan::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:159</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">mlx::core::detail::ArcTanh</a></div><div class="ttdef"><b>Definition</b> ops.h:171</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tanh_html_a601e8c52bb938eb3a616756a35419e8b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b">mlx::core::detail::ArcTanh::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:173</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">mlx::core::detail::BitwiseAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:640</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html_ae0bed77f95fe2b2f0b594addddd04700"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">mlx::core::detail::BitwiseAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:642</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">mlx::core::detail::BitwiseOr</a></div><div class="ttdef"><b>Definition</b> ops.h:647</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html_a5ab05734c5000b454975de6647a08d20"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">mlx::core::detail::BitwiseOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:649</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">mlx::core::detail::BitwiseXor</a></div><div class="ttdef"><b>Definition</b> ops.h:654</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html_a0989e3bcd064ae06c33f660696a869a0"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">mlx::core::detail::BitwiseXor::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:656</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">mlx::core::detail::BitwiseAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:645</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html_ae0bed77f95fe2b2f0b594addddd04700"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">mlx::core::detail::BitwiseAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:647</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">mlx::core::detail::BitwiseOr</a></div><div class="ttdef"><b>Definition</b> ops.h:652</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html_a5ab05734c5000b454975de6647a08d20"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">mlx::core::detail::BitwiseOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:654</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">mlx::core::detail::BitwiseXor</a></div><div class="ttdef"><b>Definition</b> ops.h:659</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html_a0989e3bcd064ae06c33f660696a869a0"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">mlx::core::detail::BitwiseXor::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:661</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></div><div class="ttdef"><b>Definition</b> ops.h:178</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html_a48f00affcd5c2ea1f81d821e019fec29"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29">mlx::core::detail::Ceil::operator()</a></div><div class="ttdeci">uint8_t operator()(uint8_t x)</div><div class="ttdef"><b>Definition</b> ops.h:195</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html_a672f65e47d65e4e8d88be252bce0164b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b">mlx::core::detail::Ceil::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:180</div></div>
@@ -1162,51 +1181,51 @@ $(function(){ initResizable(false); });
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_a9b6c4c34b6594b8c413abe31f34a73df"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">int8_t operator()(int8_t x)</div><div class="ttdef"><b>Definition</b> ops.h:269</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_ac988b4f265cf46c68609c9c8787c15fb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">uint64_t operator()(uint64_t x)</div><div class="ttdef"><b>Definition</b> ops.h:290</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_aca4c71204b3ceeca6329f7ea2b041f4c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">int16_t operator()(int16_t x)</div><div class="ttdef"><b>Definition</b> ops.h:272</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">mlx::core::detail::GreaterEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:514</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html_a3b005f85522ad0e4b57044eed930ac30"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">mlx::core::detail::GreaterEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:516</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html">mlx::core::detail::Greater</a></div><div class="ttdef"><b>Definition</b> ops.h:507</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html_aa3844c2bae3c7a981739f642aa0dd094"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">mlx::core::detail::Greater::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:509</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">mlx::core::detail::GreaterEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:519</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html_a3b005f85522ad0e4b57044eed930ac30"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">mlx::core::detail::GreaterEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:521</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html">mlx::core::detail::Greater</a></div><div class="ttdef"><b>Definition</b> ops.h:512</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html_aa3844c2bae3c7a981739f642aa0dd094"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">mlx::core::detail::Greater::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:514</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html">mlx::core::detail::Imag</a></div><div class="ttdef"><b>Definition</b> ops.h:298</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html_a5bd82e2185f3779e398c179d42a3e782"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782">mlx::core::detail::Imag::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:300</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html">mlx::core::detail::LeftShift</a></div><div class="ttdef"><b>Definition</b> ops.h:661</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html_a9385f580830a6ad163dd9bb8c4905e7a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">mlx::core::detail::LeftShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:663</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html">mlx::core::detail::LessEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:528</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html_a31e70f8830a07557697541301555a7a7"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">mlx::core::detail::LessEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:530</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html">mlx::core::detail::Less</a></div><div class="ttdef"><b>Definition</b> ops.h:521</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html_a0b4032dff1ad2b387745cb000aabdcbb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">mlx::core::detail::Less::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:523</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html">mlx::core::detail::LeftShift</a></div><div class="ttdef"><b>Definition</b> ops.h:666</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html_a9385f580830a6ad163dd9bb8c4905e7a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">mlx::core::detail::LeftShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:668</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html">mlx::core::detail::LessEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:533</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html_a31e70f8830a07557697541301555a7a7"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">mlx::core::detail::LessEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:535</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html">mlx::core::detail::Less</a></div><div class="ttdef"><b>Definition</b> ops.h:526</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html_a0b4032dff1ad2b387745cb000aabdcbb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">mlx::core::detail::Less::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:528</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html">mlx::core::detail::Log10</a></div><div class="ttdef"><b>Definition</b> ops.h:319</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html_a2633c5b772bbc9f8b66cffd4a3e01a3f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f">mlx::core::detail::Log10::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:321</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html">mlx::core::detail::Log1p</a></div><div class="ttdef"><b>Definition</b> ops.h:326</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html_a3220de8c6090c44aa2070b1fbb2dc340"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340">mlx::core::detail::Log1p::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:328</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html">mlx::core::detail::Log2</a></div><div class="ttdef"><b>Definition</b> ops.h:312</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html_a467bd4c995674721ff5fff6df33aead8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8">mlx::core::detail::Log2::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:314</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">mlx::core::detail::LogAddExp</a></div><div class="ttdef"><b>Definition</b> ops.h:565</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html_ad1663fd809acaa4038f90666436599e5"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">mlx::core::detail::LogAddExp::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:567</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">mlx::core::detail::LogAddExp</a></div><div class="ttdef"><b>Definition</b> ops.h:570</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html_ad1663fd809acaa4038f90666436599e5"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">mlx::core::detail::LogAddExp::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:572</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html">mlx::core::detail::Log</a></div><div class="ttdef"><b>Definition</b> ops.h:305</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html_a0012a4e1744dbe9a28c3b5652be6e1c6"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6">mlx::core::detail::Log::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:307</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html">mlx::core::detail::LogicalAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:619</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html_a046536c1f2f9367983f052a213d7b7d8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">mlx::core::detail::LogicalAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:621</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html">mlx::core::detail::LogicalAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:624</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html_a046536c1f2f9367983f052a213d7b7d8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">mlx::core::detail::LogicalAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:626</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html">mlx::core::detail::LogicalNot</a></div><div class="ttdef"><b>Definition</b> ops.h:333</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html_a79799668ea5c364b0b4e2bc330e76253"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253">mlx::core::detail::LogicalNot::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:335</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html">mlx::core::detail::LogicalOr</a></div><div class="ttdef"><b>Definition</b> ops.h:626</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html_afb134dbab79307d4ba597843c61d0b1a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">mlx::core::detail::LogicalOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:628</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html">mlx::core::detail::Maximum</a></div><div class="ttdef"><b>Definition</b> ops.h:535</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_a3eb37abec8426ebc42b8c685075c523a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:537</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_af99345c7c8bc95ccab1b22c0792ac6fd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:542</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html">mlx::core::detail::Minimum</a></div><div class="ttdef"><b>Definition</b> ops.h:550</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_a64b2eecfbc56aaef7deb939423bac3f8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:557</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_afca0861556416a8547dd8574528feb69"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:552</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html">mlx::core::detail::Multiply</a></div><div class="ttdef"><b>Definition</b> ops.h:578</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html_a898b090966b047723513224b8d3b22f1"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">mlx::core::detail::Multiply::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:580</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html">mlx::core::detail::LogicalOr</a></div><div class="ttdef"><b>Definition</b> ops.h:631</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html_afb134dbab79307d4ba597843c61d0b1a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">mlx::core::detail::LogicalOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:633</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html">mlx::core::detail::Maximum</a></div><div class="ttdef"><b>Definition</b> ops.h:540</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_a3eb37abec8426ebc42b8c685075c523a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:542</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_af99345c7c8bc95ccab1b22c0792ac6fd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:547</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html">mlx::core::detail::Minimum</a></div><div class="ttdef"><b>Definition</b> ops.h:555</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_a64b2eecfbc56aaef7deb939423bac3f8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:562</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_afca0861556416a8547dd8574528feb69"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:557</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html">mlx::core::detail::Multiply</a></div><div class="ttdef"><b>Definition</b> ops.h:583</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html_a898b090966b047723513224b8d3b22f1"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">mlx::core::detail::Multiply::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:585</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_na_n_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html">mlx::core::detail::NaNEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:500</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_na_n_equal_html_a073b20b0d8d41ec8364b7c477421b9bf"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf">mlx::core::detail::NaNEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:502</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html">mlx::core::detail::Negative</a></div><div class="ttdef"><b>Definition</b> ops.h:340</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html_afc4595c70ef7196df374cf4b2cc5e526"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526">mlx::core::detail::Negative::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:342</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html">mlx::core::detail::NotEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:585</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html_a23d662b5fd968dc17d3bee2595b5f99d"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">mlx::core::detail::NotEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:587</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html">mlx::core::detail::Power</a></div><div class="ttdef"><b>Definition</b> ops.h:592</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a2c047e1b488e6525447a224975a75db8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:594</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a9967db24b8f67d54b6aa3810e274f28c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:599</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html">mlx::core::detail::NotEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:590</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html_a23d662b5fd968dc17d3bee2595b5f99d"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">mlx::core::detail::NotEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:592</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html">mlx::core::detail::Power</a></div><div class="ttdef"><b>Definition</b> ops.h:597</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a2c047e1b488e6525447a224975a75db8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t&lt;!std::is_integral_v&lt; T &gt;, T &gt; operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:599</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a9967db24b8f67d54b6aa3810e274f28c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt;, T &gt; operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:604</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html">mlx::core::detail::Real</a></div><div class="ttdef"><b>Definition</b> ops.h:347</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html_ae84a939fdb5916257a7731cda66d4d61"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61">mlx::core::detail::Real::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:349</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html">mlx::core::detail::Remainder</a></div><div class="ttdef"><b>Definition</b> ops.h:459</div></div>
@@ -1214,15 +1233,15 @@ $(function(){ initResizable(false); });
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a3bdaf1095ad883ecc0fecc455f02cbf3"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt; &amp;!std::is_signed_v&lt; T &gt;, T &gt; operator()(T numerator, T denominator)</div><div class="ttdef"><b>Definition</b> ops.h:461</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a52c3a2ba86fccb24d37d218ae8328954"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_integral_v&lt; T &gt; &amp;std::is_signed_v&lt; T &gt;, T &gt; operator()(T numerator, T denominator)</div><div class="ttdef"><b>Definition</b> ops.h:468</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a68fe542084fb94d9a5abd740fe07832b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">complex64_t operator()(complex64_t numerator, complex64_t denominator)</div><div class="ttdef"><b>Definition</b> ops.h:488</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html">mlx::core::detail::RightShift</a></div><div class="ttdef"><b>Definition</b> ops.h:668</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html_a154528ba50e89a4c532a181f135b1620"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">mlx::core::detail::RightShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:670</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html">mlx::core::detail::RightShift</a></div><div class="ttdef"><b>Definition</b> ops.h:673</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html_a154528ba50e89a4c532a181f135b1620"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">mlx::core::detail::RightShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:675</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html">mlx::core::detail::Round</a></div><div class="ttdef"><b>Definition</b> ops.h:354</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html_a653f29c059bbfa6192378732a8a23351"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351">mlx::core::detail::Round::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:356</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html_a82a984f13568051009e257fe85227da6"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6">mlx::core::detail::Round::operator()</a></div><div class="ttdeci">complex64_t operator()(complex64_t x)</div><div class="ttdef"><b>Definition</b> ops.h:360</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">mlx::core::detail::Rsqrt</a></div><div class="ttdef"><b>Definition</b> ops.h:424</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html_a9af247be16bab83243038aac54446b79"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79">mlx::core::detail::Rsqrt::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:426</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html">mlx::core::detail::Select</a></div><div class="ttdef"><b>Definition</b> ops.h:633</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html_a930f9da2e6b3453e04f21382435a2cfb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">mlx::core::detail::Select::operator()</a></div><div class="ttdeci">T operator()(bool condition, T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:635</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html">mlx::core::detail::Select</a></div><div class="ttdef"><b>Definition</b> ops.h:638</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html_a930f9da2e6b3453e04f21382435a2cfb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">mlx::core::detail::Select::operator()</a></div><div class="ttdeci">T operator()(bool condition, T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:640</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">mlx::core::detail::Sigmoid</a></div><div class="ttdef"><b>Definition</b> ops.h:365</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html_a64b72561bfaf758632167f00648f4c89"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89">mlx::core::detail::Sigmoid::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:367</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html">mlx::core::detail::Sign</a></div><div class="ttdef"><b>Definition</b> ops.h:373</div></div>
@@ -1240,21 +1259,23 @@ $(function(){ initResizable(false); });
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sqrt_html_aa5a4830b3ef7efab20ea88a110667efd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd">mlx::core::detail::Sqrt::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:419</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html">mlx::core::detail::Square</a></div><div class="ttdef"><b>Definition</b> ops.h:410</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html_a54e9e3c0d0896e142289e8282eab1099"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099">mlx::core::detail::Square::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:412</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html">mlx::core::detail::Subtract</a></div><div class="ttdef"><b>Definition</b> ops.h:612</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html_a72ef05830615a2d5d9662926ed82672a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">mlx::core::detail::Subtract::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:614</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html">mlx::core::detail::Subtract</a></div><div class="ttdef"><b>Definition</b> ops.h:617</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html_a72ef05830615a2d5d9662926ed82672a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">mlx::core::detail::Subtract::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:619</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html">mlx::core::detail::Tan</a></div><div class="ttdef"><b>Definition</b> ops.h:431</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html_aba397cd7ac05bbe06dfa9e3a64bdb05f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f">mlx::core::detail::Tan::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:433</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html">mlx::core::detail::Tanh</a></div><div class="ttdef"><b>Definition</b> ops.h:438</div></div>
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html_a1749ba1edfd53095ed7d45c0e53bab61"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61">mlx::core::detail::Tanh::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:440</div></div>
<div class="ttc" id="atypes_2bf16_8h_html_aa21e554721eddcf127b7fcfa7fdc56bd"><div class="ttname"><a href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a></div><div class="ttdeci">uint32_t u</div><div class="ttdef"><b>Definition</b> bf16.h:17</div></div>
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html">mlx::core::detail::IntOrFloat</a></div><div class="ttdef"><b>Definition</b> ops.h:14</div></div>
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html_a90bd738e3b6b96a1a67685e8ab75b7ec"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html#a90bd738e3b6b96a1a67685e8ab75b7ec">mlx::core::detail::IntOrFloat::f</a></div><div class="ttdeci">float f</div><div class="ttdef"><b>Definition</b> ops.h:16</div></div>
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html_aa6d4b02e99df90a321e0eeeb98e71b49"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html#aa6d4b02e99df90a321e0eeeb98e71b49">mlx::core::detail::IntOrFloat::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition</b> ops.h:15</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2ops_8h.html">ops.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
</ul>
</div>
</body>
</html>