blob: cfd9f0ccf078b0db59dfa4823b7db1958309d921 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.6" name="generator"/>
<title>mxnet: mxnet::common Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="dynsections.js" type="text/javascript"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script src="search/search.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</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 cellpadding="0" cellspacing="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div class="tabs" id="navrow1">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div class="MSearchBoxInactive" id="MSearchBox">
<span class="left">
<img alt="" id="MSearchSelect" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()" src="search/mag_sel.png"/>
<input accesskey="S" id="MSearchField" onblur="searchBox.OnSearchFieldFocus(false)" onfocus="searchBox.OnSearchFieldFocus(true)" onkeyup="searchBox.OnSearchFieldChange(event)" type="text" value="Search"/>
</span><span class="right">
<a href="javascript:searchBox.CloseResultsWindow()" id="MSearchClose"><img alt="" border="0" id="MSearchCloseImg" src="search/close.png"/></a>
</span>
</div>
</li>
</ul>
</div>
<div class="tabs2" id="navrow2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
<ul>
<li class="navelem"><a class="el" href="namespacemxnet.html">mxnet</a></li><li class="navelem"><a class="el" href="namespacemxnet_1_1common.html">common</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> |
<a href="#nested-classes">Classes</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">mxnet::common Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacemxnet_1_1common_1_1cuda"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common_1_1cuda.html">cuda</a></td></tr>
<tr class="memdesc:namespacemxnet_1_1common_1_1cuda"><td class="mdescLeft"> </td><td class="mdescRight">common utils for cuda <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:namespacemxnet_1_1common_1_1helper"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common_1_1helper.html">helper</a></td></tr>
<tr class="memdesc:namespacemxnet_1_1common_1_1helper"><td class="mdescLeft"> </td><td class="mdescRight">Helper functions. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:namespacemxnet_1_1common_1_1random"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common_1_1random.html">random</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1common_1_1LazyAllocArray.html">LazyAllocArray</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1common_1_1ObjectPool.html">ObjectPool</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Object pool for fast allocation and deallocation. <a href="classmxnet_1_1common_1_1ObjectPool.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1common_1_1ObjectPoolAllocatable.html">ObjectPoolAllocatable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Helper trait class for easy allocation and deallocation. <a href="structmxnet_1_1common_1_1ObjectPoolAllocatable.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1common_1_1StaticArray.html">StaticArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Static array. This code is borrowed from struct Shape&lt;ndim&gt;, except that users can specify the type of the elements of the statically allocated array. The object instance of the struct is copyable between CPU and GPU. <a href="structmxnet_1_1common_1_1StaticArray.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1common_1_1csr__indptr__check.html">csr_indptr_check</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">IndPtr should be non-negative, in non-decreasing order, start with 0 and end with value equal with size of indices. <a href="structmxnet_1_1common_1_1csr__indptr__check.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1common_1_1csr__idx__check.html">csr_idx_check</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Indices should be non-negative, less than the number of columns and in ascending order per row. <a href="structmxnet_1_1common_1_1csr__idx__check.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1common_1_1rsp__idx__check.html">rsp_idx_check</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Indices of RSPNDArray should be non-negative, less than the size of first dimension and in ascending order. <a href="structmxnet_1_1common_1_1rsp__idx__check.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aceba8f2d6de65796966d7f1d341dcf33"><td align="right" class="memItemLeft" valign="top">typedef std::mt19937 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aceba8f2d6de65796966d7f1d341dcf33">RANDOM_ENGINE</a></td></tr>
<tr class="memdesc:aceba8f2d6de65796966d7f1d341dcf33"><td class="mdescLeft"> </td><td class="mdescRight">Random <a class="el" href="classmxnet_1_1Engine.html" title="Dependency engine that schedules operations. ">Engine</a>. <a href="#aceba8f2d6de65796966d7f1d341dcf33">More...</a><br/></td></tr>
<tr class="separator:aceba8f2d6de65796966d7f1d341dcf33"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2262a78f3d80b9adeb3b517246fe4335"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2262a78f3d80b9adeb3b517246fe4335">SetupDefaultBlobsIn</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;src, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *bufs, std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; *blobs, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *temp_src, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *temp_dst, std::unordered_map&lt; uint32_t, uint32_t &gt; *idx_map)</td></tr>
<tr class="separator:a2262a78f3d80b9adeb3b517246fe4335"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a566cc951d7165f06b89875ba718f211f"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a566cc951d7165f06b89875ba718f211f">SetupDefaultBlobsOut</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;src, const std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; &amp;req, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *bufs, std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; *blobs, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *temp_src, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *temp_dst)</td></tr>
<tr class="separator:a566cc951d7165f06b89875ba718f211f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab65aad99a6f2c0edac9a2c07a39a3977"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ab65aad99a6f2c0edac9a2c07a39a3977">SetupDefaultBlobsInOut</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;ndinputs, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;ndoutputs, const std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; &amp;req, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *in_bufs, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *out_bufs, std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; *input_blobs, std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; *output_blobs, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *pre_temp_src, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *pre_temp_dst, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *post_temp_src, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *post_temp_dst, std::unordered_map&lt; uint32_t, uint32_t &gt; *in_temp_idx_map, const std::vector&lt; uint32_t &gt; &amp;mutate_idx)</td></tr>
<tr class="separator:ab65aad99a6f2c0edac9a2c07a39a3977"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a12f6653ed0571a1bc16afdfcf525c841"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a12f6653ed0571a1bc16afdfcf525c841">CastNonDefaultStorage</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;src, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;dst, const <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &amp;ctx, const bool is_gpu)</td></tr>
<tr class="separator:a12f6653ed0571a1bc16afdfcf525c841"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a98fda469aba84baa370e81e94c7d5b0b"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:a98fda469aba84baa370e81e94c7d5b0b"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a98fda469aba84baa370e81e94c7d5b0b">CheckFormatWrapper</a> (const <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp;rctx, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input, const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp;err_cpu, const bool full_check)</td></tr>
<tr class="separator:a98fda469aba84baa370e81e94c7d5b0b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6baaba1469561220a2484be92cc77aae"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:a6baaba1469561220a2484be92cc77aae"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a6baaba1469561220a2484be92cc77aae">CheckFormatCSRImpl</a> (const <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp;rctx, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input, const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp;err_cpu, const bool full_check)</td></tr>
<tr class="memdesc:a6baaba1469561220a2484be92cc77aae"><td class="mdescLeft"> </td><td class="mdescRight">Check the validity of CSRNDArray. <a href="#a6baaba1469561220a2484be92cc77aae">More...</a><br/></td></tr>
<tr class="separator:a6baaba1469561220a2484be92cc77aae"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afd045f69bce37692fd1e8ccb0e2ab208"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:afd045f69bce37692fd1e8ccb0e2ab208"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#afd045f69bce37692fd1e8ccb0e2ab208">CheckFormatRSPImpl</a> (const <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp;rctx, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input, const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp;err_cpu, const bool full_check)</td></tr>
<tr class="memdesc:afd045f69bce37692fd1e8ccb0e2ab208"><td class="mdescLeft"> </td><td class="mdescRight">Check the validity of RowSparseNDArray. <a href="#afd045f69bce37692fd1e8ccb0e2ab208">More...</a><br/></td></tr>
<tr class="separator:afd045f69bce37692fd1e8ccb0e2ab208"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aad9a34663862df90d3aa8683a2d9052a"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:aad9a34663862df90d3aa8683a2d9052a"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aad9a34663862df90d3aa8683a2d9052a">CheckFormatImpl</a> (const <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp;rctx, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input, const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp;err_cpu, const bool full_check)</td></tr>
<tr class="separator:aad9a34663862df90d3aa8683a2d9052a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a905e77124ee11208c40a8afd3ee42167"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:a905e77124ee11208c40a8afd3ee42167"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a905e77124ee11208c40a8afd3ee42167">SparseRetainOpForwardRspWrapper</a> (mshadow::Stream&lt; xpu &gt; *s, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input_nd, const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp;idx_data, const <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> req, <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> *output_nd)</td></tr>
<tr class="memdesc:a905e77124ee11208c40a8afd3ee42167"><td class="mdescLeft"> </td><td class="mdescRight">Pick rows specified by user input index array from a row sparse ndarray and save them in the output sparse ndarray. <a href="#a905e77124ee11208c40a8afd3ee42167">More...</a><br/></td></tr>
<tr class="separator:a905e77124ee11208c40a8afd3ee42167"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afd53ea405dcc105e6b306148009ff827"><td class="memTemplParams" colspan="2">template&lt;typename xpu &gt; </td></tr>
<tr class="memitem:afd53ea405dcc105e6b306148009ff827"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#afd53ea405dcc105e6b306148009ff827">CastStorageDispatch</a> (const <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &amp;ctx, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;input, const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp;output)</td></tr>
<tr class="separator:afd53ea405dcc105e6b306148009ff827"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2258092ce26805c0a8f65a4144c446dd"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2258092ce26805c0a8f65a4144c446dd">ContainsOnlyStorage</a> (const <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp;vstorage, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype)</td></tr>
<tr class="memdesc:a2258092ce26805c0a8f65a4144c446dd"><td class="mdescLeft"> </td><td class="mdescRight">returns true if all storage types in <code>vstorage</code> are the same as target <code>stype</code>. false is returned for empty inputs. <a href="#a2258092ce26805c0a8f65a4144c446dd">More...</a><br/></td></tr>
<tr class="separator:a2258092ce26805c0a8f65a4144c446dd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a10765e03ef091a5dd81b1b3efa4b46f4"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a10765e03ef091a5dd81b1b3efa4b46f4">ContainsOnlyStorage</a> (const <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp;vstorage, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype1, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype2, bool *has_both)</td></tr>
<tr class="memdesc:a10765e03ef091a5dd81b1b3efa4b46f4"><td class="mdescLeft"> </td><td class="mdescRight">returns true if all storage types in <code>vstorage</code> are the same as target <code>stype1</code> or `stype2'. Sets boolean if both found. false is returned for empty inputs. <a href="#a10765e03ef091a5dd81b1b3efa4b46f4">More...</a><br/></td></tr>
<tr class="separator:a10765e03ef091a5dd81b1b3efa4b46f4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9a7d1b47adce6f8291db8c3106087b90"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a9a7d1b47adce6f8291db8c3106087b90">ContainsOnlyStorage</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;ndarrays, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype)</td></tr>
<tr class="memdesc:a9a7d1b47adce6f8291db8c3106087b90"><td class="mdescLeft"> </td><td class="mdescRight">returns true if the storage types of arrays in <code>ndarrays</code> are the same as target <code>stype</code>. false is returned for empty inputs. <a href="#a9a7d1b47adce6f8291db8c3106087b90">More...</a><br/></td></tr>
<tr class="separator:a9a7d1b47adce6f8291db8c3106087b90"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4d39ea49a4b4c2aefdd106ffd2ec9a11"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a4d39ea49a4b4c2aefdd106ffd2ec9a11">ContainsOnlyStorage</a> (const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;ndarrays, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype1, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype2, bool *has_both)</td></tr>
<tr class="memdesc:a4d39ea49a4b4c2aefdd106ffd2ec9a11"><td class="mdescLeft"> </td><td class="mdescRight">returns true if the storage types of arrays in <code>ndarrays</code> are the same as targets <code>stype1</code> or <code>stype2</code>. false is returned for empty inputs. <a href="#a4d39ea49a4b4c2aefdd106ffd2ec9a11">More...</a><br/></td></tr>
<tr class="separator:a4d39ea49a4b4c2aefdd106ffd2ec9a11"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4716f6044f678090af8ae7ef3ace3a31"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a4716f6044f678090af8ae7ef3ace3a31">dispatch_mode_string</a> (const <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">DispatchMode</a> x)</td></tr>
<tr class="memdesc:a4716f6044f678090af8ae7ef3ace3a31"><td class="mdescLeft"> </td><td class="mdescRight">get string representation of dispatch_mode <a href="#a4716f6044f678090af8ae7ef3ace3a31">More...</a><br/></td></tr>
<tr class="separator:a4716f6044f678090af8ae7ef3ace3a31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab379cd302d59005010ae29aff6e55009"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ab379cd302d59005010ae29aff6e55009">stype_string</a> (const int x)</td></tr>
<tr class="memdesc:ab379cd302d59005010ae29aff6e55009"><td class="mdescLeft"> </td><td class="mdescRight">get string representation of storage_type <a href="#ab379cd302d59005010ae29aff6e55009">More...</a><br/></td></tr>
<tr class="separator:ab379cd302d59005010ae29aff6e55009"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a733ce35d109323dbf4ef1f4bc3094870"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a733ce35d109323dbf4ef1f4bc3094870">dev_type_string</a> (const int dev_type)</td></tr>
<tr class="memdesc:a733ce35d109323dbf4ef1f4bc3094870"><td class="mdescLeft"> </td><td class="mdescRight">get string representation of device type <a href="#a733ce35d109323dbf4ef1f4bc3094870">More...</a><br/></td></tr>
<tr class="separator:a733ce35d109323dbf4ef1f4bc3094870"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a40770734529b91fe60fa6b3d76043717"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a40770734529b91fe60fa6b3d76043717">operator_stype_string</a> (const nnvm::NodeAttrs &amp;attrs, const int dev_mask, const std::vector&lt; int &gt; &amp;in_attrs, const std::vector&lt; int &gt; &amp;out_attrs)</td></tr>
<tr class="memdesc:a40770734529b91fe60fa6b3d76043717"><td class="mdescLeft"> </td><td class="mdescRight">get string representation of the operator stypes <a href="#a40770734529b91fe60fa6b3d76043717">More...</a><br/></td></tr>
<tr class="separator:a40770734529b91fe60fa6b3d76043717"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8873d9dcccfd8e613c1c156934cee98c"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a8873d9dcccfd8e613c1c156934cee98c">operator_string</a> (const nnvm::NodeAttrs &amp;attrs, const <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &amp;ctx, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;inputs, const std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; &amp;req, const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp;outputs)</td></tr>
<tr class="memdesc:a8873d9dcccfd8e613c1c156934cee98c"><td class="mdescLeft"> </td><td class="mdescRight">get string representation of the operator <a href="#a8873d9dcccfd8e613c1c156934cee98c">More...</a><br/></td></tr>
<tr class="separator:a8873d9dcccfd8e613c1c156934cee98c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af27662fd97dc715a8e7223e2b4a62db3"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#af27662fd97dc715a8e7223e2b4a62db3">LogOnce</a> (const std::string &amp;message)</td></tr>
<tr class="memdesc:af27662fd97dc715a8e7223e2b4a62db3"><td class="mdescLeft"> </td><td class="mdescRight">log message once. Intended for storage fallback warning messages. <a href="#af27662fd97dc715a8e7223e2b4a62db3">More...</a><br/></td></tr>
<tr class="separator:af27662fd97dc715a8e7223e2b4a62db3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aad719abf411ea1ed9185c3849203820f"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aad719abf411ea1ed9185c3849203820f">LogStorageFallback</a> (const nnvm::NodeAttrs &amp;attrs, const int dev_mask, const std::vector&lt; int &gt; *in_attrs, const std::vector&lt; int &gt; *out_attrs)</td></tr>
<tr class="memdesc:aad719abf411ea1ed9185c3849203820f"><td class="mdescLeft"> </td><td class="mdescRight">log storage fallback event <a href="#aad719abf411ea1ed9185c3849203820f">More...</a><br/></td></tr>
<tr class="separator:aad719abf411ea1ed9185c3849203820f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a467e8b51fc0d0a7266e9f3172b2ff7f1"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a467e8b51fc0d0a7266e9f3172b2ff7f1">GetNumThreadsPerGPU</a> ()</td></tr>
<tr class="separator:a467e8b51fc0d0a7266e9f3172b2ff7f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a56555edcc52c5b25bed90bd05e00b5fa"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a56555edcc52c5b25bed90bd05e00b5fa">GetExecNumMatchColor</a> ()</td></tr>
<tr class="separator:a56555edcc52c5b25bed90bd05e00b5fa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1e646ace37016aa994a26d96e739a561"><td class="memTemplParams" colspan="2">template&lt;typename T , typename V &gt; </td></tr>
<tr class="memitem:a1e646ace37016aa994a26d96e739a561"><td align="right" class="memTemplItemLeft" valign="top"></td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a1e646ace37016aa994a26d96e739a561">ParallelAccumulate</a> (const T *a, const int n, V start)</td></tr>
<tr class="separator:a1e646ace37016aa994a26d96e739a561"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7343dc26405918db27b8224ce41f05f6"><td class="memTemplParams" colspan="2">template&lt;typename RandomIt , typename Compare &gt; </td></tr>
<tr class="memitem:a7343dc26405918db27b8224ce41f05f6"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a7343dc26405918db27b8224ce41f05f6">ParallelSortHelper</a> (RandomIt first, size_t len, size_t grainsize, const Compare &amp;comp)</td></tr>
<tr class="memdesc:a7343dc26405918db27b8224ce41f05f6"><td class="mdescLeft"> </td><td class="mdescRight">Helper function for ParallelSort. DO NOT call this function directly. Use the interface ParallelSort instead. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. <a href="#a7343dc26405918db27b8224ce41f05f6">More...</a><br/></td></tr>
<tr class="separator:a7343dc26405918db27b8224ce41f05f6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1f273651755067ca9b1e6b8063c283b0"><td class="memTemplParams" colspan="2">template&lt;typename RandomIt , typename Compare &gt; </td></tr>
<tr class="memitem:a1f273651755067ca9b1e6b8063c283b0"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a1f273651755067ca9b1e6b8063c283b0">ParallelSort</a> (RandomIt first, RandomIt last, size_t num_threads, Compare comp)</td></tr>
<tr class="memdesc:a1f273651755067ca9b1e6b8063c283b0"><td class="mdescLeft"> </td><td class="mdescRight">Sort the elements in the range [first, last) into the ascending order defined by the comparator comp. If the length of the range [first, last) is greater than a certain threshold, the range will be recursively divided into two and assign two threads to sort each half range. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. <a href="#a1f273651755067ca9b1e6b8063c283b0">More...</a><br/></td></tr>
<tr class="separator:a1f273651755067ca9b1e6b8063c283b0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af2c7fe2df1babee66696d2b449e2123c"><td class="memTemplParams" colspan="2">template&lt;typename RandomIt &gt; </td></tr>
<tr class="memitem:af2c7fe2df1babee66696d2b449e2123c"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#af2c7fe2df1babee66696d2b449e2123c">ParallelSort</a> (RandomIt first, RandomIt last, size_t num_threads)</td></tr>
<tr class="memdesc:af2c7fe2df1babee66696d2b449e2123c"><td class="mdescLeft"> </td><td class="mdescRight">Sort the elements in the range [first, last) into ascending order. The elements are compared using the default &lt; operator. If the length of the range [first, last) is greater than a certain threshold, the range will be recursively divided into two and assign two threads to sort each half range. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. <a href="#af2c7fe2df1babee66696d2b449e2123c">More...</a><br/></td></tr>
<tr class="separator:af2c7fe2df1babee66696d2b449e2123c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9d9abe40c84b9924e51d5d57b3f0b7d6"><td class="memTemplParams" colspan="2">template&lt;class T , class... Args&gt; </td></tr>
<tr class="memitem:a9d9abe40c84b9924e51d5d57b3f0b7d6"><td align="right" class="memTemplItemLeft" valign="top"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt; T &gt;::SingleObject </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a9d9abe40c84b9924e51d5d57b3f0b7d6">MakeUnique</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a9d9abe40c84b9924e51d5d57b3f0b7d6"><td class="mdescLeft"> </td><td class="mdescRight">Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. <a href="#a9d9abe40c84b9924e51d5d57b3f0b7d6">More...</a><br/></td></tr>
<tr class="separator:a9d9abe40c84b9924e51d5d57b3f0b7d6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a39b3453302aa3aa56230fbc88005861d"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a39b3453302aa3aa56230fbc88005861d"><td align="right" class="memTemplItemLeft" valign="top"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt; T &gt;::UnknownBound </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a39b3453302aa3aa56230fbc88005861d">MakeUnique</a> (size_t n)</td></tr>
<tr class="memdesc:a39b3453302aa3aa56230fbc88005861d"><td class="mdescLeft"> </td><td class="mdescRight">Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. <a href="#a39b3453302aa3aa56230fbc88005861d">More...</a><br/></td></tr>
<tr class="separator:a39b3453302aa3aa56230fbc88005861d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6ca270747bb7ab942c61d364f14f3042"><td class="memTemplParams" colspan="2">template&lt;class T , class... Args&gt; </td></tr>
<tr class="memitem:a6ca270747bb7ab942c61d364f14f3042"><td align="right" class="memTemplItemLeft" valign="top"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt; T &gt;::KnownBound </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a6ca270747bb7ab942c61d364f14f3042">MakeUnique</a> (Args &amp;&amp;...args)=delete</td></tr>
<tr class="memdesc:a6ca270747bb7ab942c61d364f14f3042"><td class="mdescLeft"> </td><td class="mdescRight">Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. <a href="#a6ca270747bb7ab942c61d364f14f3042">More...</a><br/></td></tr>
<tr class="separator:a6ca270747bb7ab942c61d364f14f3042"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1abcb76ccd9022ebacdacd69c821cdc2"><td class="memTemplParams" colspan="2">template&lt;typename FCompType &gt; </td></tr>
<tr class="memitem:a1abcb76ccd9022ebacdacd69c821cdc2"><td align="right" class="memTemplItemLeft" valign="top">FCompType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a1abcb76ccd9022ebacdacd69c821cdc2">GetFCompute</a> (const nnvm::Op *op, const std::string &amp;name, const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp;ctx)</td></tr>
<tr class="separator:a1abcb76ccd9022ebacdacd69c821cdc2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="aceba8f2d6de65796966d7f1d341dcf33"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::mt19937 <a class="el" href="namespacemxnet_1_1common.html#aceba8f2d6de65796966d7f1d341dcf33">mxnet::common::RANDOM_ENGINE</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Random <a class="el" href="classmxnet_1_1Engine.html" title="Dependency engine that schedules operations. ">Engine</a>. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a12f6653ed0571a1bc16afdfcf525c841"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CastNonDefaultStorage </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const OpContext &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool </td>
<td class="paramname"><em>is_gpu</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afd53ea405dcc105e6b306148009ff827"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CastStorageDispatch </td>
<td>(</td>
<td class="paramtype">const OpContext &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>output</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6baaba1469561220a2484be92cc77aae"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CheckFormatCSRImpl </td>
<td>(</td>
<td class="paramtype">const RunContext &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TBlob &amp; </td>
<td class="paramname"><em>err_cpu</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool </td>
<td class="paramname"><em>full_check</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check the validity of CSRNDArray. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rctx</td><td>Execution context. </td></tr>
<tr><td class="paramname">input</td><td>Input <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of CSRStorage. </td></tr>
<tr><td class="paramname">err_cpu</td><td>Error number on cpu. </td></tr>
<tr><td class="paramname">full_check</td><td>If true, rigorous check, O(N) operations, otherwise basic check, O(1) operations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aad9a34663862df90d3aa8683a2d9052a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CheckFormatImpl </td>
<td>(</td>
<td class="paramtype">const RunContext &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TBlob &amp; </td>
<td class="paramname"><em>err_cpu</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool </td>
<td class="paramname"><em>full_check</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afd045f69bce37692fd1e8ccb0e2ab208"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CheckFormatRSPImpl </td>
<td>(</td>
<td class="paramtype">const RunContext &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TBlob &amp; </td>
<td class="paramname"><em>err_cpu</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool </td>
<td class="paramname"><em>full_check</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check the validity of RowSparseNDArray. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rctx</td><td>Execution context. </td></tr>
<tr><td class="paramname">input</td><td>Input <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of RowSparseStorage. </td></tr>
<tr><td class="paramname">err_cpu</td><td>Error number on cpu. </td></tr>
<tr><td class="paramname">full_check</td><td>If true, rigorous check, O(N) operations, otherwise basic check, O(1) operations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a98fda469aba84baa370e81e94c7d5b0b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::CheckFormatWrapper </td>
<td>(</td>
<td class="paramtype">const RunContext &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TBlob &amp; </td>
<td class="paramname"><em>err_cpu</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool </td>
<td class="paramname"><em>full_check</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2258092ce26805c0a8f65a4144c446dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::ContainsOnlyStorage </td>
<td>(</td>
<td class="paramtype">const StorageTypeVector &amp; </td>
<td class="paramname"><em>vstorage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>returns true if all storage types in <code>vstorage</code> are the same as target <code>stype</code>. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a10765e03ef091a5dd81b1b3efa4b46f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::ContainsOnlyStorage </td>
<td>(</td>
<td class="paramtype">const StorageTypeVector &amp; </td>
<td class="paramname"><em>vstorage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool * </td>
<td class="paramname"><em>has_both</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>returns true if all storage types in <code>vstorage</code> are the same as target <code>stype1</code> or `stype2'. Sets boolean if both found. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a9a7d1b47adce6f8291db8c3106087b90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::ContainsOnlyStorage </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>ndarrays</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>returns true if the storage types of arrays in <code>ndarrays</code> are the same as target <code>stype</code>. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a4d39ea49a4b4c2aefdd106ffd2ec9a11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::ContainsOnlyStorage </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>ndarrays</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArrayStorageType </td>
<td class="paramname"><em>stype2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool * </td>
<td class="paramname"><em>has_both</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>returns true if the storage types of arrays in <code>ndarrays</code> are the same as targets <code>stype1</code> or <code>stype2</code>. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a733ce35d109323dbf4ef1f4bc3094870"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string mxnet::common::dev_type_string </td>
<td>(</td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dev_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get string representation of device type </p>
</div>
</div>
<a class="anchor" id="a4716f6044f678090af8ae7ef3ace3a31"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string mxnet::common::dispatch_mode_string </td>
<td>(</td>
<td class="paramtype">const DispatchMode </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get string representation of dispatch_mode </p>
</div>
</div>
<a class="anchor" id="a56555edcc52c5b25bed90bd05e00b5fa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int mxnet::common::GetExecNumMatchColor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1abcb76ccd9022ebacdacd69c821cdc2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename FCompType &gt; </div>
<table class="memname">
<tr>
<td class="memname">FCompType mxnet::common::GetFCompute </td>
<td>(</td>
<td class="paramtype">const nnvm::Op * </td>
<td class="paramname"><em>op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Context &amp; </td>
<td class="paramname"><em>ctx</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a467e8b51fc0d0a7266e9f3172b2ff7f1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int mxnet::common::GetNumThreadsPerGPU </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af27662fd97dc715a8e7223e2b4a62db3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::LogOnce </td>
<td>(</td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>message</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>log message once. Intended for storage fallback warning messages. </p>
</div>
</div>
<a class="anchor" id="aad719abf411ea1ed9185c3849203820f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::LogStorageFallback </td>
<td>(</td>
<td class="paramtype">const nnvm::NodeAttrs &amp; </td>
<td class="paramname"><em>attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dev_mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; * </td>
<td class="paramname"><em>in_attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; * </td>
<td class="paramname"><em>out_attrs</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>log storage fallback event </p>
</div>
</div>
<a class="anchor" id="a9d9abe40c84b9924e51d5d57b3f0b7d6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt;T&gt;::SingleObject mxnet::common::MakeUnique </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;... </td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>List of arguments with which an instance of <code>T</code> will be constructed. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>std</code><code>::</code><code>unique_ptr</code> of an instance of type <code>T</code>.</dd></dl>
<p>Constructs a non-array type <code>T</code>. The arguments <code>args</code> are passed to the constructor of <code>T</code>. The function does not participate in the overload resolution if <code>T</code> is an array type. </p>
</div>
</div>
<a class="anchor" id="a39b3453302aa3aa56230fbc88005861d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt;T&gt;::UnknownBound mxnet::common::MakeUnique </td>
<td>(</td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>n</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">n</td><td>The size of the array to construct. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>std</code><code>::</code><code>unique_ptr</code> of an instance of type <code>T</code>.</dd></dl>
<p>Constructs an array of unknown bound <code>T</code>. The function does not participate in the overload resolution unless <code>T</code> is an array of unknown bound. </p>
</div>
</div>
<a class="anchor" id="a6ca270747bb7ab942c61d364f14f3042"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmxnet_1_1common_1_1helper_1_1UniqueIf.html">helper::UniqueIf</a>&lt;T&gt;::KnownBound mxnet::common::MakeUnique </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;... </td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an object of type <code>T</code> and wraps it in a <code>std</code><code>::</code><code>unique_ptr</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>List of arguments with which an instance of <code>T</code> will be constructed.</td></tr>
</table>
</dd>
</dl>
<p>Constructs an arrays of known bound is disallowed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>List of arguments with which an instance of <code>T</code> will be constructed. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>std</code><code>::</code><code>unique_ptr</code> of an instance of type <code>T</code>.</dd></dl>
<p>Constructs a non-array type <code>T</code>. The arguments <code>args</code> are passed to the constructor of <code>T</code>. The function does not participate in the overload resolution if <code>T</code> is an array type. </p>
</div>
</div>
<a class="anchor" id="a8873d9dcccfd8e613c1c156934cee98c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string mxnet::common::operator_string </td>
<td>(</td>
<td class="paramtype">const nnvm::NodeAttrs &amp; </td>
<td class="paramname"><em>attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const OpContext &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; OpReqType &gt; &amp; </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>outputs</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get string representation of the operator </p>
</div>
</div>
<a class="anchor" id="a40770734529b91fe60fa6b3d76043717"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string mxnet::common::operator_stype_string </td>
<td>(</td>
<td class="paramtype">const nnvm::NodeAttrs &amp; </td>
<td class="paramname"><em>attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dev_mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp; </td>
<td class="paramname"><em>in_attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp; </td>
<td class="paramname"><em>out_attrs</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get string representation of the operator stypes </p>
</div>
</div>
<a class="anchor" id="a1e646ace37016aa994a26d96e739a561"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename V &gt; </div>
<table class="memname">
<tr>
<td class="memname">V mxnet::common::ParallelAccumulate </td>
<td>(</td>
<td class="paramtype">const T * </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td>
<td class="paramname"><em>start</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1f273651755067ca9b1e6b8063c283b0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RandomIt , typename Compare &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::ParallelSort </td>
<td>(</td>
<td class="paramtype">RandomIt </td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">RandomIt </td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>num_threads</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Compare </td>
<td class="paramname"><em>comp</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sort the elements in the range [first, last) into the ascending order defined by the comparator comp. If the length of the range [first, last) is greater than a certain threshold, the range will be recursively divided into two and assign two threads to sort each half range. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. </p>
</div>
</div>
<a class="anchor" id="af2c7fe2df1babee66696d2b449e2123c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RandomIt &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::ParallelSort </td>
<td>(</td>
<td class="paramtype">RandomIt </td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">RandomIt </td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>num_threads</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sort the elements in the range [first, last) into ascending order. The elements are compared using the default &lt; operator. If the length of the range [first, last) is greater than a certain threshold, the range will be recursively divided into two and assign two threads to sort each half range. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. </p>
</div>
</div>
<a class="anchor" id="a7343dc26405918db27b8224ce41f05f6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RandomIt , typename Compare &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::ParallelSortHelper </td>
<td>(</td>
<td class="paramtype">RandomIt </td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>grainsize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Compare &amp; </td>
<td class="paramname"><em>comp</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function for ParallelSort. DO NOT call this function directly. Use the interface ParallelSort instead. Ref: <a href="https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h">https://github.com/dmlc/difacto/blob/master/src/common/parallel_sort.h</a>. </p>
</div>
</div>
<a class="anchor" id="a2262a78f3d80b9adeb3b517246fe4335"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::SetupDefaultBlobsIn </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; TBlob &gt; * </td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>temp_dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unordered_map&lt; uint32_t, uint32_t &gt; * </td>
<td class="paramname"><em>idx_map</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab65aad99a6f2c0edac9a2c07a39a3977"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::SetupDefaultBlobsInOut </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>ndinputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>ndoutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; OpReqType &gt; &amp; </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>in_bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>out_bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; TBlob &gt; * </td>
<td class="paramname"><em>input_blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; TBlob &gt; * </td>
<td class="paramname"><em>output_blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>pre_temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>pre_temp_dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>post_temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>post_temp_dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unordered_map&lt; uint32_t, uint32_t &gt; * </td>
<td class="paramname"><em>in_temp_idx_map</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; uint32_t &gt; &amp; </td>
<td class="paramname"><em>mutate_idx</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a566cc951d7165f06b89875ba718f211f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mxnet::common::SetupDefaultBlobsOut </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; NDArray &gt; &amp; </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; OpReqType &gt; &amp; </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; TBlob &gt; * </td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; NDArray &gt; * </td>
<td class="paramname"><em>temp_dst</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a905e77124ee11208c40a8afd3ee42167"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename xpu &gt; </div>
<table class="memname">
<tr>
<td class="memname">void mxnet::common::SparseRetainOpForwardRspWrapper </td>
<td>(</td>
<td class="paramtype">mshadow::Stream&lt; xpu &gt; * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NDArray &amp; </td>
<td class="paramname"><em>input_nd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TBlob &amp; </td>
<td class="paramname"><em>idx_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const OpReqType </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NDArray * </td>
<td class="paramname"><em>output_nd</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pick rows specified by user input index array from a row sparse ndarray and save them in the output sparse ndarray. </p>
</div>
</div>
<a class="anchor" id="ab379cd302d59005010ae29aff6e55009"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string mxnet::common::stype_string </td>
<td>(</td>
<td class="paramtype">const int </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get string representation of storage_type </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Feb 22 2018 19:36:05 for mxnet by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="doxygen.png"/>
</a> 1.8.6
</small></address>
</body>
</html>