mlx/docs/build/html/group__ops.html
CircleCI Docs c7080f89ca rebase
2025-06-04 01:01:55 +00:00

10391 lines
728 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MLX: Core array operations</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MLX
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('group__ops.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Core array operations</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7ca088b8090b9f84f2e08345cf3f835a" id="r_ga7ca088b8090b9f84f2e08345cf3f835a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7ca088b8090b9f84f2e08345cf3f835a">mlx::core::arange</a> (double start, double stop, double step, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7ca088b8090b9f84f2e08345cf3f835a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 1D array of numbers starting at <code>start</code> (optional), stopping at stop, stepping by <code>step</code> (optional). <br /></td></tr>
<tr class="separator:ga7ca088b8090b9f84f2e08345cf3f835a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c36b841dc5cba391dad029be5a0ad98" id="r_ga4c36b841dc5cba391dad029be5a0ad98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4c36b841dc5cba391dad029be5a0ad98">mlx::core::arange</a> (double start, double stop, double step, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga4c36b841dc5cba391dad029be5a0ad98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d7cf9eb15e2daf1469058907e8abc85" id="r_ga8d7cf9eb15e2daf1469058907e8abc85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8d7cf9eb15e2daf1469058907e8abc85">mlx::core::arange</a> (double start, double stop, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga8d7cf9eb15e2daf1469058907e8abc85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74566a14e69ba6a25f5a35e7ade5c282" id="r_ga74566a14e69ba6a25f5a35e7ade5c282"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga74566a14e69ba6a25f5a35e7ade5c282">mlx::core::arange</a> (double start, double stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga74566a14e69ba6a25f5a35e7ade5c282"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga345aa27af3dae3646b8b4b1068e89a3e" id="r_ga345aa27af3dae3646b8b4b1068e89a3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga345aa27af3dae3646b8b4b1068e89a3e">mlx::core::arange</a> (double stop, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga345aa27af3dae3646b8b4b1068e89a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae179075d0fe23f4bd53fdf8c41f4c70" id="r_gaae179075d0fe23f4bd53fdf8c41f4c70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaae179075d0fe23f4bd53fdf8c41f4c70">mlx::core::arange</a> (double stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaae179075d0fe23f4bd53fdf8c41f4c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b945f513077c2978afc1a952c884860" id="r_ga6b945f513077c2978afc1a952c884860"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6b945f513077c2978afc1a952c884860">mlx::core::arange</a> (int start, int stop, int step, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga6b945f513077c2978afc1a952c884860"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c39fcc6eaa1c1867735c7f849d708d6" id="r_ga1c39fcc6eaa1c1867735c7f849d708d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1c39fcc6eaa1c1867735c7f849d708d6">mlx::core::arange</a> (int start, int stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga1c39fcc6eaa1c1867735c7f849d708d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe6e4580452c873cac294f16129e633f" id="r_gafe6e4580452c873cac294f16129e633f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafe6e4580452c873cac294f16129e633f">mlx::core::arange</a> (int stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gafe6e4580452c873cac294f16129e633f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga968bcabed902311dcfbd903b0fb886ec" id="r_ga968bcabed902311dcfbd903b0fb886ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga968bcabed902311dcfbd903b0fb886ec">mlx::core::linspace</a> (double start, double stop, int num=50, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype=<a class="el" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga968bcabed902311dcfbd903b0fb886ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 1D array of <code>num</code> evenly spaced numbers in the range <code>[start, stop]</code> <br /></td></tr>
<tr class="separator:ga968bcabed902311dcfbd903b0fb886ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e58c24fc5668e5a521e5b45e8370a62" id="r_ga0e58c24fc5668e5a521e5b45e8370a62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0e58c24fc5668e5a521e5b45e8370a62">mlx::core::astype</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga0e58c24fc5668e5a521e5b45e8370a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an array to the given data type. <br /></td></tr>
<tr class="separator:ga0e58c24fc5668e5a521e5b45e8370a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6085b03f2662ef2a61de523fd609f3bf" id="r_ga6085b03f2662ef2a61de523fd609f3bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6085b03f2662ef2a61de523fd609f3bf">mlx::core::as_strided</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> strides, size_t offset, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6085b03f2662ef2a61de523fd609f3bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of an array with the given shape and strides. <br /></td></tr>
<tr class="separator:ga6085b03f2662ef2a61de523fd609f3bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae306e93af12f774bd80bad6c231b09d6" id="r_gae306e93af12f774bd80bad6c231b09d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae306e93af12f774bd80bad6c231b09d6">mlx::core::copy</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae306e93af12f774bd80bad6c231b09d6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_copy.html">Copy</a> another array. <br /></td></tr>
<tr class="separator:gae306e93af12f774bd80bad6c231b09d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cf232308668fe3f4214c8b895ed4aee" id="r_ga1cf232308668fe3f4214c8b895ed4aee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1cf232308668fe3f4214c8b895ed4aee">mlx::core::full</a> (<a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> vals, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1cf232308668fe3f4214c8b895ed4aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill an array of the given shape with the given value(s). <br /></td></tr>
<tr class="separator:ga1cf232308668fe3f4214c8b895ed4aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59f6c844cbb173e108c3eeb11801f8c6" id="r_ga59f6c844cbb173e108c3eeb11801f8c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga59f6c844cbb173e108c3eeb11801f8c6">mlx::core::full</a> (<a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> vals, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga59f6c844cbb173e108c3eeb11801f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf073760b7b51fe35932da0d81c531a55" id="r_gaf073760b7b51fe35932da0d81c531a55"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaf073760b7b51fe35932da0d81c531a55"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaf073760b7b51fe35932da0d81c531a55">mlx::core::full</a> (<a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, T val, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf073760b7b51fe35932da0d81c531a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6f2cce92aff9b71756a3cc3c961fd5a" id="r_gaf6f2cce92aff9b71756a3cc3c961fd5a"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaf6f2cce92aff9b71756a3cc3c961fd5a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaf6f2cce92aff9b71756a3cc3c961fd5a">mlx::core::full</a> (<a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, T val, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf6f2cce92aff9b71756a3cc3c961fd5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2cace3b388cec4e520659a91879e1c1" id="r_gae2cace3b388cec4e520659a91879e1c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae2cace3b388cec4e520659a91879e1c1">mlx::core::zeros</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shape, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae2cace3b388cec4e520659a91879e1c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill an array of the given shape with zeros. <br /></td></tr>
<tr class="separator:gae2cace3b388cec4e520659a91879e1c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8aa722f5e798819b7091693173f1f36" id="r_gac8aa722f5e798819b7091693173f1f36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac8aa722f5e798819b7091693173f1f36">mlx::core::zeros</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shape, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gac8aa722f5e798819b7091693173f1f36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafbb857094d784b38c78683a091ffdbde" id="r_gafbb857094d784b38c78683a091ffdbde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafbb857094d784b38c78683a091ffdbde">mlx::core::zeros_like</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gafbb857094d784b38c78683a091ffdbde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0069146cf8c819b15ba29aa7231a3f0" id="r_gae0069146cf8c819b15ba29aa7231a3f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae0069146cf8c819b15ba29aa7231a3f0">mlx::core::ones</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shape, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae0069146cf8c819b15ba29aa7231a3f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill an array of the given shape with ones. <br /></td></tr>
<tr class="separator:gae0069146cf8c819b15ba29aa7231a3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace4cf016562af58991f9f961170e156f" id="r_gace4cf016562af58991f9f961170e156f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gace4cf016562af58991f9f961170e156f">mlx::core::ones</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shape, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gace4cf016562af58991f9f961170e156f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94f8d3b1906fee99da9cbe39f7be7d42" id="r_ga94f8d3b1906fee99da9cbe39f7be7d42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga94f8d3b1906fee99da9cbe39f7be7d42">mlx::core::ones_like</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga94f8d3b1906fee99da9cbe39f7be7d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45e9e68246b0d1cf03c3cc9c9e7e6ae3" id="r_ga45e9e68246b0d1cf03c3cc9c9e7e6ae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3">mlx::core::eye</a> (int n, int m, int k, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga45e9e68246b0d1cf03c3cc9c9e7e6ae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill an array of the given shape (n,m) with ones in the specified diagonal k, and zeros everywhere else. <br /></td></tr>
<tr class="separator:ga45e9e68246b0d1cf03c3cc9c9e7e6ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c9011310a1fa7c82f942f54102c36dd" id="r_ga2c9011310a1fa7c82f942f54102c36dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2c9011310a1fa7c82f942f54102c36dd">mlx::core::eye</a> (int n, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga2c9011310a1fa7c82f942f54102c36dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61657db78ef35d41112d362c869c25d2" id="r_ga61657db78ef35d41112d362c869c25d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga61657db78ef35d41112d362c869c25d2">mlx::core::eye</a> (int n, int m, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga61657db78ef35d41112d362c869c25d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga908a15b42834be498a46856c99dfc779" id="r_ga908a15b42834be498a46856c99dfc779"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga908a15b42834be498a46856c99dfc779">mlx::core::eye</a> (int n, int m, int k, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga908a15b42834be498a46856c99dfc779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab777fcf6d4a89172c69ec3492548dc0f" id="r_gab777fcf6d4a89172c69ec3492548dc0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab777fcf6d4a89172c69ec3492548dc0f">mlx::core::eye</a> (int n, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gab777fcf6d4a89172c69ec3492548dc0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga484eaa10d5e19a4ca46d3a9cd9fab600" id="r_ga484eaa10d5e19a4ca46d3a9cd9fab600"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga484eaa10d5e19a4ca46d3a9cd9fab600">mlx::core::identity</a> (int n, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga484eaa10d5e19a4ca46d3a9cd9fab600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal. <br /></td></tr>
<tr class="separator:ga484eaa10d5e19a4ca46d3a9cd9fab600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad994d65ac6019c26b5ad6c41179d3424" id="r_gad994d65ac6019c26b5ad6c41179d3424"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad994d65ac6019c26b5ad6c41179d3424">mlx::core::identity</a> (int n, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gad994d65ac6019c26b5ad6c41179d3424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f3389e5b89e70e862e7d2b40d6c7f78" id="r_ga4f3389e5b89e70e862e7d2b40d6c7f78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4f3389e5b89e70e862e7d2b40d6c7f78">mlx::core::tri</a> (int n, int m, int k, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> type, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga4f3389e5b89e70e862e7d2b40d6c7f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac19a1bd6ed6d5c7bc9d258820189dbb5" id="r_gac19a1bd6ed6d5c7bc9d258820189dbb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac19a1bd6ed6d5c7bc9d258820189dbb5">mlx::core::tri</a> (int n, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> type, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gac19a1bd6ed6d5c7bc9d258820189dbb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83e0bb45dc770cf014531d873b78c5a2" id="r_ga83e0bb45dc770cf014531d873b78c5a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga83e0bb45dc770cf014531d873b78c5a2">mlx::core::tril</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> x, int k=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga83e0bb45dc770cf014531d873b78c5a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa9df5917876eeb0cb28b7fa81f880412" id="r_gaa9df5917876eeb0cb28b7fa81f880412"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa9df5917876eeb0cb28b7fa81f880412">mlx::core::triu</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> x, int k=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaa9df5917876eeb0cb28b7fa81f880412"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga084f03ce2b22258afb7c8b45e17af828" id="r_ga084f03ce2b22258afb7c8b45e17af828"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga084f03ce2b22258afb7c8b45e17af828">mlx::core::reshape</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga084f03ce2b22258afb7c8b45e17af828"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_reshape.html">Reshape</a> an array to the given shape. <br /></td></tr>
<tr class="separator:ga084f03ce2b22258afb7c8b45e17af828"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga666bcc2187a144247e8c0c224b016625" id="r_ga666bcc2187a144247e8c0c224b016625"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga666bcc2187a144247e8c0c224b016625">mlx::core::unflatten</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga666bcc2187a144247e8c0c224b016625"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_unflatten.html">Unflatten</a> the axis to the given shape. <br /></td></tr>
<tr class="separator:ga666bcc2187a144247e8c0c224b016625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50aa98754b412bb57c083f6e3e95061f" id="r_ga50aa98754b412bb57c083f6e3e95061f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga50aa98754b412bb57c083f6e3e95061f">mlx::core::flatten</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int start_axis, int end_axis=-1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga50aa98754b412bb57c083f6e3e95061f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_flatten.html">Flatten</a> the dimensions in the range <code>[start_axis, end_axis]</code> . <br /></td></tr>
<tr class="separator:ga50aa98754b412bb57c083f6e3e95061f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa6adbc9c86f0ab27d8810a02e9e719fd" id="r_gaa6adbc9c86f0ab27d8810a02e9e719fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa6adbc9c86f0ab27d8810a02e9e719fd">mlx::core::flatten</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaa6adbc9c86f0ab27d8810a02e9e719fd"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_flatten.html">Flatten</a> the array to 1D. <br /></td></tr>
<tr class="separator:gaa6adbc9c86f0ab27d8810a02e9e719fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga872d2c1806e67ce2596b24d056681074" id="r_ga872d2c1806e67ce2596b24d056681074"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga872d2c1806e67ce2596b24d056681074">mlx::core::hadamard_transform</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, std::optional&lt; float &gt; scale=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga872d2c1806e67ce2596b24d056681074"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_multiply.html">Multiply</a> the array by the <a class="el" href="classmlx_1_1core_1_1_hadamard.html">Hadamard</a> matrix of corresponding size. <br /></td></tr>
<tr class="separator:ga872d2c1806e67ce2596b24d056681074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga710daa7ec721bd4d3f326082cb195576" id="r_ga710daa7ec721bd4d3f326082cb195576"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga710daa7ec721bd4d3f326082cb195576">mlx::core::squeeze</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga710daa7ec721bd4d3f326082cb195576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove singleton dimensions at the given axes. <br /></td></tr>
<tr class="separator:ga710daa7ec721bd4d3f326082cb195576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga700dd51b77379a3d2260a55783e8ebf3" id="r_ga700dd51b77379a3d2260a55783e8ebf3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga700dd51b77379a3d2260a55783e8ebf3">mlx::core::squeeze</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga700dd51b77379a3d2260a55783e8ebf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove singleton dimensions at the given axis. <br /></td></tr>
<tr class="separator:ga700dd51b77379a3d2260a55783e8ebf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58bad3c61fd85b95927a987ba1cf5dad" id="r_ga58bad3c61fd85b95927a987ba1cf5dad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga58bad3c61fd85b95927a987ba1cf5dad">mlx::core::squeeze</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga58bad3c61fd85b95927a987ba1cf5dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove all singleton dimensions. <br /></td></tr>
<tr class="separator:ga58bad3c61fd85b95927a987ba1cf5dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga717f11149a8c7b4cc3e33bbcc0a97133" id="r_ga717f11149a8c7b4cc3e33bbcc0a97133"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga717f11149a8c7b4cc3e33bbcc0a97133">mlx::core::expand_dims</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga717f11149a8c7b4cc3e33bbcc0a97133"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> a singleton dimension at the given axes. <br /></td></tr>
<tr class="separator:ga717f11149a8c7b4cc3e33bbcc0a97133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a80adb4a5a36d18b5f234d4b034950a" id="r_ga7a80adb4a5a36d18b5f234d4b034950a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7a80adb4a5a36d18b5f234d4b034950a">mlx::core::expand_dims</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7a80adb4a5a36d18b5f234d4b034950a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> a singleton dimension at the given axis. <br /></td></tr>
<tr class="separator:ga7a80adb4a5a36d18b5f234d4b034950a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29718cd5005dbcde0396b6fd65cc041d" id="r_ga29718cd5005dbcde0396b6fd65cc041d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga29718cd5005dbcde0396b6fd65cc041d">mlx::core::slice</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> stop, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> strides, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga29718cd5005dbcde0396b6fd65cc041d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array. <br /></td></tr>
<tr class="separator:ga29718cd5005dbcde0396b6fd65cc041d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedcbdf4040f5e6a02a74b1ed1c6c2ebc" id="r_gaedcbdf4040f5e6a02a74b1ed1c6c2ebc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaedcbdf4040f5e6a02a74b1ed1c6c2ebc">mlx::core::slice</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, std::initializer_list&lt; int &gt; start, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> stop, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> strides, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaedcbdf4040f5e6a02a74b1ed1c6c2ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec56dcb94d5e7f7b885fb60b4bf4aa9d" id="r_gaec56dcb94d5e7f7b885fb60b4bf4aa9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaec56dcb94d5e7f7b885fb60b4bf4aa9d">mlx::core::slice</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaec56dcb94d5e7f7b885fb60b4bf4aa9d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array with a stride of 1 in each dimension. <br /></td></tr>
<tr class="separator:gaec56dcb94d5e7f7b885fb60b4bf4aa9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga797996e53ea34317a55dc2f314736b89" id="r_ga797996e53ea34317a55dc2f314736b89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga797996e53ea34317a55dc2f314736b89">mlx::core::slice</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;start, std::vector&lt; int &gt; axes, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> slice_size, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga797996e53ea34317a55dc2f314736b89"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array with dynamic starting indices. <br /></td></tr>
<tr class="separator:ga797996e53ea34317a55dc2f314736b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b7e786985d27789aaed20bb2f9509be" id="r_ga7b7e786985d27789aaed20bb2f9509be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7b7e786985d27789aaed20bb2f9509be">mlx::core::slice_update</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;src, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;update, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> stop, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> strides, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7b7e786985d27789aaed20bb2f9509be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a slice from the source array. <br /></td></tr>
<tr class="separator:ga7b7e786985d27789aaed20bb2f9509be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b7c6136ae5a38dd6457b65c1833aa67" id="r_ga3b7c6136ae5a38dd6457b65c1833aa67"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3b7c6136ae5a38dd6457b65c1833aa67">mlx::core::slice_update</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;src, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;update, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> start, <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> stop, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3b7c6136ae5a38dd6457b65c1833aa67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a slice from the source array with stride 1 in each dimension. <br /></td></tr>
<tr class="separator:ga3b7c6136ae5a38dd6457b65c1833aa67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd906ffb96149a4998c321cbf2231d7e" id="r_gacd906ffb96149a4998c321cbf2231d7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gacd906ffb96149a4998c321cbf2231d7e">mlx::core::slice_update</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;src, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;update, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;start, std::vector&lt; int &gt; axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gacd906ffb96149a4998c321cbf2231d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a slice from the source array with dynamic starting indices. <br /></td></tr>
<tr class="separator:gacd906ffb96149a4998c321cbf2231d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7534290bceab5fb3831a05d67bebce7d" id="r_ga7534290bceab5fb3831a05d67bebce7d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7534290bceab5fb3831a05d67bebce7d">mlx::core::split</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int num_splits, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7534290bceab5fb3831a05d67bebce7d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_split.html">Split</a> an array into sub-arrays along a given axis. <br /></td></tr>
<tr class="separator:ga7534290bceab5fb3831a05d67bebce7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56882d24e5fde59c266774624c892d41" id="r_ga56882d24e5fde59c266774624c892d41"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga56882d24e5fde59c266774624c892d41">mlx::core::split</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int num_splits, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga56882d24e5fde59c266774624c892d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19005414e7d8020cd6e94e06bf399b09" id="r_ga19005414e7d8020cd6e94e06bf399b09"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga19005414e7d8020cd6e94e06bf399b09">mlx::core::split</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;indices, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga19005414e7d8020cd6e94e06bf399b09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ea089f42b9940510619052b7166d9ac" id="r_ga9ea089f42b9940510619052b7166d9ac"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9ea089f42b9940510619052b7166d9ac">mlx::core::split</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;indices, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga9ea089f42b9940510619052b7166d9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ecddb74ba7861eb82eca8653501d5dc" id="r_ga5ecddb74ba7861eb82eca8653501d5dc"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5ecddb74ba7861eb82eca8653501d5dc">mlx::core::meshgrid</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;arrays, bool sparse=false, const std::string &amp;indexing=&quot;xy&quot;, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga5ecddb74ba7861eb82eca8653501d5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">A vector of coordinate arrays from coordinate vectors. <br /></td></tr>
<tr class="separator:ga5ecddb74ba7861eb82eca8653501d5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga157cd7c23f9b306fee2e1eb2b9bf1dd8" id="r_ga157cd7c23f9b306fee2e1eb2b9bf1dd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga157cd7c23f9b306fee2e1eb2b9bf1dd8">mlx::core::clip</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;a_min=std::nullopt, const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;a_max=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga157cd7c23f9b306fee2e1eb2b9bf1dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip (limit) the values in an array. <br /></td></tr>
<tr class="separator:ga157cd7c23f9b306fee2e1eb2b9bf1dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52838af566948b1b96e7aa00832071b3" id="r_ga52838af566948b1b96e7aa00832071b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga52838af566948b1b96e7aa00832071b3">mlx::core::concatenate</a> (std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; arrays, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga52838af566948b1b96e7aa00832071b3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_concatenate.html">Concatenate</a> arrays along a given axis. <br /></td></tr>
<tr class="separator:ga52838af566948b1b96e7aa00832071b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga666ac69778984fafdc2f51d296270468" id="r_ga666ac69778984fafdc2f51d296270468"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga666ac69778984fafdc2f51d296270468">mlx::core::concatenate</a> (std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; arrays, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga666ac69778984fafdc2f51d296270468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8f2ec2b98a4b59eca73d7471df6e032" id="r_gaf8f2ec2b98a4b59eca73d7471df6e032"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf8f2ec2b98a4b59eca73d7471df6e032">mlx::core::stack</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;arrays, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf8f2ec2b98a4b59eca73d7471df6e032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stack arrays along a new axis. <br /></td></tr>
<tr class="separator:gaf8f2ec2b98a4b59eca73d7471df6e032"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82216209dce901296fc737fe8efa5c94" id="r_ga82216209dce901296fc737fe8efa5c94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga82216209dce901296fc737fe8efa5c94">mlx::core::stack</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;arrays, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga82216209dce901296fc737fe8efa5c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab49e3a687e826554ed1574186e8ae974" id="r_gab49e3a687e826554ed1574186e8ae974"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab49e3a687e826554ed1574186e8ae974">mlx::core::repeat</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;arr, int repeats, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab49e3a687e826554ed1574186e8ae974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Repeat an array along an axis. <br /></td></tr>
<tr class="separator:gab49e3a687e826554ed1574186e8ae974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f75f5d5db999f02f43ecbc6dccf3ba6" id="r_ga4f75f5d5db999f02f43ecbc6dccf3ba6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4f75f5d5db999f02f43ecbc6dccf3ba6">mlx::core::repeat</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;arr, int repeats, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga4f75f5d5db999f02f43ecbc6dccf3ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab105a57b9a4d84496fe1e4d60e13d361" id="r_gab105a57b9a4d84496fe1e4d60e13d361"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab105a57b9a4d84496fe1e4d60e13d361">mlx::core::tile</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;arr, std::vector&lt; int &gt; reps, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gab105a57b9a4d84496fe1e4d60e13d361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1869f3b7094869b44fe7ac4ce58638b" id="r_gac1869f3b7094869b44fe7ac4ce58638b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac1869f3b7094869b44fe7ac4ce58638b">mlx::core::transpose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, std::vector&lt; int &gt; axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac1869f3b7094869b44fe7ac4ce58638b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutes the dimensions according to the given axes. <br /></td></tr>
<tr class="separator:gac1869f3b7094869b44fe7ac4ce58638b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga260ac332956f3a6bf1dfdb9095c84dc5" id="r_ga260ac332956f3a6bf1dfdb9095c84dc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga260ac332956f3a6bf1dfdb9095c84dc5">mlx::core::transpose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, std::initializer_list&lt; int &gt; axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga260ac332956f3a6bf1dfdb9095c84dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc46eed81ab6c6247903e4ec0c4ec1fb" id="r_gabc46eed81ab6c6247903e4ec0c4ec1fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabc46eed81ab6c6247903e4ec0c4ec1fb">mlx::core::swapaxes</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis1, int axis2, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gabc46eed81ab6c6247903e4ec0c4ec1fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap two axes of an array. <br /></td></tr>
<tr class="separator:gabc46eed81ab6c6247903e4ec0c4ec1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24067d10a842db2c9d509ea48135a2c3" id="r_ga24067d10a842db2c9d509ea48135a2c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga24067d10a842db2c9d509ea48135a2c3">mlx::core::moveaxis</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int source, int destination, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga24067d10a842db2c9d509ea48135a2c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an axis of an array. <br /></td></tr>
<tr class="separator:ga24067d10a842db2c9d509ea48135a2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab95ebd20bd7c6d1c840007cc020cbc0c" id="r_gab95ebd20bd7c6d1c840007cc020cbc0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab95ebd20bd7c6d1c840007cc020cbc0c">mlx::core::pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;low_pad_size, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;high_pad_size, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string &amp;mode=&quot;constant&quot;, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab95ebd20bd7c6d1c840007cc020cbc0c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value. <br /></td></tr>
<tr class="separator:gab95ebd20bd7c6d1c840007cc020cbc0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad89f464e92c356faab1f1c2e763b1fb7" id="r_gad89f464e92c356faab1f1c2e763b1fb7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad89f464e92c356faab1f1c2e763b1fb7">mlx::core::pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string &amp;mode=&quot;constant&quot;, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gad89f464e92c356faab1f1c2e763b1fb7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value along all axes. <br /></td></tr>
<tr class="separator:gad89f464e92c356faab1f1c2e763b1fb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2d5a17d3d5225fed34905e786c31c5f" id="r_gab2d5a17d3d5225fed34905e786c31c5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab2d5a17d3d5225fed34905e786c31c5f">mlx::core::pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::pair&lt; int, int &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string &amp;mode=&quot;constant&quot;, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gab2d5a17d3d5225fed34905e786c31c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa73ac5674467b1d5c74de6fef7204c44" id="r_gaa73ac5674467b1d5c74de6fef7204c44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa73ac5674467b1d5c74de6fef7204c44">mlx::core::pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string &amp;mode=&quot;constant&quot;, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaa73ac5674467b1d5c74de6fef7204c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68da0176fefbe0c0096783c6fd926c6a" id="r_ga68da0176fefbe0c0096783c6fd926c6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga68da0176fefbe0c0096783c6fd926c6a">mlx::core::transpose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga68da0176fefbe0c0096783c6fd926c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutes the dimensions in reverse order. <br /></td></tr>
<tr class="separator:ga68da0176fefbe0c0096783c6fd926c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2fd5891f11593b7f09550e884f969013" id="r_ga2fd5891f11593b7f09550e884f969013"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2fd5891f11593b7f09550e884f969013">mlx::core::broadcast_to</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shape, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2fd5891f11593b7f09550e884f969013"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_broadcast.html">Broadcast</a> an array to a given shape. <br /></td></tr>
<tr class="separator:ga2fd5891f11593b7f09550e884f969013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab783890428b596f715dc7dd2057eae99" id="r_gab783890428b596f715dc7dd2057eae99"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab783890428b596f715dc7dd2057eae99">mlx::core::broadcast_arrays</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab783890428b596f715dc7dd2057eae99"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_broadcast.html">Broadcast</a> a vector of arrays against one another. <br /></td></tr>
<tr class="separator:gab783890428b596f715dc7dd2057eae99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33638dc3a9972dd02be12d0eb85f9bde" id="r_ga33638dc3a9972dd02be12d0eb85f9bde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga33638dc3a9972dd02be12d0eb85f9bde">mlx::core::equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga33638dc3a9972dd02be12d0eb85f9bde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bool array with (a == b) element-wise. <br /></td></tr>
<tr class="separator:ga33638dc3a9972dd02be12d0eb85f9bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa30cf69f3d22f65615f5e1696dd5703f" id="r_gaa30cf69f3d22f65615f5e1696dd5703f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa30cf69f3d22f65615f5e1696dd5703f">mlx::core::operator==</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaa30cf69f3d22f65615f5e1696dd5703f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf115782d009ac2a547fcca395c9ec797" id="r_gaf115782d009ac2a547fcca395c9ec797"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaf115782d009ac2a547fcca395c9ec797"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaf115782d009ac2a547fcca395c9ec797">mlx::core::operator==</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaf115782d009ac2a547fcca395c9ec797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ad3ed7aece2650943a35082dbe3a0a5" id="r_ga3ad3ed7aece2650943a35082dbe3a0a5"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga3ad3ed7aece2650943a35082dbe3a0a5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga3ad3ed7aece2650943a35082dbe3a0a5">mlx::core::operator==</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga3ad3ed7aece2650943a35082dbe3a0a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28f22c5d2c399eee53be7b3facc11103" id="r_ga28f22c5d2c399eee53be7b3facc11103"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga28f22c5d2c399eee53be7b3facc11103">mlx::core::not_equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga28f22c5d2c399eee53be7b3facc11103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bool array with (a != b) element-wise. <br /></td></tr>
<tr class="separator:ga28f22c5d2c399eee53be7b3facc11103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ac483d85f23252ca8757e9926d5a3c5" id="r_ga0ac483d85f23252ca8757e9926d5a3c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0ac483d85f23252ca8757e9926d5a3c5">mlx::core::operator!=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga0ac483d85f23252ca8757e9926d5a3c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fecba9f3cb9a19afd8ca492cf509ce0" id="r_ga3fecba9f3cb9a19afd8ca492cf509ce0"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga3fecba9f3cb9a19afd8ca492cf509ce0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga3fecba9f3cb9a19afd8ca492cf509ce0">mlx::core::operator!=</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga3fecba9f3cb9a19afd8ca492cf509ce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebbf1cfde388c7480159a03c92c9a385" id="r_gaebbf1cfde388c7480159a03c92c9a385"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaebbf1cfde388c7480159a03c92c9a385"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaebbf1cfde388c7480159a03c92c9a385">mlx::core::operator!=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:gaebbf1cfde388c7480159a03c92c9a385"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4ec7bfc1ad13b891f1f3ef1772ef04d" id="r_gaf4ec7bfc1ad13b891f1f3ef1772ef04d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf4ec7bfc1ad13b891f1f3ef1772ef04d">mlx::core::greater</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf4ec7bfc1ad13b891f1f3ef1772ef04d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns bool array with (a &gt; b) element-wise. <br /></td></tr>
<tr class="separator:gaf4ec7bfc1ad13b891f1f3ef1772ef04d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74fd2777adef10e6fe628a9cdadb01cb" id="r_ga74fd2777adef10e6fe628a9cdadb01cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga74fd2777adef10e6fe628a9cdadb01cb">mlx::core::operator&gt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga74fd2777adef10e6fe628a9cdadb01cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32e106e794e2c32e4e7decee2df2477f" id="r_ga32e106e794e2c32e4e7decee2df2477f"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga32e106e794e2c32e4e7decee2df2477f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga32e106e794e2c32e4e7decee2df2477f">mlx::core::operator&gt;</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga32e106e794e2c32e4e7decee2df2477f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96552b90e89923c5d2064cc427775ec5" id="r_ga96552b90e89923c5d2064cc427775ec5"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga96552b90e89923c5d2064cc427775ec5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga96552b90e89923c5d2064cc427775ec5">mlx::core::operator&gt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga96552b90e89923c5d2064cc427775ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7153071bcfff6faad21332163fb9a430" id="r_ga7153071bcfff6faad21332163fb9a430"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7153071bcfff6faad21332163fb9a430">mlx::core::greater_equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7153071bcfff6faad21332163fb9a430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns bool array with (a &gt;= b) element-wise. <br /></td></tr>
<tr class="separator:ga7153071bcfff6faad21332163fb9a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a41895f25ed083a36994d95fa102546" id="r_ga3a41895f25ed083a36994d95fa102546"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3a41895f25ed083a36994d95fa102546">mlx::core::operator&gt;=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga3a41895f25ed083a36994d95fa102546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf509f2cb3b18963232f20d6c3bd229b2" id="r_gaf509f2cb3b18963232f20d6c3bd229b2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaf509f2cb3b18963232f20d6c3bd229b2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaf509f2cb3b18963232f20d6c3bd229b2">mlx::core::operator&gt;=</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaf509f2cb3b18963232f20d6c3bd229b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa0eb25d5978674bfc9e59d4145ec590" id="r_gafa0eb25d5978674bfc9e59d4145ec590"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gafa0eb25d5978674bfc9e59d4145ec590"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gafa0eb25d5978674bfc9e59d4145ec590">mlx::core::operator&gt;=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:gafa0eb25d5978674bfc9e59d4145ec590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9142b8d717699a8abfa2a7398891ff8a" id="r_ga9142b8d717699a8abfa2a7398891ff8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9142b8d717699a8abfa2a7398891ff8a">mlx::core::less</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga9142b8d717699a8abfa2a7398891ff8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns bool array with (a &lt; b) element-wise. <br /></td></tr>
<tr class="separator:ga9142b8d717699a8abfa2a7398891ff8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee41e2b8f61d563200ff03575ac1d6c3" id="r_gaee41e2b8f61d563200ff03575ac1d6c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaee41e2b8f61d563200ff03575ac1d6c3">mlx::core::operator&lt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaee41e2b8f61d563200ff03575ac1d6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ef8ea11cf15ce628c54201fa42748ef" id="r_ga1ef8ea11cf15ce628c54201fa42748ef"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga1ef8ea11cf15ce628c54201fa42748ef"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga1ef8ea11cf15ce628c54201fa42748ef">mlx::core::operator&lt;</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga1ef8ea11cf15ce628c54201fa42748ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95e72226dc7a79c40b3d16f990922050" id="r_ga95e72226dc7a79c40b3d16f990922050"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga95e72226dc7a79c40b3d16f990922050"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga95e72226dc7a79c40b3d16f990922050">mlx::core::operator&lt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga95e72226dc7a79c40b3d16f990922050"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d49e0c7011d0573c369c13c8f045a09" id="r_ga0d49e0c7011d0573c369c13c8f045a09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0d49e0c7011d0573c369c13c8f045a09">mlx::core::less_equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga0d49e0c7011d0573c369c13c8f045a09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns bool array with (a &lt;= b) element-wise. <br /></td></tr>
<tr class="separator:ga0d49e0c7011d0573c369c13c8f045a09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c8b8a1632944acaae50f0de6c23ece6" id="r_ga4c8b8a1632944acaae50f0de6c23ece6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4c8b8a1632944acaae50f0de6c23ece6">mlx::core::operator&lt;=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga4c8b8a1632944acaae50f0de6c23ece6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga150a9be467c9f91482a6d6fc13504bc4" id="r_ga150a9be467c9f91482a6d6fc13504bc4"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga150a9be467c9f91482a6d6fc13504bc4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga150a9be467c9f91482a6d6fc13504bc4">mlx::core::operator&lt;=</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga150a9be467c9f91482a6d6fc13504bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga624eeccef0cc4b130e1325abfea057cb" id="r_ga624eeccef0cc4b130e1325abfea057cb"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga624eeccef0cc4b130e1325abfea057cb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga624eeccef0cc4b130e1325abfea057cb">mlx::core::operator&lt;=</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga624eeccef0cc4b130e1325abfea057cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f3059336ee0c87207b1f8c6ab312645" id="r_ga8f3059336ee0c87207b1f8c6ab312645"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8f3059336ee0c87207b1f8c6ab312645">mlx::core::array_equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, bool equal_nan, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8f3059336ee0c87207b1f8c6ab312645"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if two arrays have the same shape and elements. <br /></td></tr>
<tr class="separator:ga8f3059336ee0c87207b1f8c6ab312645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf79cf0271ca0105d7b14295a90d0ed14" id="r_gaf79cf0271ca0105d7b14295a90d0ed14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf79cf0271ca0105d7b14295a90d0ed14">mlx::core::array_equal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf79cf0271ca0105d7b14295a90d0ed14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga175592792471b0ffb45196dca4711ba6" id="r_ga175592792471b0ffb45196dca4711ba6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga175592792471b0ffb45196dca4711ba6">mlx::core::isnan</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga175592792471b0ffb45196dca4711ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fc238d5e5d1153e69da8b36015d9844" id="r_ga8fc238d5e5d1153e69da8b36015d9844"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8fc238d5e5d1153e69da8b36015d9844">mlx::core::isinf</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga8fc238d5e5d1153e69da8b36015d9844"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga725ff0789f934b1fdd54ee29e47022ff" id="r_ga725ff0789f934b1fdd54ee29e47022ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga725ff0789f934b1fdd54ee29e47022ff">mlx::core::isfinite</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga725ff0789f934b1fdd54ee29e47022ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad80f7c4a58c12b6cb30a8b9a73008993" id="r_gad80f7c4a58c12b6cb30a8b9a73008993"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad80f7c4a58c12b6cb30a8b9a73008993">mlx::core::isposinf</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gad80f7c4a58c12b6cb30a8b9a73008993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1940523da381ed7be50656a3bc465ff3" id="r_ga1940523da381ed7be50656a3bc465ff3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1940523da381ed7be50656a3bc465ff3">mlx::core::isneginf</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga1940523da381ed7be50656a3bc465ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a2056f8c9bb30914c40bcf509386491" id="r_ga8a2056f8c9bb30914c40bcf509386491"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8a2056f8c9bb30914c40bcf509386491">mlx::core::where</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;condition, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;x, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;y, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8a2056f8c9bb30914c40bcf509386491"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_select.html">Select</a> from x or y depending on condition. <br /></td></tr>
<tr class="separator:ga8a2056f8c9bb30914c40bcf509386491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1467c6a9e675152e768afd6dcfb61de" id="r_gab1467c6a9e675152e768afd6dcfb61de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab1467c6a9e675152e768afd6dcfb61de">mlx::core::nan_to_num</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, float nan=0.0f, const std::optional&lt; float &gt; posinf=std::nullopt, const std::optional&lt; float &gt; neginf=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab1467c6a9e675152e768afd6dcfb61de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace NaN and infinities with finite numbers. <br /></td></tr>
<tr class="separator:gab1467c6a9e675152e768afd6dcfb61de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b1b90ef1275ca17655b6d7f25d3ee68" id="r_ga3b1b90ef1275ca17655b6d7f25d3ee68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3b1b90ef1275ca17655b6d7f25d3ee68">mlx::core::all</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3b1b90ef1275ca17655b6d7f25d3ee68"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if all elements in the array are true (or non-zero). <br /></td></tr>
<tr class="separator:ga3b1b90ef1275ca17655b6d7f25d3ee68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3689e12e8f42dadb4cbe2b07dc4099f4" id="r_ga3689e12e8f42dadb4cbe2b07dc4099f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3689e12e8f42dadb4cbe2b07dc4099f4">mlx::core::all</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga3689e12e8f42dadb4cbe2b07dc4099f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0cd4257de7542daf9faf5e605e31020" id="r_gaf0cd4257de7542daf9faf5e605e31020"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf0cd4257de7542daf9faf5e605e31020">mlx::core::allclose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, double rtol=1e-5, double atol=1e-8, bool equal_nan=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf0cd4257de7542daf9faf5e605e31020"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the two arrays are equal within the specified tolerance. <br /></td></tr>
<tr class="separator:gaf0cd4257de7542daf9faf5e605e31020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51eac95c04400921c54716de14b52491" id="r_ga51eac95c04400921c54716de14b52491"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga51eac95c04400921c54716de14b52491">mlx::core::isclose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, double rtol=1e-5, double atol=1e-8, bool equal_nan=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga51eac95c04400921c54716de14b52491"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean array where two arrays are element-wise equal within the specified tolerance. <br /></td></tr>
<tr class="separator:ga51eac95c04400921c54716de14b52491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0919c6ba53aea35a7683dea7e9a9a59" id="r_gac0919c6ba53aea35a7683dea7e9a9a59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac0919c6ba53aea35a7683dea7e9a9a59">mlx::core::all</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac0919c6ba53aea35a7683dea7e9a9a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduces the input along the given axes. <br /></td></tr>
<tr class="separator:gac0919c6ba53aea35a7683dea7e9a9a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2d5fcc5b62d673cca76c08b7b4afbbc" id="r_gae2d5fcc5b62d673cca76c08b7b4afbbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae2d5fcc5b62d673cca76c08b7b4afbbc">mlx::core::all</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae2d5fcc5b62d673cca76c08b7b4afbbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduces the input along the given axis. <br /></td></tr>
<tr class="separator:gae2d5fcc5b62d673cca76c08b7b4afbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8598dd718fb05cb28535e250372d4e6f" id="r_ga8598dd718fb05cb28535e250372d4e6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8598dd718fb05cb28535e250372d4e6f">mlx::core::any</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8598dd718fb05cb28535e250372d4e6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if any elements in the array are true (or non-zero). <br /></td></tr>
<tr class="separator:ga8598dd718fb05cb28535e250372d4e6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad37df97f253a963bece124198dbaf9ba" id="r_gad37df97f253a963bece124198dbaf9ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad37df97f253a963bece124198dbaf9ba">mlx::core::any</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gad37df97f253a963bece124198dbaf9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf240618fc8b06debf5f56e97e84f18ef" id="r_gaf240618fc8b06debf5f56e97e84f18ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf240618fc8b06debf5f56e97e84f18ef">mlx::core::any</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf240618fc8b06debf5f56e97e84f18ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduces the input along the given axes. <br /></td></tr>
<tr class="separator:gaf240618fc8b06debf5f56e97e84f18ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1d56277d468a55227f4dad6bc2fc1ce" id="r_gab1d56277d468a55227f4dad6bc2fc1ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab1d56277d468a55227f4dad6bc2fc1ce">mlx::core::any</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab1d56277d468a55227f4dad6bc2fc1ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduces the input along the given axis. <br /></td></tr>
<tr class="separator:gab1d56277d468a55227f4dad6bc2fc1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade905ee92eb6ab7edfc312aeddfbaeb6" id="r_gade905ee92eb6ab7edfc312aeddfbaeb6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gade905ee92eb6ab7edfc312aeddfbaeb6">mlx::core::sum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gade905ee92eb6ab7edfc312aeddfbaeb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sums the elements of an array. <br /></td></tr>
<tr class="separator:gade905ee92eb6ab7edfc312aeddfbaeb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3627754d7868487bdab1bd83f05d9c81" id="r_ga3627754d7868487bdab1bd83f05d9c81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3627754d7868487bdab1bd83f05d9c81">mlx::core::sum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga3627754d7868487bdab1bd83f05d9c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccd0a6be2c5b5128fdc2d87b5c8e67f4" id="r_gaccd0a6be2c5b5128fdc2d87b5c8e67f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaccd0a6be2c5b5128fdc2d87b5c8e67f4">mlx::core::sum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaccd0a6be2c5b5128fdc2d87b5c8e67f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sums the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:gaccd0a6be2c5b5128fdc2d87b5c8e67f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafcd39b0bf39a56c26a967981c7ab8a8d" id="r_gafcd39b0bf39a56c26a967981c7ab8a8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafcd39b0bf39a56c26a967981c7ab8a8d">mlx::core::sum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gafcd39b0bf39a56c26a967981c7ab8a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sums the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:gafcd39b0bf39a56c26a967981c7ab8a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade46e768fd46b8b640eb16f26abeecef" id="r_gade46e768fd46b8b640eb16f26abeecef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gade46e768fd46b8b640eb16f26abeecef">mlx::core::mean</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gade46e768fd46b8b640eb16f26abeecef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the mean of the elements of an array. <br /></td></tr>
<tr class="separator:gade46e768fd46b8b640eb16f26abeecef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52b59fdd8e8430538e564f5bbcfa31e6" id="r_ga52b59fdd8e8430538e564f5bbcfa31e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga52b59fdd8e8430538e564f5bbcfa31e6">mlx::core::mean</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga52b59fdd8e8430538e564f5bbcfa31e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga066161f3d3e395a1d76c638cb680d444" id="r_ga066161f3d3e395a1d76c638cb680d444"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga066161f3d3e395a1d76c638cb680d444">mlx::core::mean</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga066161f3d3e395a1d76c638cb680d444"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the mean of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga066161f3d3e395a1d76c638cb680d444"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45fba73eab0e3b6e128ed3ce2f43a5da" id="r_ga45fba73eab0e3b6e128ed3ce2f43a5da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga45fba73eab0e3b6e128ed3ce2f43a5da">mlx::core::mean</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga45fba73eab0e3b6e128ed3ce2f43a5da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the mean of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga45fba73eab0e3b6e128ed3ce2f43a5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e133df686439588a8cd1fb10ce0c6e9" id="r_ga7e133df686439588a8cd1fb10ce0c6e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7e133df686439588a8cd1fb10ce0c6e9">mlx::core::var</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7e133df686439588a8cd1fb10ce0c6e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the variance of the elements of an array. <br /></td></tr>
<tr class="separator:ga7e133df686439588a8cd1fb10ce0c6e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d7b38d118fa2613214078ef0f7d5a42" id="r_ga7d7b38d118fa2613214078ef0f7d5a42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7d7b38d118fa2613214078ef0f7d5a42">mlx::core::var</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga7d7b38d118fa2613214078ef0f7d5a42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78ddeb966cbe7a5b0aa17e1de43025f2" id="r_ga78ddeb966cbe7a5b0aa17e1de43025f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga78ddeb966cbe7a5b0aa17e1de43025f2">mlx::core::var</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga78ddeb966cbe7a5b0aa17e1de43025f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the variance of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga78ddeb966cbe7a5b0aa17e1de43025f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fbf3e3f98f2e4956faf87af320aa9d0" id="r_ga4fbf3e3f98f2e4956faf87af320aa9d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4fbf3e3f98f2e4956faf87af320aa9d0">mlx::core::var</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga4fbf3e3f98f2e4956faf87af320aa9d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the variance of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga4fbf3e3f98f2e4956faf87af320aa9d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a466024f8061febc0a64be557644cb0" id="r_ga2a466024f8061febc0a64be557644cb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2a466024f8061febc0a64be557644cb0">mlx::core::std</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2a466024f8061febc0a64be557644cb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the standard deviation of the elements of an array. <br /></td></tr>
<tr class="separator:ga2a466024f8061febc0a64be557644cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdcb04d77c64405a3990078a77dd984c" id="r_gafdcb04d77c64405a3990078a77dd984c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafdcb04d77c64405a3990078a77dd984c">mlx::core::std</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gafdcb04d77c64405a3990078a77dd984c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f649970bf38b987b6ef847054f3c2f8" id="r_ga7f649970bf38b987b6ef847054f3c2f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7f649970bf38b987b6ef847054f3c2f8">mlx::core::std</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7f649970bf38b987b6ef847054f3c2f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the standard deviatoin of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga7f649970bf38b987b6ef847054f3c2f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62721a206df671ef5797449eea97af9f" id="r_ga62721a206df671ef5797449eea97af9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga62721a206df671ef5797449eea97af9f">mlx::core::std</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, int ddof=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga62721a206df671ef5797449eea97af9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the standard deviation of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga62721a206df671ef5797449eea97af9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a09b7241d564d92548bc2773eb1d544" id="r_ga4a09b7241d564d92548bc2773eb1d544"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4a09b7241d564d92548bc2773eb1d544">mlx::core::prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga4a09b7241d564d92548bc2773eb1d544"><td class="mdescLeft">&#160;</td><td class="mdescRight">The product of all elements of the array. <br /></td></tr>
<tr class="separator:ga4a09b7241d564d92548bc2773eb1d544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61832191f3c42ea549cf04953edc3602" id="r_ga61832191f3c42ea549cf04953edc3602"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga61832191f3c42ea549cf04953edc3602">mlx::core::prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga61832191f3c42ea549cf04953edc3602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b3935108f641e20a70dbf63f540d970" id="r_ga2b3935108f641e20a70dbf63f540d970"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2b3935108f641e20a70dbf63f540d970">mlx::core::prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2b3935108f641e20a70dbf63f540d970"><td class="mdescLeft">&#160;</td><td class="mdescRight">The product of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga2b3935108f641e20a70dbf63f540d970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a10a10b81c69996d0aca8ba401f8ff0" id="r_ga8a10a10b81c69996d0aca8ba401f8ff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8a10a10b81c69996d0aca8ba401f8ff0">mlx::core::prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8a10a10b81c69996d0aca8ba401f8ff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The product of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga8a10a10b81c69996d0aca8ba401f8ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fed87d96cc7741d8267f4eac83f5fe7" id="r_ga7fed87d96cc7741d8267f4eac83f5fe7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7fed87d96cc7741d8267f4eac83f5fe7">mlx::core::max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7fed87d96cc7741d8267f4eac83f5fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum of all elements of the array. <br /></td></tr>
<tr class="separator:ga7fed87d96cc7741d8267f4eac83f5fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25be91d70a5f40341db0615a0b8bfedc" id="r_ga25be91d70a5f40341db0615a0b8bfedc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga25be91d70a5f40341db0615a0b8bfedc">mlx::core::max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga25be91d70a5f40341db0615a0b8bfedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ca7b6b91fe2459a7d83897bf013827f" id="r_ga1ca7b6b91fe2459a7d83897bf013827f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1ca7b6b91fe2459a7d83897bf013827f">mlx::core::max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1ca7b6b91fe2459a7d83897bf013827f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga1ca7b6b91fe2459a7d83897bf013827f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b638050e03a93f2896c981bc2850a47" id="r_ga7b638050e03a93f2896c981bc2850a47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7b638050e03a93f2896c981bc2850a47">mlx::core::max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7b638050e03a93f2896c981bc2850a47"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga7b638050e03a93f2896c981bc2850a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab27599802617a4c8f9964ab5f4ffee12" id="r_gab27599802617a4c8f9964ab5f4ffee12"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab27599802617a4c8f9964ab5f4ffee12">mlx::core::min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab27599802617a4c8f9964ab5f4ffee12"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum of all elements of the array. <br /></td></tr>
<tr class="separator:gab27599802617a4c8f9964ab5f4ffee12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0140b91e9cdfc3fef0da8e332f65a9e8" id="r_ga0140b91e9cdfc3fef0da8e332f65a9e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0140b91e9cdfc3fef0da8e332f65a9e8">mlx::core::min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga0140b91e9cdfc3fef0da8e332f65a9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6efb83cd46436678c8f8c4af15cc00f5" id="r_ga6efb83cd46436678c8f8c4af15cc00f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6efb83cd46436678c8f8c4af15cc00f5">mlx::core::min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6efb83cd46436678c8f8c4af15cc00f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:ga6efb83cd46436678c8f8c4af15cc00f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36fa315eef677f4143868f552cd26d03" id="r_ga36fa315eef677f4143868f552cd26d03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga36fa315eef677f4143868f552cd26d03">mlx::core::min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga36fa315eef677f4143868f552cd26d03"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:ga36fa315eef677f4143868f552cd26d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c3bd5ef430a71dfd298e626741e3c71" id="r_ga7c3bd5ef430a71dfd298e626741e3c71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7c3bd5ef430a71dfd298e626741e3c71">mlx::core::argmin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7c3bd5ef430a71dfd298e626741e3c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the minimum value in the array. <br /></td></tr>
<tr class="separator:ga7c3bd5ef430a71dfd298e626741e3c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6bc577c5ab10cd9c848ba81321595070" id="r_ga6bc577c5ab10cd9c848ba81321595070"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6bc577c5ab10cd9c848ba81321595070">mlx::core::argmin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga6bc577c5ab10cd9c848ba81321595070"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf66dc3c77b88e4009e0678eda41eca81" id="r_gaf66dc3c77b88e4009e0678eda41eca81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf66dc3c77b88e4009e0678eda41eca81">mlx::core::argmin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf66dc3c77b88e4009e0678eda41eca81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the indices of the minimum values along a given axis. <br /></td></tr>
<tr class="separator:gaf66dc3c77b88e4009e0678eda41eca81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae60b0b5339b9c50b9970260faf613e83" id="r_gae60b0b5339b9c50b9970260faf613e83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae60b0b5339b9c50b9970260faf613e83">mlx::core::argmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae60b0b5339b9c50b9970260faf613e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the maximum value in the array. <br /></td></tr>
<tr class="separator:gae60b0b5339b9c50b9970260faf613e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6f6c5a840320b336fdc9687e0ed56c8" id="r_gae6f6c5a840320b336fdc9687e0ed56c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae6f6c5a840320b336fdc9687e0ed56c8">mlx::core::argmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gae6f6c5a840320b336fdc9687e0ed56c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2efa67466510fc26ab9ea8dff30f2ba5" id="r_ga2efa67466510fc26ab9ea8dff30f2ba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2efa67466510fc26ab9ea8dff30f2ba5">mlx::core::argmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2efa67466510fc26ab9ea8dff30f2ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the indices of the maximum values along a given axis. <br /></td></tr>
<tr class="separator:ga2efa67466510fc26ab9ea8dff30f2ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fb616054665b3c2d61fa234f501f079" id="r_ga7fb616054665b3c2d61fa234f501f079"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7fb616054665b3c2d61fa234f501f079">mlx::core::sort</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7fb616054665b3c2d61fa234f501f079"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sorted copy of the flattened array. <br /></td></tr>
<tr class="separator:ga7fb616054665b3c2d61fa234f501f079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae1bc47aa737f705d0e5884270063fea" id="r_gaae1bc47aa737f705d0e5884270063fea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaae1bc47aa737f705d0e5884270063fea">mlx::core::sort</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaae1bc47aa737f705d0e5884270063fea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sorted copy of the array along a given axis. <br /></td></tr>
<tr class="separator:gaae1bc47aa737f705d0e5884270063fea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8df3b2703bf671457422894dd870cdc5" id="r_ga8df3b2703bf671457422894dd870cdc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8df3b2703bf671457422894dd870cdc5">mlx::core::argsort</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8df3b2703bf671457422894dd870cdc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns indices that sort the flattened array. <br /></td></tr>
<tr class="separator:ga8df3b2703bf671457422894dd870cdc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7878e0daa5a75f44e57b5fe948fa3ef6" id="r_ga7878e0daa5a75f44e57b5fe948fa3ef6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7878e0daa5a75f44e57b5fe948fa3ef6">mlx::core::argsort</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7878e0daa5a75f44e57b5fe948fa3ef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns indices that sort the array along a given axis. <br /></td></tr>
<tr class="separator:ga7878e0daa5a75f44e57b5fe948fa3ef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1b30830a972fb9a2601379ad2b32405" id="r_gac1b30830a972fb9a2601379ad2b32405"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac1b30830a972fb9a2601379ad2b32405">mlx::core::partition</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int kth, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac1b30830a972fb9a2601379ad2b32405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a partitioned copy of the flattened array such that the smaller kth elements are first. <br /></td></tr>
<tr class="separator:gac1b30830a972fb9a2601379ad2b32405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fbea3a5f66cf81e3c119d1661119321" id="r_ga4fbea3a5f66cf81e3c119d1661119321"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4fbea3a5f66cf81e3c119d1661119321">mlx::core::partition</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int kth, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga4fbea3a5f66cf81e3c119d1661119321"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a partitioned copy of the array along a given axis such that the smaller kth elements are first. <br /></td></tr>
<tr class="separator:ga4fbea3a5f66cf81e3c119d1661119321"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf301c49c10fa9b95a9e8dc52ead1a8dd" id="r_gaf301c49c10fa9b95a9e8dc52ead1a8dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf301c49c10fa9b95a9e8dc52ead1a8dd">mlx::core::argpartition</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int kth, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf301c49c10fa9b95a9e8dc52ead1a8dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns indices that partition the flattened array such that the smaller kth elements are first. <br /></td></tr>
<tr class="separator:gaf301c49c10fa9b95a9e8dc52ead1a8dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b15c654c7463def57857a0e239989a3" id="r_ga7b15c654c7463def57857a0e239989a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7b15c654c7463def57857a0e239989a3">mlx::core::argpartition</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int kth, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7b15c654c7463def57857a0e239989a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns indices that partition the array along a given axis such that the smaller kth elements are first. <br /></td></tr>
<tr class="separator:ga7b15c654c7463def57857a0e239989a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5487dd887c43e5341f3e68ffe47f0f5a" id="r_ga5487dd887c43e5341f3e68ffe47f0f5a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5487dd887c43e5341f3e68ffe47f0f5a">mlx::core::topk</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int k, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga5487dd887c43e5341f3e68ffe47f0f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns topk elements of the flattened array. <br /></td></tr>
<tr class="separator:ga5487dd887c43e5341f3e68ffe47f0f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35b8436c79ff953f6c809598b646f498" id="r_ga35b8436c79ff953f6c809598b646f498"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga35b8436c79ff953f6c809598b646f498">mlx::core::topk</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int k, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga35b8436c79ff953f6c809598b646f498"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns topk elements of the array along a given axis. <br /></td></tr>
<tr class="separator:ga35b8436c79ff953f6c809598b646f498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacff4eb57c085d571e722083680267ac5" id="r_gacff4eb57c085d571e722083680267ac5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gacff4eb57c085d571e722083680267ac5">mlx::core::logsumexp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool keepdims, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gacff4eb57c085d571e722083680267ac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The logsumexp of all elements of the array. <br /></td></tr>
<tr class="separator:gacff4eb57c085d571e722083680267ac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59be50b4e92f1dc20b53460cefa3910d" id="r_ga59be50b4e92f1dc20b53460cefa3910d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga59be50b4e92f1dc20b53460cefa3910d">mlx::core::logsumexp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga59be50b4e92f1dc20b53460cefa3910d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3969c7bd24c4f3ab97831df28239689" id="r_gae3969c7bd24c4f3ab97831df28239689"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae3969c7bd24c4f3ab97831df28239689">mlx::core::logsumexp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae3969c7bd24c4f3ab97831df28239689"><td class="mdescLeft">&#160;</td><td class="mdescRight">The logsumexp of the elements of an array along the given axes. <br /></td></tr>
<tr class="separator:gae3969c7bd24c4f3ab97831df28239689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafef5cb2159c16a60a95470cc823bdd44" id="r_gafef5cb2159c16a60a95470cc823bdd44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafef5cb2159c16a60a95470cc823bdd44">mlx::core::logsumexp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool keepdims=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gafef5cb2159c16a60a95470cc823bdd44"><td class="mdescLeft">&#160;</td><td class="mdescRight">The logsumexp of the elements of an array along the given axis. <br /></td></tr>
<tr class="separator:gafef5cb2159c16a60a95470cc823bdd44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5528e80f5e8bad71e106a0cf9edd8920" id="r_ga5528e80f5e8bad71e106a0cf9edd8920"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5528e80f5e8bad71e106a0cf9edd8920">mlx::core::abs</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga5528e80f5e8bad71e106a0cf9edd8920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute value of elements in an array. <br /></td></tr>
<tr class="separator:ga5528e80f5e8bad71e106a0cf9edd8920"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95d9a9425533b5ed1707eb00184dffc6" id="r_ga95d9a9425533b5ed1707eb00184dffc6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga95d9a9425533b5ed1707eb00184dffc6">mlx::core::negative</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga95d9a9425533b5ed1707eb00184dffc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Negate an array. <br /></td></tr>
<tr class="separator:ga95d9a9425533b5ed1707eb00184dffc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade2eea48989f4caaf36e89f7bd2a8816" id="r_gade2eea48989f4caaf36e89f7bd2a8816"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gade2eea48989f4caaf36e89f7bd2a8816">mlx::core::operator-</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a)</td></tr>
<tr class="separator:gade2eea48989f4caaf36e89f7bd2a8816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20f1a1a8c0cd6206485f9363f3915faa" id="r_ga20f1a1a8c0cd6206485f9363f3915faa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga20f1a1a8c0cd6206485f9363f3915faa">mlx::core::sign</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga20f1a1a8c0cd6206485f9363f3915faa"><td class="mdescLeft">&#160;</td><td class="mdescRight">The sign of the elements in an array. <br /></td></tr>
<tr class="separator:ga20f1a1a8c0cd6206485f9363f3915faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabca78d34ce93f0de2814e62225bb2a53" id="r_gabca78d34ce93f0de2814e62225bb2a53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabca78d34ce93f0de2814e62225bb2a53">mlx::core::logical_not</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gabca78d34ce93f0de2814e62225bb2a53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical not of an array. <br /></td></tr>
<tr class="separator:gabca78d34ce93f0de2814e62225bb2a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga768977cda8d68cf23f464a6af9907876" id="r_ga768977cda8d68cf23f464a6af9907876"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga768977cda8d68cf23f464a6af9907876">mlx::core::logical_and</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga768977cda8d68cf23f464a6af9907876"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical and of two arrays. <br /></td></tr>
<tr class="separator:ga768977cda8d68cf23f464a6af9907876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee1d774bb0843601d7a0a4257d616ae3" id="r_gaee1d774bb0843601d7a0a4257d616ae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaee1d774bb0843601d7a0a4257d616ae3">mlx::core::operator&amp;&amp;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaee1d774bb0843601d7a0a4257d616ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23768728e4dd070c917fbb0ed0d0c2ec" id="r_ga23768728e4dd070c917fbb0ed0d0c2ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga23768728e4dd070c917fbb0ed0d0c2ec">mlx::core::logical_or</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga23768728e4dd070c917fbb0ed0d0c2ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical or of two arrays. <br /></td></tr>
<tr class="separator:ga23768728e4dd070c917fbb0ed0d0c2ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27af56a98270d4d76d139f0f9171b83a" id="r_ga27af56a98270d4d76d139f0f9171b83a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga27af56a98270d4d76d139f0f9171b83a">mlx::core::operator||</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga27af56a98270d4d76d139f0f9171b83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d29556bb93e2f66916116cf1f062b36" id="r_ga4d29556bb93e2f66916116cf1f062b36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4d29556bb93e2f66916116cf1f062b36">mlx::core::reciprocal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga4d29556bb93e2f66916116cf1f062b36"><td class="mdescLeft">&#160;</td><td class="mdescRight">The reciprocal (1/x) of the elements in an array. <br /></td></tr>
<tr class="separator:ga4d29556bb93e2f66916116cf1f062b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d32d67cfd76785a72c43d89b94dc7d7" id="r_ga2d32d67cfd76785a72c43d89b94dc7d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2d32d67cfd76785a72c43d89b94dc7d7">mlx::core::add</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2d32d67cfd76785a72c43d89b94dc7d7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> two arrays. <br /></td></tr>
<tr class="separator:ga2d32d67cfd76785a72c43d89b94dc7d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26e5a043eaaaf066d1400adac9c11d0c" id="r_ga26e5a043eaaaf066d1400adac9c11d0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga26e5a043eaaaf066d1400adac9c11d0c">mlx::core::operator+</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga26e5a043eaaaf066d1400adac9c11d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d0ec8d01e7cefa6a6b25f11876761b5" id="r_ga7d0ec8d01e7cefa6a6b25f11876761b5"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga7d0ec8d01e7cefa6a6b25f11876761b5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga7d0ec8d01e7cefa6a6b25f11876761b5">mlx::core::operator+</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga7d0ec8d01e7cefa6a6b25f11876761b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7cc080a4f9d4a667f2099aa0dbfefadd" id="r_ga7cc080a4f9d4a667f2099aa0dbfefadd"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga7cc080a4f9d4a667f2099aa0dbfefadd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga7cc080a4f9d4a667f2099aa0dbfefadd">mlx::core::operator+</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga7cc080a4f9d4a667f2099aa0dbfefadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga196c240d3d0fcbb4713802c485e15133" id="r_ga196c240d3d0fcbb4713802c485e15133"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga196c240d3d0fcbb4713802c485e15133">mlx::core::subtract</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga196c240d3d0fcbb4713802c485e15133"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_subtract.html">Subtract</a> two arrays. <br /></td></tr>
<tr class="separator:ga196c240d3d0fcbb4713802c485e15133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c7f3cb36d4ca516c7a33142f88b9181" id="r_ga0c7f3cb36d4ca516c7a33142f88b9181"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0c7f3cb36d4ca516c7a33142f88b9181">mlx::core::operator-</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga0c7f3cb36d4ca516c7a33142f88b9181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae68d3d0691ba951501218e98439f3465" id="r_gae68d3d0691ba951501218e98439f3465"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gae68d3d0691ba951501218e98439f3465"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gae68d3d0691ba951501218e98439f3465">mlx::core::operator-</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gae68d3d0691ba951501218e98439f3465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5e5d882c51ad0a0ea315c274d5439b2" id="r_gaf5e5d882c51ad0a0ea315c274d5439b2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gaf5e5d882c51ad0a0ea315c274d5439b2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gaf5e5d882c51ad0a0ea315c274d5439b2">mlx::core::operator-</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:gaf5e5d882c51ad0a0ea315c274d5439b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf57392e641640b5d06e4c99518391c38" id="r_gaf57392e641640b5d06e4c99518391c38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf57392e641640b5d06e4c99518391c38">mlx::core::multiply</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf57392e641640b5d06e4c99518391c38"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_multiply.html">Multiply</a> two arrays. <br /></td></tr>
<tr class="separator:gaf57392e641640b5d06e4c99518391c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c33f5cdb6fc10d272acd6e208034e0" id="r_ga26c33f5cdb6fc10d272acd6e208034e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga26c33f5cdb6fc10d272acd6e208034e0">mlx::core::operator*</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga26c33f5cdb6fc10d272acd6e208034e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac22a67f7de797b1ae59029843cbdcab6" id="r_gac22a67f7de797b1ae59029843cbdcab6"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:gac22a67f7de797b1ae59029843cbdcab6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#gac22a67f7de797b1ae59029843cbdcab6">mlx::core::operator*</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gac22a67f7de797b1ae59029843cbdcab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f2369ed5fae8ff9b1528670a004dde2" id="r_ga6f2369ed5fae8ff9b1528670a004dde2"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga6f2369ed5fae8ff9b1528670a004dde2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga6f2369ed5fae8ff9b1528670a004dde2">mlx::core::operator*</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga6f2369ed5fae8ff9b1528670a004dde2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77472dd06cfa7a30a42e4fd927bd859f" id="r_ga77472dd06cfa7a30a42e4fd927bd859f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga77472dd06cfa7a30a42e4fd927bd859f">mlx::core::divide</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga77472dd06cfa7a30a42e4fd927bd859f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_divide.html">Divide</a> two arrays. <br /></td></tr>
<tr class="separator:ga77472dd06cfa7a30a42e4fd927bd859f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeedf77f722b394429f1a7f6c367883bf" id="r_gaeedf77f722b394429f1a7f6c367883bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaeedf77f722b394429f1a7f6c367883bf">mlx::core::operator/</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaeedf77f722b394429f1a7f6c367883bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7366ec7f453be2a4dc449f0faa1bf554" id="r_ga7366ec7f453be2a4dc449f0faa1bf554"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7366ec7f453be2a4dc449f0faa1bf554">mlx::core::operator/</a> (double a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga7366ec7f453be2a4dc449f0faa1bf554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfb324ae9b4feb2c7ea0ac6ade639f38" id="r_gadfb324ae9b4feb2c7ea0ac6ade639f38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gadfb324ae9b4feb2c7ea0ac6ade639f38">mlx::core::operator/</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, double b)</td></tr>
<tr class="separator:gadfb324ae9b4feb2c7ea0ac6ade639f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa30ebc0a8376dbc3f7e46a47052b5894" id="r_gaa30ebc0a8376dbc3f7e46a47052b5894"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa30ebc0a8376dbc3f7e46a47052b5894">mlx::core::divmod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaa30ebc0a8376dbc3f7e46a47052b5894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the element-wise quotient and remainder. <br /></td></tr>
<tr class="separator:gaa30ebc0a8376dbc3f7e46a47052b5894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05b4c6054d028107869511f927da01cd" id="r_ga05b4c6054d028107869511f927da01cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga05b4c6054d028107869511f927da01cd">mlx::core::floor_divide</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga05b4c6054d028107869511f927da01cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute integer division. <br /></td></tr>
<tr class="separator:ga05b4c6054d028107869511f927da01cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99f5c904f724156a814d7817188351d2" id="r_ga99f5c904f724156a814d7817188351d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga99f5c904f724156a814d7817188351d2">mlx::core::remainder</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga99f5c904f724156a814d7817188351d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the element-wise remainder of division. <br /></td></tr>
<tr class="separator:ga99f5c904f724156a814d7817188351d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3bfbf82b1e4de7b00bbcf1a2255fbde" id="r_gab3bfbf82b1e4de7b00bbcf1a2255fbde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab3bfbf82b1e4de7b00bbcf1a2255fbde">mlx::core::operator%</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gab3bfbf82b1e4de7b00bbcf1a2255fbde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50817666f0b82afcbf4a123486af9908" id="r_ga50817666f0b82afcbf4a123486af9908"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga50817666f0b82afcbf4a123486af9908"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga50817666f0b82afcbf4a123486af9908">mlx::core::operator%</a> (T a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga50817666f0b82afcbf4a123486af9908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46c01daa07433542a477d216e13a8480" id="r_ga46c01daa07433542a477d216e13a8480"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:ga46c01daa07433542a477d216e13a8480"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ga46c01daa07433542a477d216e13a8480">mlx::core::operator%</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, T b)</td></tr>
<tr class="separator:ga46c01daa07433542a477d216e13a8480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ade2ea305e2e4219c3609443fb5db8d" id="r_ga7ade2ea305e2e4219c3609443fb5db8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7ade2ea305e2e4219c3609443fb5db8d">mlx::core::maximum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7ade2ea305e2e4219c3609443fb5db8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element-wise maximum between two arrays. <br /></td></tr>
<tr class="separator:ga7ade2ea305e2e4219c3609443fb5db8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49ba00c090f81f331c91b0c97040bce0" id="r_ga49ba00c090f81f331c91b0c97040bce0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga49ba00c090f81f331c91b0c97040bce0">mlx::core::minimum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga49ba00c090f81f331c91b0c97040bce0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element-wise minimum between two arrays. <br /></td></tr>
<tr class="separator:ga49ba00c090f81f331c91b0c97040bce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d656904aa2690b60955ae745aecfc30" id="r_ga8d656904aa2690b60955ae745aecfc30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8d656904aa2690b60955ae745aecfc30">mlx::core::floor</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8d656904aa2690b60955ae745aecfc30"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_floor.html">Floor</a> the element of an array. <br /></td></tr>
<tr class="separator:ga8d656904aa2690b60955ae745aecfc30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1404ecceff83fd9b9139b7520f55e096" id="r_ga1404ecceff83fd9b9139b7520f55e096"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1404ecceff83fd9b9139b7520f55e096">mlx::core::ceil</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1404ecceff83fd9b9139b7520f55e096"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_ceil.html">Ceil</a> the element of an array. <br /></td></tr>
<tr class="separator:ga1404ecceff83fd9b9139b7520f55e096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1234e4c39cfa79f19d4bdb5b8ea4d45e" id="r_ga1234e4c39cfa79f19d4bdb5b8ea4d45e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1234e4c39cfa79f19d4bdb5b8ea4d45e">mlx::core::square</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1234e4c39cfa79f19d4bdb5b8ea4d45e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> the elements of an array. <br /></td></tr>
<tr class="separator:ga1234e4c39cfa79f19d4bdb5b8ea4d45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a3b04e23e347d99ecf411fd6f4e5125" id="r_ga8a3b04e23e347d99ecf411fd6f4e5125"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8a3b04e23e347d99ecf411fd6f4e5125">mlx::core::exp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8a3b04e23e347d99ecf411fd6f4e5125"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exponential of the elements of an array. <br /></td></tr>
<tr class="separator:ga8a3b04e23e347d99ecf411fd6f4e5125"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebf0a73ad3732fba39df37826c235692" id="r_gaebf0a73ad3732fba39df37826c235692"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaebf0a73ad3732fba39df37826c235692">mlx::core::sin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaebf0a73ad3732fba39df37826c235692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sine of the elements of an array. <br /></td></tr>
<tr class="separator:gaebf0a73ad3732fba39df37826c235692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39dfdf72b556012aa35ff27a94116e74" id="r_ga39dfdf72b556012aa35ff27a94116e74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga39dfdf72b556012aa35ff27a94116e74">mlx::core::cos</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga39dfdf72b556012aa35ff27a94116e74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cosine of the elements of an array. <br /></td></tr>
<tr class="separator:ga39dfdf72b556012aa35ff27a94116e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f10e89a4bcb1a8fa44fb33b8d1176a5" id="r_ga3f10e89a4bcb1a8fa44fb33b8d1176a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3f10e89a4bcb1a8fa44fb33b8d1176a5">mlx::core::tan</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3f10e89a4bcb1a8fa44fb33b8d1176a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tangent of the elements of an array. <br /></td></tr>
<tr class="separator:ga3f10e89a4bcb1a8fa44fb33b8d1176a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8770e8c8f23f13343911f4c9d6e1c619" id="r_ga8770e8c8f23f13343911f4c9d6e1c619"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8770e8c8f23f13343911f4c9d6e1c619">mlx::core::arcsin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8770e8c8f23f13343911f4c9d6e1c619"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc Sine of the elements of an array. <br /></td></tr>
<tr class="separator:ga8770e8c8f23f13343911f4c9d6e1c619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08bec7cb10c84466487b507fc5bf9776" id="r_ga08bec7cb10c84466487b507fc5bf9776"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga08bec7cb10c84466487b507fc5bf9776">mlx::core::arccos</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga08bec7cb10c84466487b507fc5bf9776"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc Cosine of the elements of an array. <br /></td></tr>
<tr class="separator:ga08bec7cb10c84466487b507fc5bf9776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa041f3f070e68f4946db07516b7d092e" id="r_gaa041f3f070e68f4946db07516b7d092e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa041f3f070e68f4946db07516b7d092e">mlx::core::arctan</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaa041f3f070e68f4946db07516b7d092e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc Tangent of the elements of an array. <br /></td></tr>
<tr class="separator:gaa041f3f070e68f4946db07516b7d092e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6caba9c92b5989123501f909cc7da354" id="r_ga6caba9c92b5989123501f909cc7da354"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6caba9c92b5989123501f909cc7da354">mlx::core::arctan2</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6caba9c92b5989123501f909cc7da354"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> tangent of the ratio of two arrays. <br /></td></tr>
<tr class="separator:ga6caba9c92b5989123501f909cc7da354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf532375c6563dbd6e329bdedf0224dd7" id="r_gaf532375c6563dbd6e329bdedf0224dd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf532375c6563dbd6e329bdedf0224dd7">mlx::core::sinh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf532375c6563dbd6e329bdedf0224dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hyperbolic Sine of the elements of an array. <br /></td></tr>
<tr class="separator:gaf532375c6563dbd6e329bdedf0224dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2181b71cda88007a3092be4795ff0715" id="r_ga2181b71cda88007a3092be4795ff0715"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2181b71cda88007a3092be4795ff0715">mlx::core::cosh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2181b71cda88007a3092be4795ff0715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hyperbolic Cosine of the elements of an array. <br /></td></tr>
<tr class="separator:ga2181b71cda88007a3092be4795ff0715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5efb19aa0dfa42d8a3d5e1dfd569cd6d" id="r_ga5efb19aa0dfa42d8a3d5e1dfd569cd6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5efb19aa0dfa42d8a3d5e1dfd569cd6d">mlx::core::tanh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga5efb19aa0dfa42d8a3d5e1dfd569cd6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hyperbolic Tangent of the elements of an array. <br /></td></tr>
<tr class="separator:ga5efb19aa0dfa42d8a3d5e1dfd569cd6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac62e2cedc49ef2c90dd8584000317450" id="r_gac62e2cedc49ef2c90dd8584000317450"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac62e2cedc49ef2c90dd8584000317450">mlx::core::arcsinh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac62e2cedc49ef2c90dd8584000317450"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Sine of the elements of an array. <br /></td></tr>
<tr class="separator:gac62e2cedc49ef2c90dd8584000317450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafafcfcebdf7248679c8543d0c0497e5" id="r_gaafafcfcebdf7248679c8543d0c0497e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaafafcfcebdf7248679c8543d0c0497e5">mlx::core::arccosh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaafafcfcebdf7248679c8543d0c0497e5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Cosine of the elements of an array. <br /></td></tr>
<tr class="separator:gaafafcfcebdf7248679c8543d0c0497e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab46a35925a04c5a9d2ec7898ee55358e" id="r_gab46a35925a04c5a9d2ec7898ee55358e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab46a35925a04c5a9d2ec7898ee55358e">mlx::core::arctanh</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab46a35925a04c5a9d2ec7898ee55358e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Tangent of the elements of an array. <br /></td></tr>
<tr class="separator:gab46a35925a04c5a9d2ec7898ee55358e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a70569b50e1083c5ded199d73fb960c" id="r_ga3a70569b50e1083c5ded199d73fb960c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3a70569b50e1083c5ded199d73fb960c">mlx::core::degrees</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3a70569b50e1083c5ded199d73fb960c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the elements of an array from Radians to Degrees. <br /></td></tr>
<tr class="separator:ga3a70569b50e1083c5ded199d73fb960c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07aa8059adba5b9a8818027b8aafd31e" id="r_ga07aa8059adba5b9a8818027b8aafd31e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga07aa8059adba5b9a8818027b8aafd31e">mlx::core::radians</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga07aa8059adba5b9a8818027b8aafd31e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the elements of an array from Degrees to Radians. <br /></td></tr>
<tr class="separator:ga07aa8059adba5b9a8818027b8aafd31e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fb22d4926133573e430fcc92f4eef31" id="r_ga6fb22d4926133573e430fcc92f4eef31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6fb22d4926133573e430fcc92f4eef31">mlx::core::log</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6fb22d4926133573e430fcc92f4eef31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Natural logarithm of the elements of an array. <br /></td></tr>
<tr class="separator:ga6fb22d4926133573e430fcc92f4eef31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga144228d7222d15af3a135b8b0f3fa21b" id="r_ga144228d7222d15af3a135b8b0f3fa21b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga144228d7222d15af3a135b8b0f3fa21b">mlx::core::log2</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga144228d7222d15af3a135b8b0f3fa21b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_log.html">Log</a> base 2 of the elements of an array. <br /></td></tr>
<tr class="separator:ga144228d7222d15af3a135b8b0f3fa21b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fdcc7fc8819caf2e6f1c327ed4e9b9e" id="r_ga1fdcc7fc8819caf2e6f1c327ed4e9b9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1fdcc7fc8819caf2e6f1c327ed4e9b9e">mlx::core::log10</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1fdcc7fc8819caf2e6f1c327ed4e9b9e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_log.html">Log</a> base 10 of the elements of an array. <br /></td></tr>
<tr class="separator:ga1fdcc7fc8819caf2e6f1c327ed4e9b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20a1f4270c35b0fa544f5105a87a1604" id="r_ga20a1f4270c35b0fa544f5105a87a1604"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga20a1f4270c35b0fa544f5105a87a1604">mlx::core::log1p</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga20a1f4270c35b0fa544f5105a87a1604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Natural logarithm of one plus elements in the array: <code>log(1 + a)</code>. <br /></td></tr>
<tr class="separator:ga20a1f4270c35b0fa544f5105a87a1604"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf985df6609c6bd75a14a844655d89eaa" id="r_gaf985df6609c6bd75a14a844655d89eaa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf985df6609c6bd75a14a844655d89eaa">mlx::core::logaddexp</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf985df6609c6bd75a14a844655d89eaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log-add-exp of one elements in the array: <code>log(exp(a) + exp(b))</code>. <br /></td></tr>
<tr class="separator:gaf985df6609c6bd75a14a844655d89eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga708abf8f79609cd6831db7c38cafac0e" id="r_ga708abf8f79609cd6831db7c38cafac0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga708abf8f79609cd6831db7c38cafac0e">mlx::core::sigmoid</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga708abf8f79609cd6831db7c38cafac0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element-wise logistic sigmoid of the array: <code>1 / (1 + exp(-x)</code>. <br /></td></tr>
<tr class="separator:ga708abf8f79609cd6831db7c38cafac0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga292a335240fd5d6d625fb7a340ff5eb0" id="r_ga292a335240fd5d6d625fb7a340ff5eb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga292a335240fd5d6d625fb7a340ff5eb0">mlx::core::erf</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga292a335240fd5d6d625fb7a340ff5eb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the error function of the elements of an array. <br /></td></tr>
<tr class="separator:ga292a335240fd5d6d625fb7a340ff5eb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76fb9062c64264e34d2e07013390557c" id="r_ga76fb9062c64264e34d2e07013390557c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga76fb9062c64264e34d2e07013390557c">mlx::core::erfinv</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga76fb9062c64264e34d2e07013390557c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the inverse error function of the elements of an array. <br /></td></tr>
<tr class="separator:ga76fb9062c64264e34d2e07013390557c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54ca54f06bfb2be15b163a5209e2a0f0" id="r_ga54ca54f06bfb2be15b163a5209e2a0f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga54ca54f06bfb2be15b163a5209e2a0f0">mlx::core::expm1</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga54ca54f06bfb2be15b163a5209e2a0f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the expm1 function of the elements of an array. <br /></td></tr>
<tr class="separator:ga54ca54f06bfb2be15b163a5209e2a0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36bc28f1deb2fe668ca9ae1e447b6b1f" id="r_ga36bc28f1deb2fe668ca9ae1e447b6b1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga36bc28f1deb2fe668ca9ae1e447b6b1f">mlx::core::stop_gradient</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga36bc28f1deb2fe668ca9ae1e447b6b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the flow of gradients. <br /></td></tr>
<tr class="separator:ga36bc28f1deb2fe668ca9ae1e447b6b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d74d43f007a069384e89d8416525331" id="r_ga2d74d43f007a069384e89d8416525331"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2d74d43f007a069384e89d8416525331">mlx::core::round</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int decimals, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2d74d43f007a069384e89d8416525331"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_round.html">Round</a> a floating point number. <br /></td></tr>
<tr class="separator:ga2d74d43f007a069384e89d8416525331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf18fb7e98bf8cf3b7fbc5e64c988a95b" id="r_gaf18fb7e98bf8cf3b7fbc5e64c988a95b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf18fb7e98bf8cf3b7fbc5e64c988a95b">mlx::core::round</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf18fb7e98bf8cf3b7fbc5e64c988a95b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga753d59f5a9f5f2362865ee83b4dced2a" id="r_ga753d59f5a9f5f2362865ee83b4dced2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga753d59f5a9f5f2362865ee83b4dced2a">mlx::core::matmul</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga753d59f5a9f5f2362865ee83b4dced2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Matrix-matrix multiplication. <br /></td></tr>
<tr class="separator:ga753d59f5a9f5f2362865ee83b4dced2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fcc3ad0677c834c36b72d5b2ebba6d0" id="r_ga8fcc3ad0677c834c36b72d5b2ebba6d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8fcc3ad0677c834c36b72d5b2ebba6d0">mlx::core::gather</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const std::vector&lt; int &gt; &amp;axes, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;slice_sizes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8fcc3ad0677c834c36b72d5b2ebba6d0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_gather.html">Gather</a> array entries given indices and slices. <br /></td></tr>
<tr class="separator:ga8fcc3ad0677c834c36b72d5b2ebba6d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe2bd174c9953ed7f12664f7abaca0e6" id="r_gafe2bd174c9953ed7f12664f7abaca0e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafe2bd174c9953ed7f12664f7abaca0e6">mlx::core::gather</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, int axis, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;slice_sizes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gafe2bd174c9953ed7f12664f7abaca0e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6df16248cb68bc73644cdb1698967c19" id="r_ga6df16248cb68bc73644cdb1698967c19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6df16248cb68bc73644cdb1698967c19">mlx::core::kron</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6df16248cb68bc73644cdb1698967c19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the Kronecker product of two arrays. <br /></td></tr>
<tr class="separator:ga6df16248cb68bc73644cdb1698967c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2fc270882fcfa81eb8bd068cc0d86d7" id="r_gac2fc270882fcfa81eb8bd068cc0d86d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac2fc270882fcfa81eb8bd068cc0d86d7">mlx::core::take</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac2fc270882fcfa81eb8bd068cc0d86d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take array slices at the given indices of the specified axis. <br /></td></tr>
<tr class="separator:gac2fc270882fcfa81eb8bd068cc0d86d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga731af77b7de547a73336f91c829c40b4" id="r_ga731af77b7de547a73336f91c829c40b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga731af77b7de547a73336f91c829c40b4">mlx::core::take</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int index, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga731af77b7de547a73336f91c829c40b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45d0f423a5e030440ef753f36c5aabf1" id="r_ga45d0f423a5e030440ef753f36c5aabf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga45d0f423a5e030440ef753f36c5aabf1">mlx::core::take</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga45d0f423a5e030440ef753f36c5aabf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take array entries at the given indices treating the array as flattened. <br /></td></tr>
<tr class="separator:ga45d0f423a5e030440ef753f36c5aabf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b3c9b4c8ee02dc23cfd7dcd855dbf20" id="r_ga7b3c9b4c8ee02dc23cfd7dcd855dbf20"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7b3c9b4c8ee02dc23cfd7dcd855dbf20">mlx::core::take</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int index, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga7b3c9b4c8ee02dc23cfd7dcd855dbf20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0a81d4f983e296a87302e36d65bfc76" id="r_gae0a81d4f983e296a87302e36d65bfc76"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae0a81d4f983e296a87302e36d65bfc76">mlx::core::take_along_axis</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gae0a81d4f983e296a87302e36d65bfc76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take array entries given indices along the axis. <br /></td></tr>
<tr class="separator:gae0a81d4f983e296a87302e36d65bfc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e0caebf43cd65bd40e4ce97922cd06b" id="r_ga8e0caebf43cd65bd40e4ce97922cd06b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8e0caebf43cd65bd40e4ce97922cd06b">mlx::core::put_along_axis</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;values, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8e0caebf43cd65bd40e4ce97922cd06b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put the values into the array at the given indices along the axis. <br /></td></tr>
<tr class="separator:ga8e0caebf43cd65bd40e4ce97922cd06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3fd98c0d06b84b836f93bddbd7a2a0d" id="r_gab3fd98c0d06b84b836f93bddbd7a2a0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab3fd98c0d06b84b836f93bddbd7a2a0d">mlx::core::scatter_add_axis</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;values, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab3fd98c0d06b84b836f93bddbd7a2a0d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> the values into the array at the given indices along the axis. <br /></td></tr>
<tr class="separator:gab3fd98c0d06b84b836f93bddbd7a2a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad438be8f90bae9d37c6853b8f4225d61" id="r_gad438be8f90bae9d37c6853b8f4225d61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad438be8f90bae9d37c6853b8f4225d61">mlx::core::scatter</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gad438be8f90bae9d37c6853b8f4225d61"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> updates to the given indices. <br /></td></tr>
<tr class="separator:gad438be8f90bae9d37c6853b8f4225d61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2c2b379a3ce959dbe1c4a68f112edfe" id="r_gac2c2b379a3ce959dbe1c4a68f112edfe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac2c2b379a3ce959dbe1c4a68f112edfe">mlx::core::scatter</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gac2c2b379a3ce959dbe1c4a68f112edfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd14c2b5cfebf343fc2d672722f8d174" id="r_gacd14c2b5cfebf343fc2d672722f8d174"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gacd14c2b5cfebf343fc2d672722f8d174">mlx::core::scatter_add</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gacd14c2b5cfebf343fc2d672722f8d174"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and add updates to given indices. <br /></td></tr>
<tr class="separator:gacd14c2b5cfebf343fc2d672722f8d174"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac13318518e5703f1273c5366eb523a5a" id="r_gac13318518e5703f1273c5366eb523a5a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac13318518e5703f1273c5366eb523a5a">mlx::core::scatter_add</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gac13318518e5703f1273c5366eb523a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3708b5bcb61e2c63d213c4ce6ad0ffc0" id="r_ga3708b5bcb61e2c63d213c4ce6ad0ffc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3708b5bcb61e2c63d213c4ce6ad0ffc0">mlx::core::scatter_prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3708b5bcb61e2c63d213c4ce6ad0ffc0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and prod updates to given indices. <br /></td></tr>
<tr class="separator:ga3708b5bcb61e2c63d213c4ce6ad0ffc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf83c53c453faa9083ba27e4b97539339" id="r_gaf83c53c453faa9083ba27e4b97539339"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf83c53c453faa9083ba27e4b97539339">mlx::core::scatter_prod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf83c53c453faa9083ba27e4b97539339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05881a4157cd113c9392d168a79e6673" id="r_ga05881a4157cd113c9392d168a79e6673"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga05881a4157cd113c9392d168a79e6673">mlx::core::scatter_max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga05881a4157cd113c9392d168a79e6673"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and max updates to given linear indices. <br /></td></tr>
<tr class="separator:ga05881a4157cd113c9392d168a79e6673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9adda5f9202bb3486e4d9e1114e3a56f" id="r_ga9adda5f9202bb3486e4d9e1114e3a56f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9adda5f9202bb3486e4d9e1114e3a56f">mlx::core::scatter_max</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga9adda5f9202bb3486e4d9e1114e3a56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ca16b7579dfc899f3f7fd40245ba7c5" id="r_ga0ca16b7579dfc899f3f7fd40245ba7c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0ca16b7579dfc899f3f7fd40245ba7c5">mlx::core::scatter_min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga0ca16b7579dfc899f3f7fd40245ba7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and min updates to given linear indices. <br /></td></tr>
<tr class="separator:ga0ca16b7579dfc899f3f7fd40245ba7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51fa762a997c243ca7a19e1ed3e83199" id="r_ga51fa762a997c243ca7a19e1ed3e83199"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga51fa762a997c243ca7a19e1ed3e83199">mlx::core::scatter_min</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;indices, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;updates, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga51fa762a997c243ca7a19e1ed3e83199"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga297f853b3d90ec8ae81263977ba2ddb1" id="r_ga297f853b3d90ec8ae81263977ba2ddb1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga297f853b3d90ec8ae81263977ba2ddb1">mlx::core::sqrt</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga297f853b3d90ec8ae81263977ba2ddb1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> root the elements of an array. <br /></td></tr>
<tr class="separator:ga297f853b3d90ec8ae81263977ba2ddb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga102f23aa0b0c3d3296a321c694617aa1" id="r_ga102f23aa0b0c3d3296a321c694617aa1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga102f23aa0b0c3d3296a321c694617aa1">mlx::core::rsqrt</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga102f23aa0b0c3d3296a321c694617aa1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> root and reciprocal the elements of an array. <br /></td></tr>
<tr class="separator:ga102f23aa0b0c3d3296a321c694617aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e9bb08b43c8fd0444b7d3c9e09dc1c6" id="r_ga7e9bb08b43c8fd0444b7d3c9e09dc1c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6">mlx::core::softmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, bool precise=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7e9bb08b43c8fd0444b7d3c9e09dc1c6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. <br /></td></tr>
<tr class="separator:ga7e9bb08b43c8fd0444b7d3c9e09dc1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ae3614d07d873892a530d14c3857d0b" id="r_ga1ae3614d07d873892a530d14c3857d0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1ae3614d07d873892a530d14c3857d0b">mlx::core::softmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool precise=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga1ae3614d07d873892a530d14c3857d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. <br /></td></tr>
<tr class="separator:ga1ae3614d07d873892a530d14c3857d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06f570d73716a24303e6de3aaba4457b" id="r_ga06f570d73716a24303e6de3aaba4457b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga06f570d73716a24303e6de3aaba4457b">mlx::core::softmax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool precise=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga06f570d73716a24303e6de3aaba4457b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. <br /></td></tr>
<tr class="separator:ga06f570d73716a24303e6de3aaba4457b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7972058715c26559dff9c9ae2a3ef76d" id="r_ga7972058715c26559dff9c9ae2a3ef76d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7972058715c26559dff9c9ae2a3ef76d">mlx::core::power</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga7972058715c26559dff9c9ae2a3ef76d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raise elements of a to the power of b element-wise. <br /></td></tr>
<tr class="separator:ga7972058715c26559dff9c9ae2a3ef76d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddc825a5c173e195ab0fda83ad630420" id="r_gaddc825a5c173e195ab0fda83ad630420"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaddc825a5c173e195ab0fda83ad630420">mlx::core::cumsum</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool reverse=false, bool inclusive=true, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaddc825a5c173e195ab0fda83ad630420"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cumulative sum of an array. <br /></td></tr>
<tr class="separator:gaddc825a5c173e195ab0fda83ad630420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d71dfbc14ef3ed564b0c5ee26af680f" id="r_ga0d71dfbc14ef3ed564b0c5ee26af680f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga0d71dfbc14ef3ed564b0c5ee26af680f">mlx::core::cumprod</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool reverse=false, bool inclusive=true, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga0d71dfbc14ef3ed564b0c5ee26af680f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cumulative product of an array. <br /></td></tr>
<tr class="separator:ga0d71dfbc14ef3ed564b0c5ee26af680f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee37cac8476e8f8d666bcded5bc59143" id="r_gaee37cac8476e8f8d666bcded5bc59143"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaee37cac8476e8f8d666bcded5bc59143">mlx::core::cummax</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool reverse=false, bool inclusive=true, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaee37cac8476e8f8d666bcded5bc59143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cumulative max of an array. <br /></td></tr>
<tr class="separator:gaee37cac8476e8f8d666bcded5bc59143"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19c1bf6929fe8d66b9cd408946aea6a8" id="r_ga19c1bf6929fe8d66b9cd408946aea6a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga19c1bf6929fe8d66b9cd408946aea6a8">mlx::core::cummin</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int axis, bool reverse=false, bool inclusive=true, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga19c1bf6929fe8d66b9cd408946aea6a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cumulative min of an array. <br /></td></tr>
<tr class="separator:ga19c1bf6929fe8d66b9cd408946aea6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2236e5dfc7e52e28abf6c21675d0a51e" id="r_ga2236e5dfc7e52e28abf6c21675d0a51e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2236e5dfc7e52e28abf6c21675d0a51e">mlx::core::conv_general</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> input, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> weight, std::vector&lt; int &gt; stride={}, std::vector&lt; int &gt; padding_lo={}, std::vector&lt; int &gt; padding_hi={}, std::vector&lt; int &gt; kernel_dilation={}, std::vector&lt; int &gt; input_dilation={}, int groups=1, bool flip=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga2236e5dfc7e52e28abf6c21675d0a51e"><td class="mdescLeft">&#160;</td><td class="mdescRight">General convolution with a filter. <br /></td></tr>
<tr class="separator:ga2236e5dfc7e52e28abf6c21675d0a51e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab59f89942cd1efaadffe9e8762e3c99d" id="r_gab59f89942cd1efaadffe9e8762e3c99d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab59f89942cd1efaadffe9e8762e3c99d">mlx::core::conv_general</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, std::vector&lt; int &gt; stride={}, std::vector&lt; int &gt; padding={}, std::vector&lt; int &gt; kernel_dilation={}, std::vector&lt; int &gt; input_dilation={}, int groups=1, bool flip=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab59f89942cd1efaadffe9e8762e3c99d"><td class="mdescLeft">&#160;</td><td class="mdescRight">General convolution with a filter. <br /></td></tr>
<tr class="separator:gab59f89942cd1efaadffe9e8762e3c99d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30d47e08093c03a3676f235f9f559411" id="r_ga30d47e08093c03a3676f235f9f559411"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga30d47e08093c03a3676f235f9f559411">mlx::core::conv1d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, int stride=1, int padding=0, int dilation=1, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga30d47e08093c03a3676f235f9f559411"><td class="mdescLeft">&#160;</td><td class="mdescRight">1D convolution with a filter <br /></td></tr>
<tr class="separator:ga30d47e08093c03a3676f235f9f559411"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73b02833229678786e7f302d458d5a83" id="r_ga73b02833229678786e7f302d458d5a83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga73b02833229678786e7f302d458d5a83">mlx::core::conv2d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, const std::pair&lt; int, int &gt; &amp;stride={1, 1}, const std::pair&lt; int, int &gt; &amp;padding={0, 0}, const std::pair&lt; int, int &gt; &amp;dilation={1, 1}, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga73b02833229678786e7f302d458d5a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">2D convolution with a filter <br /></td></tr>
<tr class="separator:ga73b02833229678786e7f302d458d5a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e9907d2f14dc4803e4306b3dbc4b3ca" id="r_ga6e9907d2f14dc4803e4306b3dbc4b3ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6e9907d2f14dc4803e4306b3dbc4b3ca">mlx::core::conv3d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, const std::tuple&lt; int, int, int &gt; &amp;stride={1, 1, 1}, const std::tuple&lt; int, int, int &gt; &amp;padding={0, 0, 0}, const std::tuple&lt; int, int, int &gt; &amp;dilation={1, 1, 1}, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6e9907d2f14dc4803e4306b3dbc4b3ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">3D convolution with a filter <br /></td></tr>
<tr class="separator:ga6e9907d2f14dc4803e4306b3dbc4b3ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa30bf1adcd78d1c2595d07b215731714" id="r_gaa30bf1adcd78d1c2595d07b215731714"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa30bf1adcd78d1c2595d07b215731714">mlx::core::conv_transpose1d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, int stride=1, int padding=0, int dilation=1, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaa30bf1adcd78d1c2595d07b215731714"><td class="mdescLeft">&#160;</td><td class="mdescRight">1D transposed convolution with a filter <br /></td></tr>
<tr class="separator:gaa30bf1adcd78d1c2595d07b215731714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebb59971cb9bc45005dc1d398e4f0a3d" id="r_gaebb59971cb9bc45005dc1d398e4f0a3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaebb59971cb9bc45005dc1d398e4f0a3d">mlx::core::conv_transpose2d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, const std::pair&lt; int, int &gt; &amp;stride={1, 1}, const std::pair&lt; int, int &gt; &amp;padding={0, 0}, const std::pair&lt; int, int &gt; &amp;dilation={1, 1}, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaebb59971cb9bc45005dc1d398e4f0a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2D transposed convolution with a filter <br /></td></tr>
<tr class="separator:gaebb59971cb9bc45005dc1d398e4f0a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8db814da631d9cd32a8d6563bf4ac530" id="r_ga8db814da631d9cd32a8d6563bf4ac530"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8db814da631d9cd32a8d6563bf4ac530">mlx::core::conv_transpose3d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;input, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;weight, const std::tuple&lt; int, int, int &gt; &amp;stride={1, 1, 1}, const std::tuple&lt; int, int, int &gt; &amp;padding={0, 0, 0}, const std::tuple&lt; int, int, int &gt; &amp;dilation={1, 1, 1}, int groups=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8db814da631d9cd32a8d6563bf4ac530"><td class="mdescLeft">&#160;</td><td class="mdescRight">3D transposed convolution with a filter <br /></td></tr>
<tr class="separator:ga8db814da631d9cd32a8d6563bf4ac530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfa4208fb1f9b1cdd0abc563b19175af" id="r_gabfa4208fb1f9b1cdd0abc563b19175af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabfa4208fb1f9b1cdd0abc563b19175af">mlx::core::quantized_matmul</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> x, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> w, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> scales, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> biases, bool <a class="el" href="#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>=true, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gabfa4208fb1f9b1cdd0abc563b19175af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quantized matmul multiplies x with a quantized matrix w. <br /></td></tr>
<tr class="separator:gabfa4208fb1f9b1cdd0abc563b19175af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab43cc28690da7cdd43b43065adbd31da" id="r_gab43cc28690da7cdd43b43065adbd31da"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gab43cc28690da7cdd43b43065adbd31da">mlx::core::quantize</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gab43cc28690da7cdd43b43065adbd31da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quantize a matrix along its last axis. <br /></td></tr>
<tr class="separator:gab43cc28690da7cdd43b43065adbd31da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabff758a5c1ce32ad7e8b78aba0164077" id="r_gabff758a5c1ce32ad7e8b78aba0164077"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabff758a5c1ce32ad7e8b78aba0164077">mlx::core::dequantize</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;scales, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;biases, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gabff758a5c1ce32ad7e8b78aba0164077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dequantize a matrix produced by <a class="el" href="#gab43cc28690da7cdd43b43065adbd31da" title="Quantize a matrix along its last axis.">quantize()</a> <br /></td></tr>
<tr class="separator:gabff758a5c1ce32ad7e8b78aba0164077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga368a0dc0e5dfb76922e7aa55a95f12f0" id="r_ga368a0dc0e5dfb76922e7aa55a95f12f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga368a0dc0e5dfb76922e7aa55a95f12f0">mlx::core::gather_qmm</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;x, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;w, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;scales, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;biases, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; lhs_indices=std::nullopt, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; rhs_indices=std::nullopt, bool <a class="el" href="#gac1869f3b7094869b44fe7ac4ce58638b">transpose</a>=true, int group_size=64, int bits=4, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga368a0dc0e5dfb76922e7aa55a95f12f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute matrix products with matrix-level gather. <br /></td></tr>
<tr class="separator:ga368a0dc0e5dfb76922e7aa55a95f12f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5c9735f4690327e1500e04e728fae70" id="r_gaf5c9735f4690327e1500e04e728fae70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf5c9735f4690327e1500e04e728fae70">mlx::core::tensordot</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, const int axis=2, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaf5c9735f4690327e1500e04e728fae70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a contraction of a and b over multiple dimensions. <br /></td></tr>
<tr class="separator:gaf5c9735f4690327e1500e04e728fae70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7fe00b566f89d607639c1a497cabbc6" id="r_gad7fe00b566f89d607639c1a497cabbc6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad7fe00b566f89d607639c1a497cabbc6">mlx::core::tensordot</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, const std::vector&lt; int &gt; &amp;axes_a, const std::vector&lt; int &gt; &amp;axes_b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gad7fe00b566f89d607639c1a497cabbc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga866af24e10db2797e1c5a5986dbf6c0d" id="r_ga866af24e10db2797e1c5a5986dbf6c0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga866af24e10db2797e1c5a5986dbf6c0d">mlx::core::outer</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga866af24e10db2797e1c5a5986dbf6c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the outer product of two vectors. <br /></td></tr>
<tr class="separator:ga866af24e10db2797e1c5a5986dbf6c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga654fec16a9746b390916697a2ab2546e" id="r_ga654fec16a9746b390916697a2ab2546e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga654fec16a9746b390916697a2ab2546e">mlx::core::inner</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga654fec16a9746b390916697a2ab2546e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the inner product of two vectors. <br /></td></tr>
<tr class="separator:ga654fec16a9746b390916697a2ab2546e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82a53e083205a965387b3c3e2463244a" id="r_ga82a53e083205a965387b3c3e2463244a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga82a53e083205a965387b3c3e2463244a">mlx::core::addmm</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> c, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> b, const float &amp;alpha=1.f, const float &amp;beta=1.f, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga82a53e083205a965387b3c3e2463244a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute D = beta * C + alpha * (A @ B) <br /></td></tr>
<tr class="separator:ga82a53e083205a965387b3c3e2463244a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b76c8ea46b19e6866af155fa5910be6" id="r_ga6b76c8ea46b19e6866af155fa5910be6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6b76c8ea46b19e6866af155fa5910be6">mlx::core::block_masked_mm</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> b, int block_size, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mask_out=std::nullopt, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mask_lhs=std::nullopt, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mask_rhs=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6b76c8ea46b19e6866af155fa5910be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute matrix product with block masking. <br /></td></tr>
<tr class="separator:ga6b76c8ea46b19e6866af155fa5910be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d50480266d258cac40ff51bcb0fc6a7" id="r_ga8d50480266d258cac40ff51bcb0fc6a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8d50480266d258cac40ff51bcb0fc6a7">mlx::core::gather_mm</a> (<a class="el" href="classmlx_1_1core_1_1array.html">array</a> a, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> b, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; lhs_indices=std::nullopt, std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; rhs_indices=std::nullopt, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8d50480266d258cac40ff51bcb0fc6a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute matrix product with matrix-level gather. <br /></td></tr>
<tr class="separator:ga8d50480266d258cac40ff51bcb0fc6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9236b085a88ead3128ed8079d009cac6" id="r_ga9236b085a88ead3128ed8079d009cac6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9236b085a88ead3128ed8079d009cac6">mlx::core::diagonal</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int offset=0, int axis1=0, int axis2=1, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga9236b085a88ead3128ed8079d009cac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract a diagonal or construct a diagonal array. <br /></td></tr>
<tr class="separator:ga9236b085a88ead3128ed8079d009cac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11af511875640e1fa88e0ca87e199344" id="r_ga11af511875640e1fa88e0ca87e199344"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga11af511875640e1fa88e0ca87e199344">mlx::core::diag</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int k=0, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga11af511875640e1fa88e0ca87e199344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract diagonal from a 2d array or create a diagonal matrix. <br /></td></tr>
<tr class="separator:ga11af511875640e1fa88e0ca87e199344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf786129c7660ed8d5acb5499bc6fefd" id="r_gabf786129c7660ed8d5acb5499bc6fefd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabf786129c7660ed8d5acb5499bc6fefd">mlx::core::trace</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int offset, int axis1, int axis2, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gabf786129c7660ed8d5acb5499bc6fefd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the sum along a specified diagonal in the given array. <br /></td></tr>
<tr class="separator:gabf786129c7660ed8d5acb5499bc6fefd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ed43c2dbf7d6cbddbaa2fd682deaafd" id="r_ga5ed43c2dbf7d6cbddbaa2fd682deaafd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5ed43c2dbf7d6cbddbaa2fd682deaafd">mlx::core::trace</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int offset, int axis1, int axis2, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga5ed43c2dbf7d6cbddbaa2fd682deaafd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf25c00108feaafaa6350a4434cb0062e" id="r_gaf25c00108feaafaa6350a4434cb0062e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf25c00108feaafaa6350a4434cb0062e">mlx::core::trace</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf25c00108feaafaa6350a4434cb0062e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4a51a68fbe1725436b026d2fbb95759" id="r_gac4a51a68fbe1725436b026d2fbb95759"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac4a51a68fbe1725436b026d2fbb95759">mlx::core::depends</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;dependencies)</td></tr>
<tr class="memdesc:gac4a51a68fbe1725436b026d2fbb95759"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the identity function but allows injecting dependencies to other arrays. <br /></td></tr>
<tr class="separator:gac4a51a68fbe1725436b026d2fbb95759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba4d25e7a2bf87ba4feb7837ec7fa396" id="r_gaba4d25e7a2bf87ba4feb7837ec7fa396"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaba4d25e7a2bf87ba4feb7837ec7fa396">mlx::core::atleast_1d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaba4d25e7a2bf87ba4feb7837ec7fa396"><td class="mdescLeft">&#160;</td><td class="mdescRight">convert an array to an atleast ndim array <br /></td></tr>
<tr class="separator:gaba4d25e7a2bf87ba4feb7837ec7fa396"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08ca172ce80157c916c89dd0b45b95c5" id="r_ga08ca172ce80157c916c89dd0b45b95c5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga08ca172ce80157c916c89dd0b45b95c5">mlx::core::atleast_1d</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga08ca172ce80157c916c89dd0b45b95c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeeb7f5bb88aa32a3ac2be1f39c5f8087" id="r_gaeeb7f5bb88aa32a3ac2be1f39c5f8087"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaeeb7f5bb88aa32a3ac2be1f39c5f8087">mlx::core::atleast_2d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaeeb7f5bb88aa32a3ac2be1f39c5f8087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9950299a80c2562f13448758f856d1f5" id="r_ga9950299a80c2562f13448758f856d1f5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9950299a80c2562f13448758f856d1f5">mlx::core::atleast_2d</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga9950299a80c2562f13448758f856d1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4afd919601e67782ff964465919956a0" id="r_ga4afd919601e67782ff964465919956a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4afd919601e67782ff964465919956a0">mlx::core::atleast_3d</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga4afd919601e67782ff964465919956a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffdf742ad79440a60dda40062a8074fe" id="r_gaffdf742ad79440a60dda40062a8074fe"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaffdf742ad79440a60dda40062a8074fe">mlx::core::atleast_3d</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaffdf742ad79440a60dda40062a8074fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d5f5f72362488b956cdc4615ef6c636" id="r_ga6d5f5f72362488b956cdc4615ef6c636"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga6d5f5f72362488b956cdc4615ef6c636">mlx::core::number_of_elements</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, std::vector&lt; int &gt; axes, bool inverted, <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> dtype=<a class="el" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a>, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga6d5f5f72362488b956cdc4615ef6c636"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the number of elements along some axes as a scalar array. <br /></td></tr>
<tr class="separator:ga6d5f5f72362488b956cdc4615ef6c636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b596906bf8cdc8d97ed6ddc9aeb4c23" id="r_ga5b596906bf8cdc8d97ed6ddc9aeb4c23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5b596906bf8cdc8d97ed6ddc9aeb4c23">mlx::core::conjugate</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga5b596906bf8cdc8d97ed6ddc9aeb4c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga752fd2707dabb05d0308ba3d55346ada" id="r_ga752fd2707dabb05d0308ba3d55346ada"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga752fd2707dabb05d0308ba3d55346ada">mlx::core::bitwise_and</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga752fd2707dabb05d0308ba3d55346ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise and. <br /></td></tr>
<tr class="separator:ga752fd2707dabb05d0308ba3d55346ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0d232de4cbfffda1e2c838f8afdf6ff" id="r_gaf0d232de4cbfffda1e2c838f8afdf6ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf0d232de4cbfffda1e2c838f8afdf6ff">mlx::core::operator&amp;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gaf0d232de4cbfffda1e2c838f8afdf6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8af4f22c08c11c4ffab7e3d45e0f3cd6" id="r_ga8af4f22c08c11c4ffab7e3d45e0f3cd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8af4f22c08c11c4ffab7e3d45e0f3cd6">mlx::core::bitwise_or</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8af4f22c08c11c4ffab7e3d45e0f3cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise inclusive or. <br /></td></tr>
<tr class="separator:ga8af4f22c08c11c4ffab7e3d45e0f3cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52392a2a98f09a80da8d338c4908bd02" id="r_ga52392a2a98f09a80da8d338c4908bd02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga52392a2a98f09a80da8d338c4908bd02">mlx::core::operator|</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga52392a2a98f09a80da8d338c4908bd02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3188638fba3a60e264baf69956a1e08b" id="r_ga3188638fba3a60e264baf69956a1e08b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3188638fba3a60e264baf69956a1e08b">mlx::core::bitwise_xor</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga3188638fba3a60e264baf69956a1e08b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise exclusive or. <br /></td></tr>
<tr class="separator:ga3188638fba3a60e264baf69956a1e08b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3a6fe18694e84b3d63458e9553ac181" id="r_gac3a6fe18694e84b3d63458e9553ac181"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac3a6fe18694e84b3d63458e9553ac181">mlx::core::operator^</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gac3a6fe18694e84b3d63458e9553ac181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89682bf78491761e062d4ee7bef0c829" id="r_ga89682bf78491761e062d4ee7bef0c829"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga89682bf78491761e062d4ee7bef0c829">mlx::core::left_shift</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga89682bf78491761e062d4ee7bef0c829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift bits to the left. <br /></td></tr>
<tr class="separator:ga89682bf78491761e062d4ee7bef0c829"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad656c30f9fd7d9467e405657b325aa7e" id="r_gad656c30f9fd7d9467e405657b325aa7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gad656c30f9fd7d9467e405657b325aa7e">mlx::core::operator&lt;&lt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:gad656c30f9fd7d9467e405657b325aa7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa376ad57d38ba87378f0272dc379b23" id="r_gafa376ad57d38ba87378f0272dc379b23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gafa376ad57d38ba87378f0272dc379b23">mlx::core::right_shift</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gafa376ad57d38ba87378f0272dc379b23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift bits to the right. <br /></td></tr>
<tr class="separator:gafa376ad57d38ba87378f0272dc379b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga498b61f7e8f056ae00297fa0dc17303a" id="r_ga498b61f7e8f056ae00297fa0dc17303a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga498b61f7e8f056ae00297fa0dc17303a">mlx::core::operator&gt;&gt;</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;b)</td></tr>
<tr class="separator:ga498b61f7e8f056ae00297fa0dc17303a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3602aa91b7b124a0b41ec1b2137a1b02" id="r_ga3602aa91b7b124a0b41ec1b2137a1b02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3602aa91b7b124a0b41ec1b2137a1b02">mlx::core::view</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;dtype, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga3602aa91b7b124a0b41ec1b2137a1b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac40e48c69f9c715a767912c30836e75c" id="r_gac40e48c69f9c715a767912c30836e75c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac40e48c69f9c715a767912c30836e75c">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int shift, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gac40e48c69f9c715a767912c30836e75c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Roll elements along an axis and introduce them on the other side. <br /></td></tr>
<tr class="separator:gac40e48c69f9c715a767912c30836e75c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5011d1a5735c64e5b91afa56c7e2cc02" id="r_ga5011d1a5735c64e5b91afa56c7e2cc02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5011d1a5735c64e5b91afa56c7e2cc02">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shift, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga5011d1a5735c64e5b91afa56c7e2cc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8694ec137165752cb6d8a36a6b7c3436" id="r_ga8694ec137165752cb6d8a36a6b7c3436"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8694ec137165752cb6d8a36a6b7c3436">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int shift, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga8694ec137165752cb6d8a36a6b7c3436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga665f502ecc96f1f4467556b784abf9ae" id="r_ga665f502ecc96f1f4467556b784abf9ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga665f502ecc96f1f4467556b784abf9ae">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int shift, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga665f502ecc96f1f4467556b784abf9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79137f90bc44ac9e35f408c012701df9" id="r_ga79137f90bc44ac9e35f408c012701df9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga79137f90bc44ac9e35f408c012701df9">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shift, int axis, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga79137f90bc44ac9e35f408c012701df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d76930fb567a7d459ff96fb851abe36" id="r_ga9d76930fb567a7d459ff96fb851abe36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9d76930fb567a7d459ff96fb851abe36">mlx::core::roll</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;shift, const std::vector&lt; int &gt; &amp;axes, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga9d76930fb567a7d459ff96fb851abe36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8913cabeb9fb193ba687aaeb2087764" id="r_gaf8913cabeb9fb193ba687aaeb2087764"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf8913cabeb9fb193ba687aaeb2087764">mlx::core::real</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaf8913cabeb9fb193ba687aaeb2087764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ff592a64d528f0cf4f3d098465da029" id="r_ga7ff592a64d528f0cf4f3d098465da029"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7ff592a64d528f0cf4f3d098465da029">mlx::core::imag</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga7ff592a64d528f0cf4f3d098465da029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ab10aa6c41416d739791164a52b25d5" id="r_ga8ab10aa6c41416d739791164a52b25d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8ab10aa6c41416d739791164a52b25d5">mlx::core::contiguous</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, bool allow_col_major=false, <a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga8ab10aa6c41416d739791164a52b25d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga5528e80f5e8bad71e106a0cf9edd8920" name="ga5528e80f5e8bad71e106a0cf9edd8920"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5528e80f5e8bad71e106a0cf9edd8920">&#9670;&#160;</a></span>abs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::abs </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Absolute value of elements in an array. </p>
</div>
</div>
<a id="ga2d32d67cfd76785a72c43d89b94dc7d7" name="ga2d32d67cfd76785a72c43d89b94dc7d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d32d67cfd76785a72c43d89b94dc7d7">&#9670;&#160;</a></span>add()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> two arrays. </p>
</div>
</div>
<a id="ga82a53e083205a965387b3c3e2463244a" name="ga82a53e083205a965387b3c3e2463244a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga82a53e083205a965387b3c3e2463244a">&#9670;&#160;</a></span>addmm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::addmm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>c</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float &amp;</td> <td class="paramname"><span class="paramname"><em>alpha</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1.f</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float &amp;</td> <td class="paramname"><span class="paramname"><em>beta</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1.f</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute D = beta * C + alpha * (A @ B) </p>
</div>
</div>
<a id="ga3b1b90ef1275ca17655b6d7f25d3ee68" name="ga3b1b90ef1275ca17655b6d7f25d3ee68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b1b90ef1275ca17655b6d7f25d3ee68">&#9670;&#160;</a></span>all() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::all </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>True if all elements in the array are true (or non-zero). </p>
</div>
</div>
<a id="gac0919c6ba53aea35a7683dea7e9a9a59" name="gac0919c6ba53aea35a7683dea7e9a9a59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac0919c6ba53aea35a7683dea7e9a9a59">&#9670;&#160;</a></span>all() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::all </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reduces the input along the given axes. </p>
<p>An output value is true if all the corresponding inputs are true. </p>
</div>
</div>
<a id="gae2d5fcc5b62d673cca76c08b7b4afbbc" name="gae2d5fcc5b62d673cca76c08b7b4afbbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae2d5fcc5b62d673cca76c08b7b4afbbc">&#9670;&#160;</a></span>all() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::all </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reduces the input along the given axis. </p>
<p>An output value is true if all the corresponding inputs are true. </p>
</div>
</div>
<a id="ga3689e12e8f42dadb4cbe2b07dc4099f4" name="ga3689e12e8f42dadb4cbe2b07dc4099f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3689e12e8f42dadb4cbe2b07dc4099f4">&#9670;&#160;</a></span>all() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::all </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf0cd4257de7542daf9faf5e605e31020" name="gaf0cd4257de7542daf9faf5e605e31020"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0cd4257de7542daf9faf5e605e31020">&#9670;&#160;</a></span>allclose()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::allclose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>rtol</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1e-5</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>atol</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1e-8</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>equal_nan</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>True if the two arrays are equal within the specified tolerance. </p>
</div>
</div>
<a id="ga8598dd718fb05cb28535e250372d4e6f" name="ga8598dd718fb05cb28535e250372d4e6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8598dd718fb05cb28535e250372d4e6f">&#9670;&#160;</a></span>any() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::any </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>True if any elements in the array are true (or non-zero). </p>
</div>
</div>
<a id="gaf240618fc8b06debf5f56e97e84f18ef" name="gaf240618fc8b06debf5f56e97e84f18ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf240618fc8b06debf5f56e97e84f18ef">&#9670;&#160;</a></span>any() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::any </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reduces the input along the given axes. </p>
<p>An output value is true if any of the corresponding inputs are true. </p>
</div>
</div>
<a id="gab1d56277d468a55227f4dad6bc2fc1ce" name="gab1d56277d468a55227f4dad6bc2fc1ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1d56277d468a55227f4dad6bc2fc1ce">&#9670;&#160;</a></span>any() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::any </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reduces the input along the given axis. </p>
<p>An output value is true if any of the corresponding inputs are true. </p>
</div>
</div>
<a id="gad37df97f253a963bece124198dbaf9ba" name="gad37df97f253a963bece124198dbaf9ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad37df97f253a963bece124198dbaf9ba">&#9670;&#160;</a></span>any() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::any </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7ca088b8090b9f84f2e08345cf3f835a" name="ga7ca088b8090b9f84f2e08345cf3f835a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7ca088b8090b9f84f2e08345cf3f835a">&#9670;&#160;</a></span>arange() <span class="overload">[1/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>step</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>A 1D array of numbers starting at <code>start</code> (optional), stopping at stop, stepping by <code>step</code> (optional). </p>
</div>
</div>
<a id="ga4c36b841dc5cba391dad029be5a0ad98" name="ga4c36b841dc5cba391dad029be5a0ad98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c36b841dc5cba391dad029be5a0ad98">&#9670;&#160;</a></span>arange() <span class="overload">[2/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>step</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8d7cf9eb15e2daf1469058907e8abc85" name="ga8d7cf9eb15e2daf1469058907e8abc85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d7cf9eb15e2daf1469058907e8abc85">&#9670;&#160;</a></span>arange() <span class="overload">[3/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga74566a14e69ba6a25f5a35e7ade5c282" name="ga74566a14e69ba6a25f5a35e7ade5c282"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga74566a14e69ba6a25f5a35e7ade5c282">&#9670;&#160;</a></span>arange() <span class="overload">[4/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga345aa27af3dae3646b8b4b1068e89a3e" name="ga345aa27af3dae3646b8b4b1068e89a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga345aa27af3dae3646b8b4b1068e89a3e">&#9670;&#160;</a></span>arange() <span class="overload">[5/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaae179075d0fe23f4bd53fdf8c41f4c70" name="gaae179075d0fe23f4bd53fdf8c41f4c70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae179075d0fe23f4bd53fdf8c41f4c70">&#9670;&#160;</a></span>arange() <span class="overload">[6/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6b945f513077c2978afc1a952c884860" name="ga6b945f513077c2978afc1a952c884860"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b945f513077c2978afc1a952c884860">&#9670;&#160;</a></span>arange() <span class="overload">[7/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>step</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga1c39fcc6eaa1c1867735c7f849d708d6" name="ga1c39fcc6eaa1c1867735c7f849d708d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1c39fcc6eaa1c1867735c7f849d708d6">&#9670;&#160;</a></span>arange() <span class="overload">[8/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gafe6e4580452c873cac294f16129e633f" name="gafe6e4580452c873cac294f16129e633f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafe6e4580452c873cac294f16129e633f">&#9670;&#160;</a></span>arange() <span class="overload">[9/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arange </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga08bec7cb10c84466487b507fc5bf9776" name="ga08bec7cb10c84466487b507fc5bf9776"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08bec7cb10c84466487b507fc5bf9776">&#9670;&#160;</a></span>arccos()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arccos </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Arc Cosine of the elements of an array. </p>
</div>
</div>
<a id="gaafafcfcebdf7248679c8543d0c0497e5" name="gaafafcfcebdf7248679c8543d0c0497e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaafafcfcebdf7248679c8543d0c0497e5">&#9670;&#160;</a></span>arccosh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arccosh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Cosine of the elements of an array. </p>
</div>
</div>
<a id="ga8770e8c8f23f13343911f4c9d6e1c619" name="ga8770e8c8f23f13343911f4c9d6e1c619"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8770e8c8f23f13343911f4c9d6e1c619">&#9670;&#160;</a></span>arcsin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arcsin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Arc Sine of the elements of an array. </p>
</div>
</div>
<a id="gac62e2cedc49ef2c90dd8584000317450" name="gac62e2cedc49ef2c90dd8584000317450"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac62e2cedc49ef2c90dd8584000317450">&#9670;&#160;</a></span>arcsinh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arcsinh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Sine of the elements of an array. </p>
</div>
</div>
<a id="gaa041f3f070e68f4946db07516b7d092e" name="gaa041f3f070e68f4946db07516b7d092e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa041f3f070e68f4946db07516b7d092e">&#9670;&#160;</a></span>arctan()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arctan </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Arc Tangent of the elements of an array. </p>
</div>
</div>
<a id="ga6caba9c92b5989123501f909cc7da354" name="ga6caba9c92b5989123501f909cc7da354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6caba9c92b5989123501f909cc7da354">&#9670;&#160;</a></span>arctan2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arctan2 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> tangent of the ratio of two arrays. </p>
</div>
</div>
<a id="gab46a35925a04c5a9d2ec7898ee55358e" name="gab46a35925a04c5a9d2ec7898ee55358e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab46a35925a04c5a9d2ec7898ee55358e">&#9670;&#160;</a></span>arctanh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::arctanh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_inverse.html">Inverse</a> Hyperbolic Tangent of the elements of an array. </p>
</div>
</div>
<a id="gae60b0b5339b9c50b9970260faf613e83" name="gae60b0b5339b9c50b9970260faf613e83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae60b0b5339b9c50b9970260faf613e83">&#9670;&#160;</a></span>argmax() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the maximum value in the array. </p>
</div>
</div>
<a id="ga2efa67466510fc26ab9ea8dff30f2ba5" name="ga2efa67466510fc26ab9ea8dff30f2ba5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2efa67466510fc26ab9ea8dff30f2ba5">&#9670;&#160;</a></span>argmax() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the indices of the maximum values along a given axis. </p>
</div>
</div>
<a id="gae6f6c5a840320b336fdc9687e0ed56c8" name="gae6f6c5a840320b336fdc9687e0ed56c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae6f6c5a840320b336fdc9687e0ed56c8">&#9670;&#160;</a></span>argmax() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7c3bd5ef430a71dfd298e626741e3c71" name="ga7c3bd5ef430a71dfd298e626741e3c71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c3bd5ef430a71dfd298e626741e3c71">&#9670;&#160;</a></span>argmin() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the minimum value in the array. </p>
</div>
</div>
<a id="gaf66dc3c77b88e4009e0678eda41eca81" name="gaf66dc3c77b88e4009e0678eda41eca81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf66dc3c77b88e4009e0678eda41eca81">&#9670;&#160;</a></span>argmin() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the indices of the minimum values along a given axis. </p>
</div>
</div>
<a id="ga6bc577c5ab10cd9c848ba81321595070" name="ga6bc577c5ab10cd9c848ba81321595070"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6bc577c5ab10cd9c848ba81321595070">&#9670;&#160;</a></span>argmin() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argmin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7b15c654c7463def57857a0e239989a3" name="ga7b15c654c7463def57857a0e239989a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b15c654c7463def57857a0e239989a3">&#9670;&#160;</a></span>argpartition() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argpartition </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>kth</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns indices that partition the array along a given axis such that the smaller kth elements are first. </p>
</div>
</div>
<a id="gaf301c49c10fa9b95a9e8dc52ead1a8dd" name="gaf301c49c10fa9b95a9e8dc52ead1a8dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf301c49c10fa9b95a9e8dc52ead1a8dd">&#9670;&#160;</a></span>argpartition() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argpartition </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>kth</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns indices that partition the flattened array such that the smaller kth elements are first. </p>
</div>
</div>
<a id="ga7878e0daa5a75f44e57b5fe948fa3ef6" name="ga7878e0daa5a75f44e57b5fe948fa3ef6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7878e0daa5a75f44e57b5fe948fa3ef6">&#9670;&#160;</a></span>argsort() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argsort </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns indices that sort the array along a given axis. </p>
</div>
</div>
<a id="ga8df3b2703bf671457422894dd870cdc5" name="ga8df3b2703bf671457422894dd870cdc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8df3b2703bf671457422894dd870cdc5">&#9670;&#160;</a></span>argsort() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::argsort </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns indices that sort the flattened array. </p>
</div>
</div>
<a id="ga8f3059336ee0c87207b1f8c6ab312645" name="ga8f3059336ee0c87207b1f8c6ab312645"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f3059336ee0c87207b1f8c6ab312645">&#9670;&#160;</a></span>array_equal() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::array_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>equal_nan</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>True if two arrays have the same shape and elements. </p>
</div>
</div>
<a id="gaf79cf0271ca0105d7b14295a90d0ed14" name="gaf79cf0271ca0105d7b14295a90d0ed14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf79cf0271ca0105d7b14295a90d0ed14">&#9670;&#160;</a></span>array_equal() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::array_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6085b03f2662ef2a61de523fd609f3bf" name="ga6085b03f2662ef2a61de523fd609f3bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6085b03f2662ef2a61de523fd609f3bf">&#9670;&#160;</a></span>as_strided()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::as_strided </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a></td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>offset</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a view of an array with the given shape and strides. </p>
</div>
</div>
<a id="ga0e58c24fc5668e5a521e5b45e8370a62" name="ga0e58c24fc5668e5a521e5b45e8370a62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e58c24fc5668e5a521e5b45e8370a62">&#9670;&#160;</a></span>astype()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::astype </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert an array to the given data type. </p>
</div>
</div>
<a id="gaba4d25e7a2bf87ba4feb7837ec7fa396" name="gaba4d25e7a2bf87ba4feb7837ec7fa396"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba4d25e7a2bf87ba4feb7837ec7fa396">&#9670;&#160;</a></span>atleast_1d() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::atleast_1d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>convert an array to an atleast ndim array </p>
</div>
</div>
<a id="ga08ca172ce80157c916c89dd0b45b95c5" name="ga08ca172ce80157c916c89dd0b45b95c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08ca172ce80157c916c89dd0b45b95c5">&#9670;&#160;</a></span>atleast_1d() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::atleast_1d </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaeeb7f5bb88aa32a3ac2be1f39c5f8087" name="gaeeb7f5bb88aa32a3ac2be1f39c5f8087"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeeb7f5bb88aa32a3ac2be1f39c5f8087">&#9670;&#160;</a></span>atleast_2d() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::atleast_2d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga9950299a80c2562f13448758f856d1f5" name="ga9950299a80c2562f13448758f856d1f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9950299a80c2562f13448758f856d1f5">&#9670;&#160;</a></span>atleast_2d() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::atleast_2d </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga4afd919601e67782ff964465919956a0" name="ga4afd919601e67782ff964465919956a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4afd919601e67782ff964465919956a0">&#9670;&#160;</a></span>atleast_3d() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::atleast_3d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaffdf742ad79440a60dda40062a8074fe" name="gaffdf742ad79440a60dda40062a8074fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaffdf742ad79440a60dda40062a8074fe">&#9670;&#160;</a></span>atleast_3d() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::atleast_3d </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga752fd2707dabb05d0308ba3d55346ada" name="ga752fd2707dabb05d0308ba3d55346ada"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga752fd2707dabb05d0308ba3d55346ada">&#9670;&#160;</a></span>bitwise_and()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::bitwise_and </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Bitwise and. </p>
</div>
</div>
<a id="ga8af4f22c08c11c4ffab7e3d45e0f3cd6" name="ga8af4f22c08c11c4ffab7e3d45e0f3cd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8af4f22c08c11c4ffab7e3d45e0f3cd6">&#9670;&#160;</a></span>bitwise_or()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::bitwise_or </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Bitwise inclusive or. </p>
</div>
</div>
<a id="ga3188638fba3a60e264baf69956a1e08b" name="ga3188638fba3a60e264baf69956a1e08b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3188638fba3a60e264baf69956a1e08b">&#9670;&#160;</a></span>bitwise_xor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::bitwise_xor </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Bitwise exclusive or. </p>
</div>
</div>
<a id="ga6b76c8ea46b19e6866af155fa5910be6" name="ga6b76c8ea46b19e6866af155fa5910be6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b76c8ea46b19e6866af155fa5910be6">&#9670;&#160;</a></span>block_masked_mm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::block_masked_mm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>block_size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>mask_out</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>mask_lhs</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>mask_rhs</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute matrix product with block masking. </p>
</div>
</div>
<a id="gab783890428b596f715dc7dd2057eae99" name="gab783890428b596f715dc7dd2057eae99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab783890428b596f715dc7dd2057eae99">&#9670;&#160;</a></span>broadcast_arrays()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::broadcast_arrays </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_broadcast.html">Broadcast</a> a vector of arrays against one another. </p>
</div>
</div>
<a id="ga2fd5891f11593b7f09550e884f969013" name="ga2fd5891f11593b7f09550e884f969013"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2fd5891f11593b7f09550e884f969013">&#9670;&#160;</a></span>broadcast_to()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::broadcast_to </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_broadcast.html">Broadcast</a> an array to a given shape. </p>
</div>
</div>
<a id="ga1404ecceff83fd9b9139b7520f55e096" name="ga1404ecceff83fd9b9139b7520f55e096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1404ecceff83fd9b9139b7520f55e096">&#9670;&#160;</a></span>ceil()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::ceil </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_ceil.html">Ceil</a> the element of an array. </p>
</div>
</div>
<a id="ga157cd7c23f9b306fee2e1eb2b9bf1dd8" name="ga157cd7c23f9b306fee2e1eb2b9bf1dd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga157cd7c23f9b306fee2e1eb2b9bf1dd8">&#9670;&#160;</a></span>clip()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::clip </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>a_min</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>a_max</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Clip (limit) the values in an array. </p>
</div>
</div>
<a id="ga52838af566948b1b96e7aa00832071b3" name="ga52838af566948b1b96e7aa00832071b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52838af566948b1b96e7aa00832071b3">&#9670;&#160;</a></span>concatenate() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::concatenate </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>arrays</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_concatenate.html">Concatenate</a> arrays along a given axis. </p>
</div>
</div>
<a id="ga666ac69778984fafdc2f51d296270468" name="ga666ac69778984fafdc2f51d296270468"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga666ac69778984fafdc2f51d296270468">&#9670;&#160;</a></span>concatenate() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::concatenate </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>arrays</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga5b596906bf8cdc8d97ed6ddc9aeb4c23" name="ga5b596906bf8cdc8d97ed6ddc9aeb4c23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5b596906bf8cdc8d97ed6ddc9aeb4c23">&#9670;&#160;</a></span>conjugate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conjugate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8ab10aa6c41416d739791164a52b25d5" name="ga8ab10aa6c41416d739791164a52b25d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ab10aa6c41416d739791164a52b25d5">&#9670;&#160;</a></span>contiguous()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::contiguous </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>allow_col_major</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga30d47e08093c03a3676f235f9f559411" name="ga30d47e08093c03a3676f235f9f559411"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga30d47e08093c03a3676f235f9f559411">&#9670;&#160;</a></span>conv1d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv1d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>1D convolution with a filter </p>
</div>
</div>
<a id="ga73b02833229678786e7f302d458d5a83" name="ga73b02833229678786e7f302d458d5a83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga73b02833229678786e7f302d458d5a83">&#9670;&#160;</a></span>conv2d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv2d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{0,&#160;0}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>2D convolution with a filter </p>
</div>
</div>
<a id="ga6e9907d2f14dc4803e4306b3dbc4b3ca" name="ga6e9907d2f14dc4803e4306b3dbc4b3ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e9907d2f14dc4803e4306b3dbc4b3ca">&#9670;&#160;</a></span>conv3d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv3d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{0,&#160;0,&#160;0}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>3D convolution with a filter </p>
</div>
</div>
<a id="ga2236e5dfc7e52e28abf6c21675d0a51e" name="ga2236e5dfc7e52e28abf6c21675d0a51e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2236e5dfc7e52e28abf6c21675d0a51e">&#9670;&#160;</a></span>conv_general() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv_general </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>padding_lo</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>padding_hi</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>kernel_dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>input_dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>flip</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>General convolution with a filter. </p>
</div>
</div>
<a id="gab59f89942cd1efaadffe9e8762e3c99d" name="gab59f89942cd1efaadffe9e8762e3c99d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab59f89942cd1efaadffe9e8762e3c99d">&#9670;&#160;</a></span>conv_general() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv_general </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>kernel_dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>input_dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>flip</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>General convolution with a filter. </p>
</div>
</div>
<a id="gaa30bf1adcd78d1c2595d07b215731714" name="gaa30bf1adcd78d1c2595d07b215731714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa30bf1adcd78d1c2595d07b215731714">&#9670;&#160;</a></span>conv_transpose1d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv_transpose1d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>1D transposed convolution with a filter </p>
</div>
</div>
<a id="gaebb59971cb9bc45005dc1d398e4f0a3d" name="gaebb59971cb9bc45005dc1d398e4f0a3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebb59971cb9bc45005dc1d398e4f0a3d">&#9670;&#160;</a></span>conv_transpose2d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv_transpose2d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{0,&#160;0}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>2D transposed convolution with a filter </p>
</div>
</div>
<a id="ga8db814da631d9cd32a8d6563bf4ac530" name="ga8db814da631d9cd32a8d6563bf4ac530"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8db814da631d9cd32a8d6563bf4ac530">&#9670;&#160;</a></span>conv_transpose3d()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::conv_transpose3d </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>input</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>weight</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>stride</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>padding</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{0,&#160;0,&#160;0}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::tuple&lt; int, int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>dilation</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{1,&#160;1,&#160;1}</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>groups</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>3D transposed convolution with a filter </p>
</div>
</div>
<a id="gae306e93af12f774bd80bad6c231b09d6" name="gae306e93af12f774bd80bad6c231b09d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae306e93af12f774bd80bad6c231b09d6">&#9670;&#160;</a></span>copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_copy.html">Copy</a> another array. </p>
</div>
</div>
<a id="ga39dfdf72b556012aa35ff27a94116e74" name="ga39dfdf72b556012aa35ff27a94116e74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga39dfdf72b556012aa35ff27a94116e74">&#9670;&#160;</a></span>cos()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cos </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Cosine of the elements of an array. </p>
</div>
</div>
<a id="ga2181b71cda88007a3092be4795ff0715" name="ga2181b71cda88007a3092be4795ff0715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2181b71cda88007a3092be4795ff0715">&#9670;&#160;</a></span>cosh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cosh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Hyperbolic Cosine of the elements of an array. </p>
</div>
</div>
<a id="gaee37cac8476e8f8d666bcded5bc59143" name="gaee37cac8476e8f8d666bcded5bc59143"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee37cac8476e8f8d666bcded5bc59143">&#9670;&#160;</a></span>cummax()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cummax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reverse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inclusive</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Cumulative max of an array. </p>
</div>
</div>
<a id="ga19c1bf6929fe8d66b9cd408946aea6a8" name="ga19c1bf6929fe8d66b9cd408946aea6a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19c1bf6929fe8d66b9cd408946aea6a8">&#9670;&#160;</a></span>cummin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cummin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reverse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inclusive</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Cumulative min of an array. </p>
</div>
</div>
<a id="ga0d71dfbc14ef3ed564b0c5ee26af680f" name="ga0d71dfbc14ef3ed564b0c5ee26af680f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0d71dfbc14ef3ed564b0c5ee26af680f">&#9670;&#160;</a></span>cumprod()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cumprod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reverse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inclusive</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Cumulative product of an array. </p>
</div>
</div>
<a id="gaddc825a5c173e195ab0fda83ad630420" name="gaddc825a5c173e195ab0fda83ad630420"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaddc825a5c173e195ab0fda83ad630420">&#9670;&#160;</a></span>cumsum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::cumsum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reverse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inclusive</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Cumulative sum of an array. </p>
</div>
</div>
<a id="ga3a70569b50e1083c5ded199d73fb960c" name="ga3a70569b50e1083c5ded199d73fb960c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a70569b50e1083c5ded199d73fb960c">&#9670;&#160;</a></span>degrees()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::degrees </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert the elements of an array from Radians to Degrees. </p>
</div>
</div>
<a id="gac4a51a68fbe1725436b026d2fbb95759" name="gac4a51a68fbe1725436b026d2fbb95759"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac4a51a68fbe1725436b026d2fbb95759">&#9670;&#160;</a></span>depends()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::depends </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>inputs</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>dependencies</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements the identity function but allows injecting dependencies to other arrays. </p>
<p>This ensures that these other arrays will have been computed when the outputs of this function are computed. </p>
</div>
</div>
<a id="gabff758a5c1ce32ad7e8b78aba0164077" name="gabff758a5c1ce32ad7e8b78aba0164077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabff758a5c1ce32ad7e8b78aba0164077">&#9670;&#160;</a></span>dequantize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::dequantize </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>w</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>scales</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>biases</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>group_size</em></span><span class="paramdefsep"> = </span><span class="paramdefval">64</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bits</em></span><span class="paramdefsep"> = </span><span class="paramdefval">4</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Dequantize a matrix produced by <a class="el" href="#gab43cc28690da7cdd43b43065adbd31da" title="Quantize a matrix along its last axis.">quantize()</a> </p>
</div>
</div>
<a id="ga11af511875640e1fa88e0ca87e199344" name="ga11af511875640e1fa88e0ca87e199344"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga11af511875640e1fa88e0ca87e199344">&#9670;&#160;</a></span>diag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::diag </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract diagonal from a 2d array or create a diagonal matrix. </p>
</div>
</div>
<a id="ga9236b085a88ead3128ed8079d009cac6" name="ga9236b085a88ead3128ed8079d009cac6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9236b085a88ead3128ed8079d009cac6">&#9670;&#160;</a></span>diagonal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::diagonal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>offset</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis1</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis2</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract a diagonal or construct a diagonal array. </p>
</div>
</div>
<a id="ga77472dd06cfa7a30a42e4fd927bd859f" name="ga77472dd06cfa7a30a42e4fd927bd859f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77472dd06cfa7a30a42e4fd927bd859f">&#9670;&#160;</a></span>divide()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::divide </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_divide.html">Divide</a> two arrays. </p>
</div>
</div>
<a id="gaa30ebc0a8376dbc3f7e46a47052b5894" name="gaa30ebc0a8376dbc3f7e46a47052b5894"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa30ebc0a8376dbc3f7e46a47052b5894">&#9670;&#160;</a></span>divmod()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::divmod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the element-wise quotient and remainder. </p>
</div>
</div>
<a id="ga33638dc3a9972dd02be12d0eb85f9bde" name="ga33638dc3a9972dd02be12d0eb85f9bde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33638dc3a9972dd02be12d0eb85f9bde">&#9670;&#160;</a></span>equal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the bool array with (a == b) element-wise. </p>
</div>
</div>
<a id="ga292a335240fd5d6d625fb7a340ff5eb0" name="ga292a335240fd5d6d625fb7a340ff5eb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga292a335240fd5d6d625fb7a340ff5eb0">&#9670;&#160;</a></span>erf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::erf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the error function of the elements of an array. </p>
</div>
</div>
<a id="ga76fb9062c64264e34d2e07013390557c" name="ga76fb9062c64264e34d2e07013390557c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga76fb9062c64264e34d2e07013390557c">&#9670;&#160;</a></span>erfinv()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::erfinv </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the inverse error function of the elements of an array. </p>
</div>
</div>
<a id="ga8a3b04e23e347d99ecf411fd6f4e5125" name="ga8a3b04e23e347d99ecf411fd6f4e5125"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a3b04e23e347d99ecf411fd6f4e5125">&#9670;&#160;</a></span>exp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::exp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Exponential of the elements of an array. </p>
</div>
</div>
<a id="ga717f11149a8c7b4cc3e33bbcc0a97133" name="ga717f11149a8c7b4cc3e33bbcc0a97133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga717f11149a8c7b4cc3e33bbcc0a97133">&#9670;&#160;</a></span>expand_dims() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::expand_dims </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> a singleton dimension at the given axes. </p>
</div>
</div>
<a id="ga7a80adb4a5a36d18b5f234d4b034950a" name="ga7a80adb4a5a36d18b5f234d4b034950a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a80adb4a5a36d18b5f234d4b034950a">&#9670;&#160;</a></span>expand_dims() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::expand_dims </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> a singleton dimension at the given axis. </p>
</div>
</div>
<a id="ga54ca54f06bfb2be15b163a5209e2a0f0" name="ga54ca54f06bfb2be15b163a5209e2a0f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga54ca54f06bfb2be15b163a5209e2a0f0">&#9670;&#160;</a></span>expm1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::expm1 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the expm1 function of the elements of an array. </p>
</div>
</div>
<a id="ga2c9011310a1fa7c82f942f54102c36dd" name="ga2c9011310a1fa7c82f942f54102c36dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c9011310a1fa7c82f942f54102c36dd">&#9670;&#160;</a></span>eye() <span class="overload">[1/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::eye </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga45e9e68246b0d1cf03c3cc9c9e7e6ae3" name="ga45e9e68246b0d1cf03c3cc9c9e7e6ae3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3">&#9670;&#160;</a></span>eye() <span class="overload">[2/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::eye </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>m</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Fill an array of the given shape (n,m) with ones in the specified diagonal k, and zeros everywhere else. </p>
</div>
</div>
<a id="ga908a15b42834be498a46856c99dfc779" name="ga908a15b42834be498a46856c99dfc779"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga908a15b42834be498a46856c99dfc779">&#9670;&#160;</a></span>eye() <span class="overload">[3/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::eye </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>m</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga61657db78ef35d41112d362c869c25d2" name="ga61657db78ef35d41112d362c869c25d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga61657db78ef35d41112d362c869c25d2">&#9670;&#160;</a></span>eye() <span class="overload">[4/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::eye </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>m</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gab777fcf6d4a89172c69ec3492548dc0f" name="gab777fcf6d4a89172c69ec3492548dc0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab777fcf6d4a89172c69ec3492548dc0f">&#9670;&#160;</a></span>eye() <span class="overload">[5/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::eye </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga50aa98754b412bb57c083f6e3e95061f" name="ga50aa98754b412bb57c083f6e3e95061f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50aa98754b412bb57c083f6e3e95061f">&#9670;&#160;</a></span>flatten() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::flatten </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>start_axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>end_axis</em></span><span class="paramdefsep"> = </span><span class="paramdefval">-1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_flatten.html">Flatten</a> the dimensions in the range <code>[start_axis, end_axis]</code> . </p>
</div>
</div>
<a id="gaa6adbc9c86f0ab27d8810a02e9e719fd" name="gaa6adbc9c86f0ab27d8810a02e9e719fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa6adbc9c86f0ab27d8810a02e9e719fd">&#9670;&#160;</a></span>flatten() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::flatten </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_flatten.html">Flatten</a> the array to 1D. </p>
</div>
</div>
<a id="ga8d656904aa2690b60955ae745aecfc30" name="ga8d656904aa2690b60955ae745aecfc30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d656904aa2690b60955ae745aecfc30">&#9670;&#160;</a></span>floor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::floor </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_floor.html">Floor</a> the element of an array. </p>
</div>
</div>
<a id="ga05b4c6054d028107869511f927da01cd" name="ga05b4c6054d028107869511f927da01cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05b4c6054d028107869511f927da01cd">&#9670;&#160;</a></span>floor_divide()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::floor_divide </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute integer division. </p>
<p>Equivalent to doing floor(a / x). </p>
</div>
</div>
<a id="ga1cf232308668fe3f4214c8b895ed4aee" name="ga1cf232308668fe3f4214c8b895ed4aee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1cf232308668fe3f4214c8b895ed4aee">&#9670;&#160;</a></span>full() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::full </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>vals</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Fill an array of the given shape with the given value(s). </p>
</div>
</div>
<a id="ga59f6c844cbb173e108c3eeb11801f8c6" name="ga59f6c844cbb173e108c3eeb11801f8c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga59f6c844cbb173e108c3eeb11801f8c6">&#9670;&#160;</a></span>full() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::full </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>vals</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf073760b7b51fe35932da0d81c531a55" name="gaf073760b7b51fe35932da0d81c531a55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf073760b7b51fe35932da0d81c531a55">&#9670;&#160;</a></span>full() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::full </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf6f2cce92aff9b71756a3cc3c961fd5a" name="gaf6f2cce92aff9b71756a3cc3c961fd5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6f2cce92aff9b71756a3cc3c961fd5a">&#9670;&#160;</a></span>full() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::full </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gafe2bd174c9953ed7f12664f7abaca0e6" name="gafe2bd174c9953ed7f12664f7abaca0e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafe2bd174c9953ed7f12664f7abaca0e6">&#9670;&#160;</a></span>gather() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::gather </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>slice_sizes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8fcc3ad0677c834c36b72d5b2ebba6d0" name="ga8fcc3ad0677c834c36b72d5b2ebba6d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fcc3ad0677c834c36b72d5b2ebba6d0">&#9670;&#160;</a></span>gather() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::gather </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>slice_sizes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_gather.html">Gather</a> array entries given indices and slices. </p>
</div>
</div>
<a id="ga8d50480266d258cac40ff51bcb0fc6a7" name="ga8d50480266d258cac40ff51bcb0fc6a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d50480266d258cac40ff51bcb0fc6a7">&#9670;&#160;</a></span>gather_mm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::gather_mm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>lhs_indices</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>rhs_indices</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute matrix product with matrix-level gather. </p>
</div>
</div>
<a id="ga368a0dc0e5dfb76922e7aa55a95f12f0" name="ga368a0dc0e5dfb76922e7aa55a95f12f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga368a0dc0e5dfb76922e7aa55a95f12f0">&#9670;&#160;</a></span>gather_qmm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::gather_qmm </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>w</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>scales</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>biases</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>lhs_indices</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt;</td> <td class="paramname"><span class="paramname"><em>rhs_indices</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transpose</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>group_size</em></span><span class="paramdefsep"> = </span><span class="paramdefval">64</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bits</em></span><span class="paramdefsep"> = </span><span class="paramdefval">4</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute matrix products with matrix-level gather. </p>
</div>
</div>
<a id="gaf4ec7bfc1ad13b891f1f3ef1772ef04d" name="gaf4ec7bfc1ad13b891f1f3ef1772ef04d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf4ec7bfc1ad13b891f1f3ef1772ef04d">&#9670;&#160;</a></span>greater()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::greater </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns bool array with (a &gt; b) element-wise. </p>
</div>
</div>
<a id="ga7153071bcfff6faad21332163fb9a430" name="ga7153071bcfff6faad21332163fb9a430"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7153071bcfff6faad21332163fb9a430">&#9670;&#160;</a></span>greater_equal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::greater_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns bool array with (a &gt;= b) element-wise. </p>
</div>
</div>
<a id="ga872d2c1806e67ce2596b24d056681074" name="ga872d2c1806e67ce2596b24d056681074"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga872d2c1806e67ce2596b24d056681074">&#9670;&#160;</a></span>hadamard_transform()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::hadamard_transform </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::optional&lt; float &gt;</td> <td class="paramname"><span class="paramname"><em>scale</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_multiply.html">Multiply</a> the array by the <a class="el" href="classmlx_1_1core_1_1_hadamard.html">Hadamard</a> matrix of corresponding size. </p>
</div>
</div>
<a id="ga484eaa10d5e19a4ca46d3a9cd9fab600" name="ga484eaa10d5e19a4ca46d3a9cd9fab600"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga484eaa10d5e19a4ca46d3a9cd9fab600">&#9670;&#160;</a></span>identity() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::identity </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal. </p>
</div>
</div>
<a id="gad994d65ac6019c26b5ad6c41179d3424" name="gad994d65ac6019c26b5ad6c41179d3424"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad994d65ac6019c26b5ad6c41179d3424">&#9670;&#160;</a></span>identity() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::identity </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7ff592a64d528f0cf4f3d098465da029" name="ga7ff592a64d528f0cf4f3d098465da029"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7ff592a64d528f0cf4f3d098465da029">&#9670;&#160;</a></span>imag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::imag </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga654fec16a9746b390916697a2ab2546e" name="ga654fec16a9746b390916697a2ab2546e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga654fec16a9746b390916697a2ab2546e">&#9670;&#160;</a></span>inner()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::inner </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the inner product of two vectors. </p>
</div>
</div>
<a id="ga51eac95c04400921c54716de14b52491" name="ga51eac95c04400921c54716de14b52491"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51eac95c04400921c54716de14b52491">&#9670;&#160;</a></span>isclose()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isclose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>rtol</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1e-5</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>atol</em></span><span class="paramdefsep"> = </span><span class="paramdefval">1e-8</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>equal_nan</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a boolean array where two arrays are element-wise equal within the specified tolerance. </p>
</div>
</div>
<a id="ga725ff0789f934b1fdd54ee29e47022ff" name="ga725ff0789f934b1fdd54ee29e47022ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga725ff0789f934b1fdd54ee29e47022ff">&#9670;&#160;</a></span>isfinite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isfinite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8fc238d5e5d1153e69da8b36015d9844" name="ga8fc238d5e5d1153e69da8b36015d9844"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fc238d5e5d1153e69da8b36015d9844">&#9670;&#160;</a></span>isinf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isinf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga175592792471b0ffb45196dca4711ba6" name="ga175592792471b0ffb45196dca4711ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga175592792471b0ffb45196dca4711ba6">&#9670;&#160;</a></span>isnan()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isnan </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga1940523da381ed7be50656a3bc465ff3" name="ga1940523da381ed7be50656a3bc465ff3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1940523da381ed7be50656a3bc465ff3">&#9670;&#160;</a></span>isneginf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isneginf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gad80f7c4a58c12b6cb30a8b9a73008993" name="gad80f7c4a58c12b6cb30a8b9a73008993"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad80f7c4a58c12b6cb30a8b9a73008993">&#9670;&#160;</a></span>isposinf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::isposinf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6df16248cb68bc73644cdb1698967c19" name="ga6df16248cb68bc73644cdb1698967c19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6df16248cb68bc73644cdb1698967c19">&#9670;&#160;</a></span>kron()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::kron </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the Kronecker product of two arrays. </p>
</div>
</div>
<a id="ga89682bf78491761e062d4ee7bef0c829" name="ga89682bf78491761e062d4ee7bef0c829"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga89682bf78491761e062d4ee7bef0c829">&#9670;&#160;</a></span>left_shift()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::left_shift </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Shift bits to the left. </p>
</div>
</div>
<a id="ga9142b8d717699a8abfa2a7398891ff8a" name="ga9142b8d717699a8abfa2a7398891ff8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9142b8d717699a8abfa2a7398891ff8a">&#9670;&#160;</a></span>less()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::less </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns bool array with (a &lt; b) element-wise. </p>
</div>
</div>
<a id="ga0d49e0c7011d0573c369c13c8f045a09" name="ga0d49e0c7011d0573c369c13c8f045a09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0d49e0c7011d0573c369c13c8f045a09">&#9670;&#160;</a></span>less_equal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::less_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns bool array with (a &lt;= b) element-wise. </p>
</div>
</div>
<a id="ga968bcabed902311dcfbd903b0fb886ec" name="ga968bcabed902311dcfbd903b0fb886ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga968bcabed902311dcfbd903b0fb886ec">&#9670;&#160;</a></span>linspace()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::linspace </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>num</em></span><span class="paramdefsep"> = </span><span class="paramdefval">50</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>A 1D array of <code>num</code> evenly spaced numbers in the range <code>[start, stop]</code> </p>
</div>
</div>
<a id="ga6fb22d4926133573e430fcc92f4eef31" name="ga6fb22d4926133573e430fcc92f4eef31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6fb22d4926133573e430fcc92f4eef31">&#9670;&#160;</a></span>log()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::log </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Natural logarithm of the elements of an array. </p>
</div>
</div>
<a id="ga1fdcc7fc8819caf2e6f1c327ed4e9b9e" name="ga1fdcc7fc8819caf2e6f1c327ed4e9b9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1fdcc7fc8819caf2e6f1c327ed4e9b9e">&#9670;&#160;</a></span>log10()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::log10 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_log.html">Log</a> base 10 of the elements of an array. </p>
</div>
</div>
<a id="ga20a1f4270c35b0fa544f5105a87a1604" name="ga20a1f4270c35b0fa544f5105a87a1604"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20a1f4270c35b0fa544f5105a87a1604">&#9670;&#160;</a></span>log1p()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::log1p </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Natural logarithm of one plus elements in the array: <code>log(1 + a)</code>. </p>
</div>
</div>
<a id="ga144228d7222d15af3a135b8b0f3fa21b" name="ga144228d7222d15af3a135b8b0f3fa21b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga144228d7222d15af3a135b8b0f3fa21b">&#9670;&#160;</a></span>log2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::log2 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_log.html">Log</a> base 2 of the elements of an array. </p>
</div>
</div>
<a id="gaf985df6609c6bd75a14a844655d89eaa" name="gaf985df6609c6bd75a14a844655d89eaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf985df6609c6bd75a14a844655d89eaa">&#9670;&#160;</a></span>logaddexp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logaddexp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Log-add-exp of one elements in the array: <code>log(exp(a) + exp(b))</code>. </p>
</div>
</div>
<a id="ga768977cda8d68cf23f464a6af9907876" name="ga768977cda8d68cf23f464a6af9907876"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga768977cda8d68cf23f464a6af9907876">&#9670;&#160;</a></span>logical_and()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logical_and </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Logical and of two arrays. </p>
</div>
</div>
<a id="gabca78d34ce93f0de2814e62225bb2a53" name="gabca78d34ce93f0de2814e62225bb2a53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabca78d34ce93f0de2814e62225bb2a53">&#9670;&#160;</a></span>logical_not()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logical_not </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Logical not of an array. </p>
</div>
</div>
<a id="ga23768728e4dd070c917fbb0ed0d0c2ec" name="ga23768728e4dd070c917fbb0ed0d0c2ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga23768728e4dd070c917fbb0ed0d0c2ec">&#9670;&#160;</a></span>logical_or()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logical_or </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Logical or of two arrays. </p>
</div>
</div>
<a id="gacff4eb57c085d571e722083680267ac5" name="gacff4eb57c085d571e722083680267ac5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacff4eb57c085d571e722083680267ac5">&#9670;&#160;</a></span>logsumexp() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logsumexp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The logsumexp of all elements of the array. </p>
</div>
</div>
<a id="gae3969c7bd24c4f3ab97831df28239689" name="gae3969c7bd24c4f3ab97831df28239689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae3969c7bd24c4f3ab97831df28239689">&#9670;&#160;</a></span>logsumexp() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logsumexp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The logsumexp of the elements of an array along the given axes. </p>
</div>
</div>
<a id="gafef5cb2159c16a60a95470cc823bdd44" name="gafef5cb2159c16a60a95470cc823bdd44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafef5cb2159c16a60a95470cc823bdd44">&#9670;&#160;</a></span>logsumexp() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logsumexp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The logsumexp of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga59be50b4e92f1dc20b53460cefa3910d" name="ga59be50b4e92f1dc20b53460cefa3910d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga59be50b4e92f1dc20b53460cefa3910d">&#9670;&#160;</a></span>logsumexp() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::logsumexp </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga753d59f5a9f5f2362865ee83b4dced2a" name="ga753d59f5a9f5f2362865ee83b4dced2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga753d59f5a9f5f2362865ee83b4dced2a">&#9670;&#160;</a></span>matmul()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::matmul </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Matrix-matrix multiplication. </p>
</div>
</div>
<a id="ga7fed87d96cc7741d8267f4eac83f5fe7" name="ga7fed87d96cc7741d8267f4eac83f5fe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7fed87d96cc7741d8267f4eac83f5fe7">&#9670;&#160;</a></span>max() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum of all elements of the array. </p>
</div>
</div>
<a id="ga1ca7b6b91fe2459a7d83897bf013827f" name="ga1ca7b6b91fe2459a7d83897bf013827f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ca7b6b91fe2459a7d83897bf013827f">&#9670;&#160;</a></span>max() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga7b638050e03a93f2896c981bc2850a47" name="ga7b638050e03a93f2896c981bc2850a47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b638050e03a93f2896c981bc2850a47">&#9670;&#160;</a></span>max() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga25be91d70a5f40341db0615a0b8bfedc" name="ga25be91d70a5f40341db0615a0b8bfedc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25be91d70a5f40341db0615a0b8bfedc">&#9670;&#160;</a></span>max() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7ade2ea305e2e4219c3609443fb5db8d" name="ga7ade2ea305e2e4219c3609443fb5db8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7ade2ea305e2e4219c3609443fb5db8d">&#9670;&#160;</a></span>maximum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::maximum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Element-wise maximum between two arrays. </p>
</div>
</div>
<a id="gade46e768fd46b8b640eb16f26abeecef" name="gade46e768fd46b8b640eb16f26abeecef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade46e768fd46b8b640eb16f26abeecef">&#9670;&#160;</a></span>mean() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::mean </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the mean of the elements of an array. </p>
</div>
</div>
<a id="ga066161f3d3e395a1d76c638cb680d444" name="ga066161f3d3e395a1d76c638cb680d444"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga066161f3d3e395a1d76c638cb680d444">&#9670;&#160;</a></span>mean() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::mean </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the mean of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga45fba73eab0e3b6e128ed3ce2f43a5da" name="ga45fba73eab0e3b6e128ed3ce2f43a5da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga45fba73eab0e3b6e128ed3ce2f43a5da">&#9670;&#160;</a></span>mean() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::mean </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the mean of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga52b59fdd8e8430538e564f5bbcfa31e6" name="ga52b59fdd8e8430538e564f5bbcfa31e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52b59fdd8e8430538e564f5bbcfa31e6">&#9670;&#160;</a></span>mean() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::mean </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga5ecddb74ba7861eb82eca8653501d5dc" name="ga5ecddb74ba7861eb82eca8653501d5dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ecddb74ba7861eb82eca8653501d5dc">&#9670;&#160;</a></span>meshgrid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::meshgrid </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arrays</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>sparse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>indexing</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;xy&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>A vector of coordinate arrays from coordinate vectors. </p>
</div>
</div>
<a id="gab27599802617a4c8f9964ab5f4ffee12" name="gab27599802617a4c8f9964ab5f4ffee12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab27599802617a4c8f9964ab5f4ffee12">&#9670;&#160;</a></span>min() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum of all elements of the array. </p>
</div>
</div>
<a id="ga6efb83cd46436678c8f8c4af15cc00f5" name="ga6efb83cd46436678c8f8c4af15cc00f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6efb83cd46436678c8f8c4af15cc00f5">&#9670;&#160;</a></span>min() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga36fa315eef677f4143868f552cd26d03" name="ga36fa315eef677f4143868f552cd26d03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga36fa315eef677f4143868f552cd26d03">&#9670;&#160;</a></span>min() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga0140b91e9cdfc3fef0da8e332f65a9e8" name="ga0140b91e9cdfc3fef0da8e332f65a9e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0140b91e9cdfc3fef0da8e332f65a9e8">&#9670;&#160;</a></span>min() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga49ba00c090f81f331c91b0c97040bce0" name="ga49ba00c090f81f331c91b0c97040bce0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49ba00c090f81f331c91b0c97040bce0">&#9670;&#160;</a></span>minimum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::minimum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Element-wise minimum between two arrays. </p>
</div>
</div>
<a id="ga24067d10a842db2c9d509ea48135a2c3" name="ga24067d10a842db2c9d509ea48135a2c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga24067d10a842db2c9d509ea48135a2c3">&#9670;&#160;</a></span>moveaxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::moveaxis </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>destination</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Move an axis of an array. </p>
</div>
</div>
<a id="gaf57392e641640b5d06e4c99518391c38" name="gaf57392e641640b5d06e4c99518391c38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf57392e641640b5d06e4c99518391c38">&#9670;&#160;</a></span>multiply()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::multiply </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_multiply.html">Multiply</a> two arrays. </p>
</div>
</div>
<a id="gab1467c6a9e675152e768afd6dcfb61de" name="gab1467c6a9e675152e768afd6dcfb61de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1467c6a9e675152e768afd6dcfb61de">&#9670;&#160;</a></span>nan_to_num()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::nan_to_num </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float</td> <td class="paramname"><span class="paramname"><em>nan</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0.0f</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; float &gt;</td> <td class="paramname"><span class="paramname"><em>posinf</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; float &gt;</td> <td class="paramname"><span class="paramname"><em>neginf</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::nullopt</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace NaN and infinities with finite numbers. </p>
</div>
</div>
<a id="ga95d9a9425533b5ed1707eb00184dffc6" name="ga95d9a9425533b5ed1707eb00184dffc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95d9a9425533b5ed1707eb00184dffc6">&#9670;&#160;</a></span>negative()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::negative </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Negate an array. </p>
</div>
</div>
<a id="ga28f22c5d2c399eee53be7b3facc11103" name="ga28f22c5d2c399eee53be7b3facc11103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28f22c5d2c399eee53be7b3facc11103">&#9670;&#160;</a></span>not_equal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::not_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the bool array with (a != b) element-wise. </p>
</div>
</div>
<a id="ga6d5f5f72362488b956cdc4615ef6c636" name="ga6d5f5f72362488b956cdc4615ef6c636"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6d5f5f72362488b956cdc4615ef6c636">&#9670;&#160;</a></span>number_of_elements()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::number_of_elements </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>inverted</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3">int32</a></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract the number of elements along some axes as a scalar array. </p>
<p>Used to allow shape dependent shapeless compilation (pun intended). </p>
</div>
</div>
<a id="gae0069146cf8c819b15ba29aa7231a3f0" name="gae0069146cf8c819b15ba29aa7231a3f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0069146cf8c819b15ba29aa7231a3f0">&#9670;&#160;</a></span>ones() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::ones </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Fill an array of the given shape with ones. </p>
</div>
</div>
<a id="gace4cf016562af58991f9f961170e156f" name="gace4cf016562af58991f9f961170e156f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace4cf016562af58991f9f961170e156f">&#9670;&#160;</a></span>ones() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::ones </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga94f8d3b1906fee99da9cbe39f7be7d42" name="ga94f8d3b1906fee99da9cbe39f7be7d42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94f8d3b1906fee99da9cbe39f7be7d42">&#9670;&#160;</a></span>ones_like()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::ones_like </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga0ac483d85f23252ca8757e9926d5a3c5" name="ga0ac483d85f23252ca8757e9926d5a3c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0ac483d85f23252ca8757e9926d5a3c5">&#9670;&#160;</a></span>operator!=() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator!= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaebbf1cfde388c7480159a03c92c9a385" name="gaebbf1cfde388c7480159a03c92c9a385"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebbf1cfde388c7480159a03c92c9a385">&#9670;&#160;</a></span>operator!=() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator!= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3fecba9f3cb9a19afd8ca492cf509ce0" name="ga3fecba9f3cb9a19afd8ca492cf509ce0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fecba9f3cb9a19afd8ca492cf509ce0">&#9670;&#160;</a></span>operator!=() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator!= </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gab3bfbf82b1e4de7b00bbcf1a2255fbde" name="gab3bfbf82b1e4de7b00bbcf1a2255fbde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab3bfbf82b1e4de7b00bbcf1a2255fbde">&#9670;&#160;</a></span>operator%() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator% </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga46c01daa07433542a477d216e13a8480" name="ga46c01daa07433542a477d216e13a8480"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46c01daa07433542a477d216e13a8480">&#9670;&#160;</a></span>operator%() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator% </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga50817666f0b82afcbf4a123486af9908" name="ga50817666f0b82afcbf4a123486af9908"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50817666f0b82afcbf4a123486af9908">&#9670;&#160;</a></span>operator%() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator% </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf0d232de4cbfffda1e2c838f8afdf6ff" name="gaf0d232de4cbfffda1e2c838f8afdf6ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0d232de4cbfffda1e2c838f8afdf6ff">&#9670;&#160;</a></span>operator&amp;()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&amp; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaee1d774bb0843601d7a0a4257d616ae3" name="gaee1d774bb0843601d7a0a4257d616ae3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee1d774bb0843601d7a0a4257d616ae3">&#9670;&#160;</a></span>operator&amp;&amp;()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&amp;&amp; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga26c33f5cdb6fc10d272acd6e208034e0" name="ga26c33f5cdb6fc10d272acd6e208034e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26c33f5cdb6fc10d272acd6e208034e0">&#9670;&#160;</a></span>operator*() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6f2369ed5fae8ff9b1528670a004dde2" name="ga6f2369ed5fae8ff9b1528670a004dde2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f2369ed5fae8ff9b1528670a004dde2">&#9670;&#160;</a></span>operator*() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac22a67f7de797b1ae59029843cbdcab6" name="gac22a67f7de797b1ae59029843cbdcab6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac22a67f7de797b1ae59029843cbdcab6">&#9670;&#160;</a></span>operator*() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator* </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga26e5a043eaaaf066d1400adac9c11d0c" name="ga26e5a043eaaaf066d1400adac9c11d0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26e5a043eaaaf066d1400adac9c11d0c">&#9670;&#160;</a></span>operator+() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7cc080a4f9d4a667f2099aa0dbfefadd" name="ga7cc080a4f9d4a667f2099aa0dbfefadd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7cc080a4f9d4a667f2099aa0dbfefadd">&#9670;&#160;</a></span>operator+() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7d0ec8d01e7cefa6a6b25f11876761b5" name="ga7d0ec8d01e7cefa6a6b25f11876761b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d0ec8d01e7cefa6a6b25f11876761b5">&#9670;&#160;</a></span>operator+() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator+ </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gade2eea48989f4caaf36e89f7bd2a8816" name="gade2eea48989f4caaf36e89f7bd2a8816"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade2eea48989f4caaf36e89f7bd2a8816">&#9670;&#160;</a></span>operator-() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga0c7f3cb36d4ca516c7a33142f88b9181" name="ga0c7f3cb36d4ca516c7a33142f88b9181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0c7f3cb36d4ca516c7a33142f88b9181">&#9670;&#160;</a></span>operator-() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf5e5d882c51ad0a0ea315c274d5439b2" name="gaf5e5d882c51ad0a0ea315c274d5439b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf5e5d882c51ad0a0ea315c274d5439b2">&#9670;&#160;</a></span>operator-() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gae68d3d0691ba951501218e98439f3465" name="gae68d3d0691ba951501218e98439f3465"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae68d3d0691ba951501218e98439f3465">&#9670;&#160;</a></span>operator-() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator- </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaeedf77f722b394429f1a7f6c367883bf" name="gaeedf77f722b394429f1a7f6c367883bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeedf77f722b394429f1a7f6c367883bf">&#9670;&#160;</a></span>operator/() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator/ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gadfb324ae9b4feb2c7ea0ac6ade639f38" name="gadfb324ae9b4feb2c7ea0ac6ade639f38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadfb324ae9b4feb2c7ea0ac6ade639f38">&#9670;&#160;</a></span>operator/() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator/ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7366ec7f453be2a4dc449f0faa1bf554" name="ga7366ec7f453be2a4dc449f0faa1bf554"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7366ec7f453be2a4dc449f0faa1bf554">&#9670;&#160;</a></span>operator/() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator/ </td>
<td>(</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaee41e2b8f61d563200ff03575ac1d6c3" name="gaee41e2b8f61d563200ff03575ac1d6c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee41e2b8f61d563200ff03575ac1d6c3">&#9670;&#160;</a></span>operator&lt;() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga95e72226dc7a79c40b3d16f990922050" name="ga95e72226dc7a79c40b3d16f990922050"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95e72226dc7a79c40b3d16f990922050">&#9670;&#160;</a></span>operator&lt;() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga1ef8ea11cf15ce628c54201fa42748ef" name="ga1ef8ea11cf15ce628c54201fa42748ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ef8ea11cf15ce628c54201fa42748ef">&#9670;&#160;</a></span>operator&lt;() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt; </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gad656c30f9fd7d9467e405657b325aa7e" name="gad656c30f9fd7d9467e405657b325aa7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad656c30f9fd7d9467e405657b325aa7e">&#9670;&#160;</a></span>operator&lt;&lt;()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga4c8b8a1632944acaae50f0de6c23ece6" name="ga4c8b8a1632944acaae50f0de6c23ece6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c8b8a1632944acaae50f0de6c23ece6">&#9670;&#160;</a></span>operator&lt;=() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga624eeccef0cc4b130e1325abfea057cb" name="ga624eeccef0cc4b130e1325abfea057cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga624eeccef0cc4b130e1325abfea057cb">&#9670;&#160;</a></span>operator&lt;=() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga150a9be467c9f91482a6d6fc13504bc4" name="ga150a9be467c9f91482a6d6fc13504bc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga150a9be467c9f91482a6d6fc13504bc4">&#9670;&#160;</a></span>operator&lt;=() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&lt;= </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaa30cf69f3d22f65615f5e1696dd5703f" name="gaa30cf69f3d22f65615f5e1696dd5703f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa30cf69f3d22f65615f5e1696dd5703f">&#9670;&#160;</a></span>operator==() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3ad3ed7aece2650943a35082dbe3a0a5" name="ga3ad3ed7aece2650943a35082dbe3a0a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ad3ed7aece2650943a35082dbe3a0a5">&#9670;&#160;</a></span>operator==() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf115782d009ac2a547fcca395c9ec797" name="gaf115782d009ac2a547fcca395c9ec797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf115782d009ac2a547fcca395c9ec797">&#9670;&#160;</a></span>operator==() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator== </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga74fd2777adef10e6fe628a9cdadb01cb" name="ga74fd2777adef10e6fe628a9cdadb01cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga74fd2777adef10e6fe628a9cdadb01cb">&#9670;&#160;</a></span>operator&gt;() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga96552b90e89923c5d2064cc427775ec5" name="ga96552b90e89923c5d2064cc427775ec5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96552b90e89923c5d2064cc427775ec5">&#9670;&#160;</a></span>operator&gt;() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga32e106e794e2c32e4e7decee2df2477f" name="ga32e106e794e2c32e4e7decee2df2477f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga32e106e794e2c32e4e7decee2df2477f">&#9670;&#160;</a></span>operator&gt;() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt; </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3a41895f25ed083a36994d95fa102546" name="ga3a41895f25ed083a36994d95fa102546"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a41895f25ed083a36994d95fa102546">&#9670;&#160;</a></span>operator&gt;=() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gafa0eb25d5978674bfc9e59d4145ec590" name="gafa0eb25d5978674bfc9e59d4145ec590"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa0eb25d5978674bfc9e59d4145ec590">&#9670;&#160;</a></span>operator&gt;=() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf509f2cb3b18963232f20d6c3bd229b2" name="gaf509f2cb3b18963232f20d6c3bd229b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf509f2cb3b18963232f20d6c3bd229b2">&#9670;&#160;</a></span>operator&gt;=() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt;= </td>
<td>(</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga498b61f7e8f056ae00297fa0dc17303a" name="ga498b61f7e8f056ae00297fa0dc17303a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga498b61f7e8f056ae00297fa0dc17303a">&#9670;&#160;</a></span>operator&gt;&gt;()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac3a6fe18694e84b3d63458e9553ac181" name="gac3a6fe18694e84b3d63458e9553ac181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3a6fe18694e84b3d63458e9553ac181">&#9670;&#160;</a></span>operator^()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator^ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga52392a2a98f09a80da8d338c4908bd02" name="ga52392a2a98f09a80da8d338c4908bd02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52392a2a98f09a80da8d338c4908bd02">&#9670;&#160;</a></span>operator|()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator| </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga27af56a98270d4d76d139f0f9171b83a" name="ga27af56a98270d4d76d139f0f9171b83a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27af56a98270d4d76d139f0f9171b83a">&#9670;&#160;</a></span>operator||()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::operator|| </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga866af24e10db2797e1c5a5986dbf6c0d" name="ga866af24e10db2797e1c5a5986dbf6c0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga866af24e10db2797e1c5a5986dbf6c0d">&#9670;&#160;</a></span>outer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::outer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the outer product of two vectors. </p>
</div>
</div>
<a id="gab2d5a17d3d5225fed34905e786c31c5f" name="gab2d5a17d3d5225fed34905e786c31c5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab2d5a17d3d5225fed34905e786c31c5f">&#9670;&#160;</a></span>pad() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::pad </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::pair&lt; int, int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>pad_width</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>pad_value</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0)</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>mode</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;constant&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gab95ebd20bd7c6d1c840007cc020cbc0c" name="gab95ebd20bd7c6d1c840007cc020cbc0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab95ebd20bd7c6d1c840007cc020cbc0c">&#9670;&#160;</a></span>pad() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::pad </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>low_pad_size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>high_pad_size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>pad_value</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0)</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>mode</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;constant&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value. </p>
</div>
</div>
<a id="gad89f464e92c356faab1f1c2e763b1fb7" name="gad89f464e92c356faab1f1c2e763b1fb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad89f464e92c356faab1f1c2e763b1fb7">&#9670;&#160;</a></span>pad() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::pad </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>pad_width</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>pad_value</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0)</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>mode</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;constant&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value along all axes. </p>
</div>
</div>
<a id="gaa73ac5674467b1d5c74de6fef7204c44" name="gaa73ac5674467b1d5c74de6fef7204c44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa73ac5674467b1d5c74de6fef7204c44">&#9670;&#160;</a></span>pad() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::pad </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>pad_width</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>pad_value</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0)</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>mode</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;constant&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga4fbea3a5f66cf81e3c119d1661119321" name="ga4fbea3a5f66cf81e3c119d1661119321"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4fbea3a5f66cf81e3c119d1661119321">&#9670;&#160;</a></span>partition() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::partition </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>kth</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a partitioned copy of the array along a given axis such that the smaller kth elements are first. </p>
</div>
</div>
<a id="gac1b30830a972fb9a2601379ad2b32405" name="gac1b30830a972fb9a2601379ad2b32405"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1b30830a972fb9a2601379ad2b32405">&#9670;&#160;</a></span>partition() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::partition </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>kth</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a partitioned copy of the flattened array such that the smaller kth elements are first. </p>
</div>
</div>
<a id="ga7972058715c26559dff9c9ae2a3ef76d" name="ga7972058715c26559dff9c9ae2a3ef76d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7972058715c26559dff9c9ae2a3ef76d">&#9670;&#160;</a></span>power()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::power </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Raise elements of a to the power of b element-wise. </p>
</div>
</div>
<a id="ga4a09b7241d564d92548bc2773eb1d544" name="ga4a09b7241d564d92548bc2773eb1d544"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a09b7241d564d92548bc2773eb1d544">&#9670;&#160;</a></span>prod() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The product of all elements of the array. </p>
</div>
</div>
<a id="ga2b3935108f641e20a70dbf63f540d970" name="ga2b3935108f641e20a70dbf63f540d970"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b3935108f641e20a70dbf63f540d970">&#9670;&#160;</a></span>prod() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The product of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga8a10a10b81c69996d0aca8ba401f8ff0" name="ga8a10a10b81c69996d0aca8ba401f8ff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a10a10b81c69996d0aca8ba401f8ff0">&#9670;&#160;</a></span>prod() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The product of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga61832191f3c42ea549cf04953edc3602" name="ga61832191f3c42ea549cf04953edc3602"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga61832191f3c42ea549cf04953edc3602">&#9670;&#160;</a></span>prod() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8e0caebf43cd65bd40e4ce97922cd06b" name="ga8e0caebf43cd65bd40e4ce97922cd06b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8e0caebf43cd65bd40e4ce97922cd06b">&#9670;&#160;</a></span>put_along_axis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::put_along_axis </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>values</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Put the values into the array at the given indices along the axis. </p>
</div>
</div>
<a id="gab43cc28690da7cdd43b43065adbd31da" name="gab43cc28690da7cdd43b43065adbd31da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab43cc28690da7cdd43b43065adbd31da">&#9670;&#160;</a></span>quantize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::tuple&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a>, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::quantize </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>w</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>group_size</em></span><span class="paramdefsep"> = </span><span class="paramdefval">64</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bits</em></span><span class="paramdefsep"> = </span><span class="paramdefval">4</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Quantize a matrix along its last axis. </p>
</div>
</div>
<a id="gabfa4208fb1f9b1cdd0abc563b19175af" name="gabfa4208fb1f9b1cdd0abc563b19175af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabfa4208fb1f9b1cdd0abc563b19175af">&#9670;&#160;</a></span>quantized_matmul()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::quantized_matmul </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>w</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>scales</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>biases</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transpose</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>group_size</em></span><span class="paramdefsep"> = </span><span class="paramdefval">64</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bits</em></span><span class="paramdefsep"> = </span><span class="paramdefval">4</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Quantized matmul multiplies x with a quantized matrix w. </p>
</div>
</div>
<a id="ga07aa8059adba5b9a8818027b8aafd31e" name="ga07aa8059adba5b9a8818027b8aafd31e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga07aa8059adba5b9a8818027b8aafd31e">&#9670;&#160;</a></span>radians()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::radians </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert the elements of an array from Degrees to Radians. </p>
</div>
</div>
<a id="gaf8913cabeb9fb193ba687aaeb2087764" name="gaf8913cabeb9fb193ba687aaeb2087764"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf8913cabeb9fb193ba687aaeb2087764">&#9670;&#160;</a></span>real()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::real </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga4d29556bb93e2f66916116cf1f062b36" name="ga4d29556bb93e2f66916116cf1f062b36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4d29556bb93e2f66916116cf1f062b36">&#9670;&#160;</a></span>reciprocal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::reciprocal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The reciprocal (1/x) of the elements in an array. </p>
</div>
</div>
<a id="ga99f5c904f724156a814d7817188351d2" name="ga99f5c904f724156a814d7817188351d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99f5c904f724156a814d7817188351d2">&#9670;&#160;</a></span>remainder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::remainder </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the element-wise remainder of division. </p>
</div>
</div>
<a id="gab49e3a687e826554ed1574186e8ae974" name="gab49e3a687e826554ed1574186e8ae974"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab49e3a687e826554ed1574186e8ae974">&#9670;&#160;</a></span>repeat() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::repeat </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>repeats</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Repeat an array along an axis. </p>
</div>
</div>
<a id="ga4f75f5d5db999f02f43ecbc6dccf3ba6" name="ga4f75f5d5db999f02f43ecbc6dccf3ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f75f5d5db999f02f43ecbc6dccf3ba6">&#9670;&#160;</a></span>repeat() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::repeat </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>repeats</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga084f03ce2b22258afb7c8b45e17af828" name="ga084f03ce2b22258afb7c8b45e17af828"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga084f03ce2b22258afb7c8b45e17af828">&#9670;&#160;</a></span>reshape()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::reshape </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_reshape.html">Reshape</a> an array to the given shape. </p>
</div>
</div>
<a id="gafa376ad57d38ba87378f0272dc379b23" name="gafa376ad57d38ba87378f0272dc379b23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa376ad57d38ba87378f0272dc379b23">&#9670;&#160;</a></span>right_shift()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::right_shift </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Shift bits to the right. </p>
</div>
</div>
<a id="ga9d76930fb567a7d459ff96fb851abe36" name="ga9d76930fb567a7d459ff96fb851abe36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9d76930fb567a7d459ff96fb851abe36">&#9670;&#160;</a></span>roll() <span class="overload">[1/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga79137f90bc44ac9e35f408c012701df9" name="ga79137f90bc44ac9e35f408c012701df9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga79137f90bc44ac9e35f408c012701df9">&#9670;&#160;</a></span>roll() <span class="overload">[2/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga5011d1a5735c64e5b91afa56c7e2cc02" name="ga5011d1a5735c64e5b91afa56c7e2cc02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5011d1a5735c64e5b91afa56c7e2cc02">&#9670;&#160;</a></span>roll() <span class="overload">[3/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga665f502ecc96f1f4467556b784abf9ae" name="ga665f502ecc96f1f4467556b784abf9ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga665f502ecc96f1f4467556b784abf9ae">&#9670;&#160;</a></span>roll() <span class="overload">[4/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8694ec137165752cb6d8a36a6b7c3436" name="ga8694ec137165752cb6d8a36a6b7c3436"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8694ec137165752cb6d8a36a6b7c3436">&#9670;&#160;</a></span>roll() <span class="overload">[5/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac40e48c69f9c715a767912c30836e75c" name="gac40e48c69f9c715a767912c30836e75c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac40e48c69f9c715a767912c30836e75c">&#9670;&#160;</a></span>roll() <span class="overload">[6/6]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::roll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>shift</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Roll elements along an axis and introduce them on the other side. </p>
</div>
</div>
<a id="ga2d74d43f007a069384e89d8416525331" name="ga2d74d43f007a069384e89d8416525331"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d74d43f007a069384e89d8416525331">&#9670;&#160;</a></span>round() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::round </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>decimals</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_round.html">Round</a> a floating point number. </p>
</div>
</div>
<a id="gaf18fb7e98bf8cf3b7fbc5e64c988a95b" name="gaf18fb7e98bf8cf3b7fbc5e64c988a95b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf18fb7e98bf8cf3b7fbc5e64c988a95b">&#9670;&#160;</a></span>round() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::round </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga102f23aa0b0c3d3296a321c694617aa1" name="ga102f23aa0b0c3d3296a321c694617aa1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga102f23aa0b0c3d3296a321c694617aa1">&#9670;&#160;</a></span>rsqrt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::rsqrt </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> root and reciprocal the elements of an array. </p>
</div>
</div>
<a id="gac2c2b379a3ce959dbe1c4a68f112edfe" name="gac2c2b379a3ce959dbe1c4a68f112edfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2c2b379a3ce959dbe1c4a68f112edfe">&#9670;&#160;</a></span>scatter() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gad438be8f90bae9d37c6853b8f4225d61" name="gad438be8f90bae9d37c6853b8f4225d61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad438be8f90bae9d37c6853b8f4225d61">&#9670;&#160;</a></span>scatter() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> updates to the given indices. </p>
<p>The parameters <code>indices</code> and <code>axes</code> determine the locations of <code>a</code> that are updated with the values in <code>updates</code>. Assuming 1-d <code>indices</code> for simplicity, <code>indices[i]</code> are the indices on axis <code>axes[i]</code> to which the values in <code>updates</code> will be applied. Note each array in <code>indices</code> is assigned to a corresponding axis and hence <code>indices.size() == axes.size()</code>. If an index/axis pair is not provided then indices along that axis are assumed to be zero.</p>
<p>Note the rank of <code>updates</code> must be equal to the sum of the rank of the broadcasted <code>indices</code> and the rank of <code>a</code>. In other words, assuming the arrays in <code>indices</code> have the same shape, <code>updates.ndim() == indices[0].ndim() + a.ndim()</code>. The leading dimensions of <code>updates</code> correspond to the indices, and the remaining <code>a.ndim()</code> dimensions are the values that will be applied to the given location in <code>a</code>.</p>
<p>For example:</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> in = <a class="code hl_function" href="#gae2cace3b388cec4e520659a91879e1c1">zeros</a>({4, 4}, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>);</div>
<div class="line"><span class="keyword">auto</span> indices = array({2});</div>
<div class="line"><span class="keyword">auto</span> updates = <a class="code hl_function" href="#ga084f03ce2b22258afb7c8b45e17af828">reshape</a>(<a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange</a>(1, 3, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>), {1, 1, 2});</div>
<div class="line">std::vector&lt;int&gt; axes{0};</div>
<div class="line"> </div>
<div class="line"><span class="keyword">auto</span> out = <a class="code hl_function" href="#gad438be8f90bae9d37c6853b8f4225d61">scatter</a>(in, {indices}, updates, axes);</div>
<div class="ttc" id="agroup__ops_html_ga084f03ce2b22258afb7c8b45e17af828"><div class="ttname"><a href="#ga084f03ce2b22258afb7c8b45e17af828">mlx::core::reshape</a></div><div class="ttdeci">array reshape(const array &amp;a, Shape shape, StreamOrDevice s={})</div><div class="ttdoc">Reshape an array to the given shape.</div></div>
<div class="ttc" id="agroup__ops_html_gad438be8f90bae9d37c6853b8f4225d61"><div class="ttname"><a href="#gad438be8f90bae9d37c6853b8f4225d61">mlx::core::scatter</a></div><div class="ttdeci">array scatter(const array &amp;a, const std::vector&lt; array &gt; &amp;indices, const array &amp;updates, const std::vector&lt; int &gt; &amp;axes, StreamOrDevice s={})</div><div class="ttdoc">Scatter updates to the given indices.</div></div>
<div class="ttc" id="agroup__ops_html_gae2cace3b388cec4e520659a91879e1c1"><div class="ttname"><a href="#gae2cace3b388cec4e520659a91879e1c1">mlx::core::zeros</a></div><div class="ttdeci">array zeros(const Shape &amp;shape, Dtype dtype, StreamOrDevice s={})</div><div class="ttdoc">Fill an array of the given shape with zeros.</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a369aa886219b83cf219e7a7862ce260b"><div class="ttname"><a href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">mlx::core::arange</a></div><div class="ttdeci">void arange(const std::vector&lt; array &gt; &amp;inputs, array &amp;out, double start, double step)</div><div class="ttdef"><b>Definition</b> arange.h:24</div></div>
<div class="ttc" id="anamespacemlx_1_1core_html_a6894543b340321193dfb8052c438a319"><div class="ttname"><a href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">mlx::core::float32</a></div><div class="ttdeci">constexpr Dtype float32</div><div class="ttdef"><b>Definition</b> dtype.h:80</div></div>
</div><!-- fragment --><p>will produce:</p>
<div class="fragment"><div class="line"><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>([[0, 0, 0, 0],</div>
<div class="line"> [0, 0, 0, 0],</div>
<div class="line"> [1, 2, 0, 0],</div>
<div class="line"> [0, 0, 0, 0]], dtype=<a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>)</div>
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
</div><!-- fragment --><p>This scatters the two-element row vector <code>[1, 2]</code> starting at the <code>(2, 0)</code> position of <code>a</code>.</p>
<p>Adding another element to <code>indices</code> will scatter into another location of <code>a</code>. We also have to add an another update for the new index:</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> in = <a class="code hl_function" href="#gae2cace3b388cec4e520659a91879e1c1">zeros</a>({4, 4}, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>);</div>
<div class="line"><span class="keyword">auto</span> indices = array({2, 0});</div>
<div class="line"><span class="keyword">auto</span> updates = <a class="code hl_function" href="#ga084f03ce2b22258afb7c8b45e17af828">reshape</a>(<a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange</a>(1, 5, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>), {2, 1, 2});</div>
<div class="line">std::vector&lt;int&gt; axes{0};</div>
<div class="line"> </div>
<div class="line"><span class="keyword">auto</span> out = <a class="code hl_function" href="#gad438be8f90bae9d37c6853b8f4225d61">scatter</a>(in, {indices}, updates, axes):</div>
</div><!-- fragment --><p>will produce:</p>
<div class="fragment"><div class="line"><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>([[3, 4, 0, 0],</div>
<div class="line"> [0, 0, 0, 0],</div>
<div class="line"> [1, 2, 0, 0],</div>
<div class="line"> [0, 0, 0, 0]], dtype=<a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>)</div>
</div><!-- fragment --><p>To control the scatter location on an additional axis, add another index array to <code>indices</code> and another axis to <code>axes</code>:</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> in = <a class="code hl_function" href="#gae2cace3b388cec4e520659a91879e1c1">zeros</a>({4, 4}, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>);</div>
<div class="line"><span class="keyword">auto</span> indices = std::vector{array({2, 0}), array({1, 2})};</div>
<div class="line"><span class="keyword">auto</span> updates = <a class="code hl_function" href="#ga084f03ce2b22258afb7c8b45e17af828">reshape</a>(<a class="code hl_function" href="namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b">arange</a>(1, 5, <a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>), {2, 1, 2});</div>
<div class="line">std::vector&lt;int&gt; axes{0, 1};</div>
<div class="line"> </div>
<div class="line"><span class="keyword">auto</span> out = <a class="code hl_function" href="#gad438be8f90bae9d37c6853b8f4225d61">scatter</a>(in, indices, updates, axes);</div>
</div><!-- fragment --><p>will produce:</p>
<div class="fragment"><div class="line"><a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>([[0, 0, 3, 4],</div>
<div class="line"> [0, 0, 0, 0],</div>
<div class="line"> [0, 1, 2, 0],</div>
<div class="line"> [0, 0, 0, 0]], dtype=<a class="code hl_variable" href="namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319">float32</a>)</div>
</div><!-- fragment --><p>Items in indices are broadcasted together. This means:</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> indices = std::vector{<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>({2, 0}), array({1})};</div>
</div><!-- fragment --><p>is equivalent to:</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> indices = std::vector{<a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>({2, 0}), array({1, 1})};</div>
</div><!-- fragment --><p>Note, <code>scatter</code> does not perform bounds checking on the indices and updates. Out-of-bounds accesses on <code>a</code> are undefined and typically result in unintended or invalid memory writes. </p>
</div>
</div>
<a id="gac13318518e5703f1273c5366eb523a5a" name="gac13318518e5703f1273c5366eb523a5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac13318518e5703f1273c5366eb523a5a">&#9670;&#160;</a></span>scatter_add() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gacd14c2b5cfebf343fc2d672722f8d174" name="gacd14c2b5cfebf343fc2d672722f8d174"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd14c2b5cfebf343fc2d672722f8d174">&#9670;&#160;</a></span>scatter_add() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and add updates to given indices. </p>
</div>
</div>
<a id="gab3fd98c0d06b84b836f93bddbd7a2a0d" name="gab3fd98c0d06b84b836f93bddbd7a2a0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab3fd98c0d06b84b836f93bddbd7a2a0d">&#9670;&#160;</a></span>scatter_add_axis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_add_axis </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>values</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_add.html">Add</a> the values into the array at the given indices along the axis. </p>
</div>
</div>
<a id="ga9adda5f9202bb3486e4d9e1114e3a56f" name="ga9adda5f9202bb3486e4d9e1114e3a56f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9adda5f9202bb3486e4d9e1114e3a56f">&#9670;&#160;</a></span>scatter_max() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga05881a4157cd113c9392d168a79e6673" name="ga05881a4157cd113c9392d168a79e6673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05881a4157cd113c9392d168a79e6673">&#9670;&#160;</a></span>scatter_max() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_max </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and max updates to given linear indices. </p>
</div>
</div>
<a id="ga51fa762a997c243ca7a19e1ed3e83199" name="ga51fa762a997c243ca7a19e1ed3e83199"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51fa762a997c243ca7a19e1ed3e83199">&#9670;&#160;</a></span>scatter_min() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga0ca16b7579dfc899f3f7fd40245ba7c5" name="ga0ca16b7579dfc899f3f7fd40245ba7c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0ca16b7579dfc899f3f7fd40245ba7c5">&#9670;&#160;</a></span>scatter_min() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_min </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and min updates to given linear indices. </p>
</div>
</div>
<a id="gaf83c53c453faa9083ba27e4b97539339" name="gaf83c53c453faa9083ba27e4b97539339"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf83c53c453faa9083ba27e4b97539339">&#9670;&#160;</a></span>scatter_prod() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3708b5bcb61e2c63d213c4ce6ad0ffc0" name="ga3708b5bcb61e2c63d213c4ce6ad0ffc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3708b5bcb61e2c63d213c4ce6ad0ffc0">&#9670;&#160;</a></span>scatter_prod() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::scatter_prod </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>updates</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_scatter.html">Scatter</a> and prod updates to given indices. </p>
</div>
</div>
<a id="ga708abf8f79609cd6831db7c38cafac0e" name="ga708abf8f79609cd6831db7c38cafac0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga708abf8f79609cd6831db7c38cafac0e">&#9670;&#160;</a></span>sigmoid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sigmoid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Element-wise logistic sigmoid of the array: <code>1 / (1 + exp(-x)</code>. </p>
</div>
</div>
<a id="ga20f1a1a8c0cd6206485f9363f3915faa" name="ga20f1a1a8c0cd6206485f9363f3915faa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20f1a1a8c0cd6206485f9363f3915faa">&#9670;&#160;</a></span>sign()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sign </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The sign of the elements in an array. </p>
</div>
</div>
<a id="gaebf0a73ad3732fba39df37826c235692" name="gaebf0a73ad3732fba39df37826c235692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebf0a73ad3732fba39df37826c235692">&#9670;&#160;</a></span>sin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sine of the elements of an array. </p>
</div>
</div>
<a id="gaf532375c6563dbd6e329bdedf0224dd7" name="gaf532375c6563dbd6e329bdedf0224dd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf532375c6563dbd6e329bdedf0224dd7">&#9670;&#160;</a></span>sinh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sinh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Hyperbolic Sine of the elements of an array. </p>
</div>
</div>
<a id="ga797996e53ea34317a55dc2f314736b89" name="ga797996e53ea34317a55dc2f314736b89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga797996e53ea34317a55dc2f314736b89">&#9670;&#160;</a></span>slice() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>slice_size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array with dynamic starting indices. </p>
</div>
</div>
<a id="ga29718cd5005dbcde0396b6fd65cc041d" name="ga29718cd5005dbcde0396b6fd65cc041d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29718cd5005dbcde0396b6fd65cc041d">&#9670;&#160;</a></span>slice() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array. </p>
</div>
</div>
<a id="gaec56dcb94d5e7f7b885fb60b4bf4aa9d" name="gaec56dcb94d5e7f7b885fb60b4bf4aa9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec56dcb94d5e7f7b885fb60b4bf4aa9d">&#9670;&#160;</a></span>slice() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_slice.html">Slice</a> an array with a stride of 1 in each dimension. </p>
</div>
</div>
<a id="gaedcbdf4040f5e6a02a74b1ed1c6c2ebc" name="gaedcbdf4040f5e6a02a74b1ed1c6c2ebc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaedcbdf4040f5e6a02a74b1ed1c6c2ebc">&#9670;&#160;</a></span>slice() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::initializer_list&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gacd906ffb96149a4998c321cbf2231d7e" name="gacd906ffb96149a4998c321cbf2231d7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd906ffb96149a4998c321cbf2231d7e">&#9670;&#160;</a></span>slice_update() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice_update </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>src</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>update</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Update a slice from the source array with dynamic starting indices. </p>
</div>
</div>
<a id="ga7b7e786985d27789aaed20bb2f9509be" name="ga7b7e786985d27789aaed20bb2f9509be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b7e786985d27789aaed20bb2f9509be">&#9670;&#160;</a></span>slice_update() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice_update </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>src</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>update</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Update a slice from the source array. </p>
</div>
</div>
<a id="ga3b7c6136ae5a38dd6457b65c1833aa67" name="ga3b7c6136ae5a38dd6457b65c1833aa67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b7c6136ae5a38dd6457b65c1833aa67">&#9670;&#160;</a></span>slice_update() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::slice_update </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>src</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>update</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>stop</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Update a slice from the source array with stride 1 in each dimension. </p>
</div>
</div>
<a id="ga1ae3614d07d873892a530d14c3857d0b" name="ga1ae3614d07d873892a530d14c3857d0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ae3614d07d873892a530d14c3857d0b">&#9670;&#160;</a></span>softmax() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::softmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>precise</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. </p>
</div>
</div>
<a id="ga7e9bb08b43c8fd0444b7d3c9e09dc1c6" name="ga7e9bb08b43c8fd0444b7d3c9e09dc1c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6">&#9670;&#160;</a></span>softmax() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::softmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>precise</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. </p>
</div>
</div>
<a id="ga06f570d73716a24303e6de3aaba4457b" name="ga06f570d73716a24303e6de3aaba4457b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06f570d73716a24303e6de3aaba4457b">&#9670;&#160;</a></span>softmax() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::softmax </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>precise</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_softmax.html">Softmax</a> of an array. </p>
</div>
</div>
<a id="gaae1bc47aa737f705d0e5884270063fea" name="gaae1bc47aa737f705d0e5884270063fea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae1bc47aa737f705d0e5884270063fea">&#9670;&#160;</a></span>sort() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sort </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a sorted copy of the array along a given axis. </p>
</div>
</div>
<a id="ga7fb616054665b3c2d61fa234f501f079" name="ga7fb616054665b3c2d61fa234f501f079"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7fb616054665b3c2d61fa234f501f079">&#9670;&#160;</a></span>sort() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sort </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a sorted copy of the flattened array. </p>
</div>
</div>
<a id="ga19005414e7d8020cd6e94e06bf399b09" name="ga19005414e7d8020cd6e94e06bf399b09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19005414e7d8020cd6e94e06bf399b09">&#9670;&#160;</a></span>split() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::split </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga9ea089f42b9940510619052b7166d9ac" name="ga9ea089f42b9940510619052b7166d9ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9ea089f42b9940510619052b7166d9ac">&#9670;&#160;</a></span>split() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::split </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7534290bceab5fb3831a05d67bebce7d" name="ga7534290bceab5fb3831a05d67bebce7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7534290bceab5fb3831a05d67bebce7d">&#9670;&#160;</a></span>split() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::split </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>num_splits</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_split.html">Split</a> an array into sub-arrays along a given axis. </p>
</div>
</div>
<a id="ga56882d24e5fde59c266774624c892d41" name="ga56882d24e5fde59c266774624c892d41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga56882d24e5fde59c266774624c892d41">&#9670;&#160;</a></span>split() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; mlx::core::split </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>num_splits</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga297f853b3d90ec8ae81263977ba2ddb1" name="ga297f853b3d90ec8ae81263977ba2ddb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga297f853b3d90ec8ae81263977ba2ddb1">&#9670;&#160;</a></span>sqrt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sqrt </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> root the elements of an array. </p>
</div>
</div>
<a id="ga1234e4c39cfa79f19d4bdb5b8ea4d45e" name="ga1234e4c39cfa79f19d4bdb5b8ea4d45e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1234e4c39cfa79f19d4bdb5b8ea4d45e">&#9670;&#160;</a></span>square()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::square </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_square.html">Square</a> the elements of an array. </p>
</div>
</div>
<a id="ga710daa7ec721bd4d3f326082cb195576" name="ga710daa7ec721bd4d3f326082cb195576"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga710daa7ec721bd4d3f326082cb195576">&#9670;&#160;</a></span>squeeze() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::squeeze </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove singleton dimensions at the given axes. </p>
</div>
</div>
<a id="ga700dd51b77379a3d2260a55783e8ebf3" name="ga700dd51b77379a3d2260a55783e8ebf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga700dd51b77379a3d2260a55783e8ebf3">&#9670;&#160;</a></span>squeeze() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::squeeze </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove singleton dimensions at the given axis. </p>
</div>
</div>
<a id="ga58bad3c61fd85b95927a987ba1cf5dad" name="ga58bad3c61fd85b95927a987ba1cf5dad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58bad3c61fd85b95927a987ba1cf5dad">&#9670;&#160;</a></span>squeeze() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::squeeze </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove all singleton dimensions. </p>
</div>
</div>
<a id="gaf8f2ec2b98a4b59eca73d7471df6e032" name="gaf8f2ec2b98a4b59eca73d7471df6e032"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf8f2ec2b98a4b59eca73d7471df6e032">&#9670;&#160;</a></span>stack() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::stack </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arrays</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Stack arrays along a new axis. </p>
</div>
</div>
<a id="ga82216209dce901296fc737fe8efa5c94" name="ga82216209dce901296fc737fe8efa5c94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga82216209dce901296fc737fe8efa5c94">&#9670;&#160;</a></span>stack() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::stack </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arrays</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga2a466024f8061febc0a64be557644cb0" name="ga2a466024f8061febc0a64be557644cb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a466024f8061febc0a64be557644cb0">&#9670;&#160;</a></span>std() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::std </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the standard deviation of the elements of an array. </p>
</div>
</div>
<a id="ga7f649970bf38b987b6ef847054f3c2f8" name="ga7f649970bf38b987b6ef847054f3c2f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f649970bf38b987b6ef847054f3c2f8">&#9670;&#160;</a></span>std() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::std </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the standard deviatoin of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga62721a206df671ef5797449eea97af9f" name="ga62721a206df671ef5797449eea97af9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62721a206df671ef5797449eea97af9f">&#9670;&#160;</a></span>std() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::std </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the standard deviation of the elements of an array along the given axis. </p>
</div>
</div>
<a id="gafdcb04d77c64405a3990078a77dd984c" name="gafdcb04d77c64405a3990078a77dd984c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafdcb04d77c64405a3990078a77dd984c">&#9670;&#160;</a></span>std() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::std </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga36bc28f1deb2fe668ca9ae1e447b6b1f" name="ga36bc28f1deb2fe668ca9ae1e447b6b1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga36bc28f1deb2fe668ca9ae1e447b6b1f">&#9670;&#160;</a></span>stop_gradient()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::stop_gradient </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Stop the flow of gradients. </p>
</div>
</div>
<a id="ga196c240d3d0fcbb4713802c485e15133" name="ga196c240d3d0fcbb4713802c485e15133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga196c240d3d0fcbb4713802c485e15133">&#9670;&#160;</a></span>subtract()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::subtract </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_subtract.html">Subtract</a> two arrays. </p>
</div>
</div>
<a id="gade905ee92eb6ab7edfc312aeddfbaeb6" name="gade905ee92eb6ab7edfc312aeddfbaeb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade905ee92eb6ab7edfc312aeddfbaeb6">&#9670;&#160;</a></span>sum() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sums the elements of an array. </p>
</div>
</div>
<a id="gaccd0a6be2c5b5128fdc2d87b5c8e67f4" name="gaccd0a6be2c5b5128fdc2d87b5c8e67f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaccd0a6be2c5b5128fdc2d87b5c8e67f4">&#9670;&#160;</a></span>sum() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sums the elements of an array along the given axes. </p>
</div>
</div>
<a id="gafcd39b0bf39a56c26a967981c7ab8a8d" name="gafcd39b0bf39a56c26a967981c7ab8a8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafcd39b0bf39a56c26a967981c7ab8a8d">&#9670;&#160;</a></span>sum() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sums the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga3627754d7868487bdab1bd83f05d9c81" name="ga3627754d7868487bdab1bd83f05d9c81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3627754d7868487bdab1bd83f05d9c81">&#9670;&#160;</a></span>sum() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::sum </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gabc46eed81ab6c6247903e4ec0c4ec1fb" name="gabc46eed81ab6c6247903e4ec0c4ec1fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc46eed81ab6c6247903e4ec0c4ec1fb">&#9670;&#160;</a></span>swapaxes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::swapaxes </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis1</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis2</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Swap two axes of an array. </p>
</div>
</div>
<a id="gac2fc270882fcfa81eb8bd068cc0d86d7" name="gac2fc270882fcfa81eb8bd068cc0d86d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2fc270882fcfa81eb8bd068cc0d86d7">&#9670;&#160;</a></span>take() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::take </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Take array slices at the given indices of the specified axis. </p>
</div>
</div>
<a id="ga45d0f423a5e030440ef753f36c5aabf1" name="ga45d0f423a5e030440ef753f36c5aabf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga45d0f423a5e030440ef753f36c5aabf1">&#9670;&#160;</a></span>take() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::take </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Take array entries at the given indices treating the array as flattened. </p>
</div>
</div>
<a id="ga731af77b7de547a73336f91c829c40b4" name="ga731af77b7de547a73336f91c829c40b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga731af77b7de547a73336f91c829c40b4">&#9670;&#160;</a></span>take() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::take </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7b3c9b4c8ee02dc23cfd7dcd855dbf20" name="ga7b3c9b4c8ee02dc23cfd7dcd855dbf20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b3c9b4c8ee02dc23cfd7dcd855dbf20">&#9670;&#160;</a></span>take() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::take </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gae0a81d4f983e296a87302e36d65bfc76" name="gae0a81d4f983e296a87302e36d65bfc76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0a81d4f983e296a87302e36d65bfc76">&#9670;&#160;</a></span>take_along_axis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::take_along_axis </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>indices</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Take array entries given indices along the axis. </p>
</div>
</div>
<a id="ga3f10e89a4bcb1a8fa44fb33b8d1176a5" name="ga3f10e89a4bcb1a8fa44fb33b8d1176a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f10e89a4bcb1a8fa44fb33b8d1176a5">&#9670;&#160;</a></span>tan()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tan </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tangent of the elements of an array. </p>
</div>
</div>
<a id="ga5efb19aa0dfa42d8a3d5e1dfd569cd6d" name="ga5efb19aa0dfa42d8a3d5e1dfd569cd6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5efb19aa0dfa42d8a3d5e1dfd569cd6d">&#9670;&#160;</a></span>tanh()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tanh </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Hyperbolic Tangent of the elements of an array. </p>
</div>
</div>
<a id="gaf5c9735f4690327e1500e04e728fae70" name="gaf5c9735f4690327e1500e04e728fae70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf5c9735f4690327e1500e04e728fae70">&#9670;&#160;</a></span>tensordot() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tensordot </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>axis</em></span><span class="paramdefsep"> = </span><span class="paramdefval">2</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a contraction of a and b over multiple dimensions. </p>
</div>
</div>
<a id="gad7fe00b566f89d607639c1a497cabbc6" name="gad7fe00b566f89d607639c1a497cabbc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7fe00b566f89d607639c1a497cabbc6">&#9670;&#160;</a></span>tensordot() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tensordot </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes_a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes_b</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gab105a57b9a4d84496fe1e4d60e13d361" name="gab105a57b9a4d84496fe1e4d60e13d361"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab105a57b9a4d84496fe1e4d60e13d361">&#9670;&#160;</a></span>tile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tile </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>reps</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga35b8436c79ff953f6c809598b646f498" name="ga35b8436c79ff953f6c809598b646f498"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga35b8436c79ff953f6c809598b646f498">&#9670;&#160;</a></span>topk() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::topk </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns topk elements of the array along a given axis. </p>
</div>
</div>
<a id="ga5487dd887c43e5341f3e68ffe47f0f5a" name="ga5487dd887c43e5341f3e68ffe47f0f5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5487dd887c43e5341f3e68ffe47f0f5a">&#9670;&#160;</a></span>topk() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::topk </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns topk elements of the flattened array. </p>
</div>
</div>
<a id="gabf786129c7660ed8d5acb5499bc6fefd" name="gabf786129c7660ed8d5acb5499bc6fefd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf786129c7660ed8d5acb5499bc6fefd">&#9670;&#160;</a></span>trace() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::trace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>offset</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis1</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis2</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the sum along a specified diagonal in the given array. </p>
</div>
</div>
<a id="ga5ed43c2dbf7d6cbddbaa2fd682deaafd" name="ga5ed43c2dbf7d6cbddbaa2fd682deaafd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ed43c2dbf7d6cbddbaa2fd682deaafd">&#9670;&#160;</a></span>trace() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::trace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>offset</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis1</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis2</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaf25c00108feaafaa6350a4434cb0062e" name="gaf25c00108feaafaa6350a4434cb0062e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf25c00108feaafaa6350a4434cb0062e">&#9670;&#160;</a></span>trace() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::trace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga260ac332956f3a6bf1dfdb9095c84dc5" name="ga260ac332956f3a6bf1dfdb9095c84dc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga260ac332956f3a6bf1dfdb9095c84dc5">&#9670;&#160;</a></span>transpose() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::transpose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::initializer_list&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac1869f3b7094869b44fe7ac4ce58638b" name="gac1869f3b7094869b44fe7ac4ce58638b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1869f3b7094869b44fe7ac4ce58638b">&#9670;&#160;</a></span>transpose() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::transpose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Permutes the dimensions according to the given axes. </p>
</div>
</div>
<a id="ga68da0176fefbe0c0096783c6fd926c6a" name="ga68da0176fefbe0c0096783c6fd926c6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga68da0176fefbe0c0096783c6fd926c6a">&#9670;&#160;</a></span>transpose() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::transpose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Permutes the dimensions in reverse order. </p>
</div>
</div>
<a id="gac19a1bd6ed6d5c7bc9d258820189dbb5" name="gac19a1bd6ed6d5c7bc9d258820189dbb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac19a1bd6ed6d5c7bc9d258820189dbb5">&#9670;&#160;</a></span>tri() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tri </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>type</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga4f3389e5b89e70e862e7d2b40d6c7f78" name="ga4f3389e5b89e70e862e7d2b40d6c7f78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f3389e5b89e70e862e7d2b40d6c7f78">&#9670;&#160;</a></span>tri() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tri </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>n</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>m</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>type</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga83e0bb45dc770cf014531d873b78c5a2" name="ga83e0bb45dc770cf014531d873b78c5a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83e0bb45dc770cf014531d873b78c5a2">&#9670;&#160;</a></span>tril()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::tril </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gaa9df5917876eeb0cb28b7fa81f880412" name="gaa9df5917876eeb0cb28b7fa81f880412"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa9df5917876eeb0cb28b7fa81f880412">&#9670;&#160;</a></span>triu()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::triu </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1array.html">array</a></td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>k</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga666bcc2187a144247e8c0c224b016625" name="ga666bcc2187a144247e8c0c224b016625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga666bcc2187a144247e8c0c224b016625">&#9670;&#160;</a></span>unflatten()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::unflatten </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a></td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_unflatten.html">Unflatten</a> the axis to the given shape. </p>
</div>
</div>
<a id="ga7e133df686439588a8cd1fb10ce0c6e9" name="ga7e133df686439588a8cd1fb10ce0c6e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7e133df686439588a8cd1fb10ce0c6e9">&#9670;&#160;</a></span>var() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the variance of the elements of an array. </p>
</div>
</div>
<a id="ga78ddeb966cbe7a5b0aa17e1de43025f2" name="ga78ddeb966cbe7a5b0aa17e1de43025f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78ddeb966cbe7a5b0aa17e1de43025f2">&#9670;&#160;</a></span>var() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>axes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the variance of the elements of an array along the given axes. </p>
</div>
</div>
<a id="ga4fbf3e3f98f2e4956faf87af320aa9d0" name="ga4fbf3e3f98f2e4956faf87af320aa9d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4fbf3e3f98f2e4956faf87af320aa9d0">&#9670;&#160;</a></span>var() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>axis</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>keepdims</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ddof</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the variance of the elements of an array along the given axis. </p>
</div>
</div>
<a id="ga7d7b38d118fa2613214078ef0f7d5a42" name="ga7d7b38d118fa2613214078ef0f7d5a42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d7b38d118fa2613214078ef0f7d5a42">&#9670;&#160;</a></span>var() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3602aa91b7b124a0b41ec1b2137a1b02" name="ga3602aa91b7b124a0b41ec1b2137a1b02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3602aa91b7b124a0b41ec1b2137a1b02">&#9670;&#160;</a></span>view()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::view </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;</td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga8a2056f8c9bb30914c40bcf509386491" name="ga8a2056f8c9bb30914c40bcf509386491"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a2056f8c9bb30914c40bcf509386491">&#9670;&#160;</a></span>where()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::where </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>condition</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>y</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classmlx_1_1core_1_1_select.html">Select</a> from x or y depending on condition. </p>
</div>
</div>
<a id="gae2cace3b388cec4e520659a91879e1c1" name="gae2cace3b388cec4e520659a91879e1c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae2cace3b388cec4e520659a91879e1c1">&#9670;&#160;</a></span>zeros() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::zeros </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a></td> <td class="paramname"><span class="paramname"><em>dtype</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Fill an array of the given shape with zeros. </p>
</div>
</div>
<a id="gac8aa722f5e798819b7091693173f1f36" name="gac8aa722f5e798819b7091693173f1f36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8aa722f5e798819b7091693173f1f36">&#9670;&#160;</a></span>zeros() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::zeros </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gafbb857094d784b38c78683a091ffdbde" name="gafbb857094d784b38c78683a091ffdbde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafbb857094d784b38c78683a091ffdbde">&#9670;&#160;</a></span>zeros_like()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmlx_1_1core_1_1array.html">array</a> mlx::core::zeros_like </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a></td> <td class="paramname"><span class="paramname"><em>s</em></span><span class="paramdefsep"> = </span><span class="paramdefval">{}</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>