blob: e5c0e854b141f5d770d6b78f2dcab17f18fa7615 [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.11" 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/searchdata.js" type="text/javascript"></script>
<script src="search/search.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<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()">
</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">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_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_1deserialize__tuple.html">deserialize_tuple</a></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_1deserialize__tuple_3_010_01_4.html">deserialize_tuple&lt; 0 &gt;</a></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_1is__container.html">is_container</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_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_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>
<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_1serialize__tuple.html">serialize_tuple</a></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_1serialize__tuple_3_010_01_4.html">serialize_tuple&lt; 0 &gt;</a></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_1serialized__size__tuple.html">serialized_size_tuple</a></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_1serialized__size__tuple_3_010_01_4.html">serialized_size_tuple&lt; 0 &gt;</a></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>
</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:a28bf4d1e9b7392f106950b00de5a2c62"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a28bf4d1e9b7392f106950b00de5a2c62">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="classmxnet_1_1NDArray.html">NDArray</a> &gt; *bufs, std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; *req, 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:a28bf4d1e9b7392f106950b00de5a2c62"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2dc5d03c700c90be66f47c4f46d2ef6a"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2dc5d03c700c90be66f47c4f46d2ef6a">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="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="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; *req, 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:a2dc5d03c700c90be66f47c4f46d2ef6a"><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:a6369bac95f2e7080088927858937d7b0"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a6369bac95f2e7080088927858937d7b0">SameType</a> (const nnvm::NodeAttrs &amp;attrs, std::vector&lt; int &gt; *iattr, std::vector&lt; int &gt; *oattr)</td></tr>
<tr class="memdesc:a6369bac95f2e7080088927858937d7b0"><td class="mdescLeft"> </td><td class="mdescRight">The default type inference function, which assigns all undefined types to the same type of one of the inputs or outputs. <a href="#a6369bac95f2e7080088927858937d7b0">More...</a><br/></td></tr>
<tr class="separator:a6369bac95f2e7080088927858937d7b0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a33f2eeb2434d3cdab77227b62ecf3d31"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a33f2eeb2434d3cdab77227b62ecf3d31">DefaultStorageType</a> (const nnvm::NodeAttrs &amp;attrs, const int dev_mask, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">DispatchMode</a> *dispatch_mode, std::vector&lt; int &gt; *iattr, std::vector&lt; int &gt; *oattr)</td></tr>
<tr class="memdesc:a33f2eeb2434d3cdab77227b62ecf3d31"><td class="mdescLeft"> </td><td class="mdescRight">The default storage type inference function, which assigns all undefined storage types to kDefaultStorage. If all of input and output storage types are kDefaultStorage, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba2157864769b54d1d0f8f9be63393e7d6">DispatchMode::kFCompute</a> is assigned to dispatch_mode. Otherwise, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba18bf63b4c196f79c9bca4ad8637e8fef">DispatchMode::kFComputeFallback</a> is assigned to dispatch_mode. <a href="#a33f2eeb2434d3cdab77227b62ecf3d31">More...</a><br/></td></tr>
<tr class="separator:a33f2eeb2434d3cdab77227b62ecf3d31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab24b30a630e9ebf963f763a99b48ebc5"><td align="right" class="memItemLeft" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ab24b30a630e9ebf963f763a99b48ebc5">storage_str</a> (int storage_id)</td></tr>
<tr class="separator:ab24b30a630e9ebf963f763a99b48ebc5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abcd04f4664c3f1db116cdf6d86236a87"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#abcd04f4664c3f1db116cdf6d86236a87">LogMemoryPlan</a> (const nnvm::Graph &amp;g)</td></tr>
<tr class="separator:abcd04f4664c3f1db116cdf6d86236a87"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a497a260b6b4c473e4ad03477f500763e"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a497a260b6b4c473e4ad03477f500763e">LogInferStorage</a> (const nnvm::Graph &amp;g)</td></tr>
<tr class="separator:a497a260b6b4c473e4ad03477f500763e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa68edc65ce23ce3d90279c600ef94075"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aa68edc65ce23ce3d90279c600ef94075">HandleInferShapeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const nnvm::ShapeVector &amp;inferred_shapes)</td></tr>
<tr class="separator:aa68edc65ce23ce3d90279c600ef94075"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad0a2f5f50d4fdcb21b9cd7d595cba8bd"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ad0a2f5f50d4fdcb21b9cd7d595cba8bd">HandleInferTypeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const nnvm::DTypeVector &amp;inferred_dtypes)</td></tr>
<tr class="separator:ad0a2f5f50d4fdcb21b9cd7d595cba8bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9ae705382eedf9d523df62d9b9128423"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a9ae705382eedf9d523df62d9b9128423">HandleInferStorageTypeError</a> (const size_t num_forward_inputs, const nnvm::IndexedGraph &amp;idx, const <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp;inferred_stypes)</td></tr>
<tr class="separator:a9ae705382eedf9d523df62d9b9128423"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a56117c409b10bfce6ecec6186d53941f"><td align="right" class="memItemLeft" valign="top"><a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a56117c409b10bfce6ecec6186d53941f">ReshapeOrCreate</a> (const std::string &amp;name, const <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp;dest_arg_shape, const int dest_arg_dtype, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> dest_arg_stype, const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp;ctx, std::unordered_map&lt; std::string, <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *shared_buffer, bool enable_row_sparse_sharing)</td></tr>
<tr class="memdesc:a56117c409b10bfce6ecec6186d53941f"><td class="mdescLeft"> </td><td class="mdescRight">If the requested ndarray's shape size is less than the corresponding shared_data_array's shape size and the storage type is shareable, reuse the memory allocation in shared_buffer; otherwise, create a zero ndarray. Shareable storages include both default storage and row_sparse storage if enable_row_sparse_sharing is <code>True</code>, otherwise default storage only. <a href="#a56117c409b10bfce6ecec6186d53941f">More...</a><br/></td></tr>
<tr class="separator:a56117c409b10bfce6ecec6186d53941f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a19bebfe40260d14068675b893f6b1a6b"><td align="right" class="memItemLeft" valign="top">nnvm::Graph </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a19bebfe40260d14068675b893f6b1a6b">AssignContext</a> (nnvm::Graph g, const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp;default_ctx, const std::map&lt; std::string, <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp;ctx_map, const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp;in_arg_ctxes, const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp;arg_grad_ctxes, const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp;aux_state_ctxes, const std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; &amp;grad_req_types, size_t num_forward_inputs, size_t num_forward_outputs)</td></tr>
<tr class="memdesc:a19bebfe40260d14068675b893f6b1a6b"><td class="mdescLeft"> </td><td class="mdescRight">Assign context to the graph. This is triggered by both simple_bind and bind flows. <a href="#a19bebfe40260d14068675b893f6b1a6b">More...</a><br/></td></tr>
<tr class="separator:a19bebfe40260d14068675b893f6b1a6b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa3113cfff316370ff191d5a4dab9cd71"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa3113cfff316370ff191d5a4dab9cd71"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aa3113cfff316370ff191d5a4dab9cd71">SerializedSize</a> (const T &amp;obj)</td></tr>
<tr class="separator:aa3113cfff316370ff191d5a4dab9cd71"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac306007ea1ef6c7aec19da09ea37efad"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac306007ea1ef6c7aec19da09ea37efad"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ac306007ea1ef6c7aec19da09ea37efad">SerializedSize</a> (const nnvm::Tuple&lt; T &gt; &amp;obj)</td></tr>
<tr class="separator:ac306007ea1ef6c7aec19da09ea37efad"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afe0c79c920755b8f2d6b9ad75095ca69"><td class="memTemplParams" colspan="2">template&lt;typename K , typename V &gt; </td></tr>
<tr class="memitem:afe0c79c920755b8f2d6b9ad75095ca69"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#afe0c79c920755b8f2d6b9ad75095ca69">SerializedSize</a> (const std::map&lt; K, V &gt; &amp;obj)</td></tr>
<tr class="separator:afe0c79c920755b8f2d6b9ad75095ca69"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a06a142e234bae6691af3bc124145d390"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a06a142e234bae6691af3bc124145d390"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a06a142e234bae6691af3bc124145d390">SerializedSize</a> (const std::string &amp;obj)</td></tr>
<tr class="separator:a06a142e234bae6691af3bc124145d390"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac1d3c80ace2b34edab0809c1b16b6b28"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:ac1d3c80ace2b34edab0809c1b16b6b28"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ac1d3c80ace2b34edab0809c1b16b6b28">SerializedSize</a> (const std::tuple&lt; Args... &gt; &amp;obj)</td></tr>
<tr class="separator:ac1d3c80ace2b34edab0809c1b16b6b28"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2913e170e3d9e9223d7f55d27a0fd45d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2913e170e3d9e9223d7f55d27a0fd45d"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a2913e170e3d9e9223d7f55d27a0fd45d">Serialize</a> (const T &amp;obj, char **buffer)</td></tr>
<tr class="separator:a2913e170e3d9e9223d7f55d27a0fd45d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aec465ea6c7089b4cbb03116028e46792"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aec465ea6c7089b4cbb03116028e46792"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aec465ea6c7089b4cbb03116028e46792">Serialize</a> (const nnvm::Tuple&lt; T &gt; &amp;obj, char **buffer)</td></tr>
<tr class="separator:aec465ea6c7089b4cbb03116028e46792"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a16f3095a6e8f0d976989ffe79193c02d"><td class="memTemplParams" colspan="2">template&lt;typename K , typename V &gt; </td></tr>
<tr class="memitem:a16f3095a6e8f0d976989ffe79193c02d"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a16f3095a6e8f0d976989ffe79193c02d">Serialize</a> (const std::map&lt; K, V &gt; &amp;obj, char **buffer)</td></tr>
<tr class="separator:a16f3095a6e8f0d976989ffe79193c02d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9f55f27f668dacd59122d573a988de1b"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a9f55f27f668dacd59122d573a988de1b"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a9f55f27f668dacd59122d573a988de1b">Serialize</a> (const std::string &amp;obj, char **buffer)</td></tr>
<tr class="separator:a9f55f27f668dacd59122d573a988de1b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a167f00e48453a4ee3b8b3b85fac8f14e"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a167f00e48453a4ee3b8b3b85fac8f14e"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a167f00e48453a4ee3b8b3b85fac8f14e">Serialize</a> (const std::tuple&lt; Args... &gt; &amp;obj, char **buffer)</td></tr>
<tr class="separator:a167f00e48453a4ee3b8b3b85fac8f14e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a13ff50822aa831f60b4b140d8ffcf6f6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a13ff50822aa831f60b4b140d8ffcf6f6"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a13ff50822aa831f60b4b140d8ffcf6f6">Deserialize</a> (T *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:a13ff50822aa831f60b4b140d8ffcf6f6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae10e17f56c16a82f3a0efca0c91a8523"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae10e17f56c16a82f3a0efca0c91a8523"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ae10e17f56c16a82f3a0efca0c91a8523">Deserialize</a> (nnvm::Tuple&lt; T &gt; *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:ae10e17f56c16a82f3a0efca0c91a8523"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aaf4208d5b2e5b2047aeda41734301e72"><td class="memTemplParams" colspan="2">template&lt;typename K , typename V &gt; </td></tr>
<tr class="memitem:aaf4208d5b2e5b2047aeda41734301e72"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#aaf4208d5b2e5b2047aeda41734301e72">Deserialize</a> (std::map&lt; K, V &gt; *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:aaf4208d5b2e5b2047aeda41734301e72"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad9c40fa1600531c54a2fbe7208f3b08e"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ad9c40fa1600531c54a2fbe7208f3b08e"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ad9c40fa1600531c54a2fbe7208f3b08e">Deserialize</a> (std::string *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:ad9c40fa1600531c54a2fbe7208f3b08e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3a446f0313c786aee9d634dc8d9b63fd"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a3a446f0313c786aee9d634dc8d9b63fd"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a3a446f0313c786aee9d634dc8d9b63fd">Deserialize</a> (std::tuple&lt; Args... &gt; *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:a3a446f0313c786aee9d634dc8d9b63fd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a57c9708aa2b79d02bcc7d8714ef478b5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a57c9708aa2b79d02bcc7d8714ef478b5"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a57c9708aa2b79d02bcc7d8714ef478b5">SerializedContainerSize</a> (const T &amp;obj, char **buffer)</td></tr>
<tr class="separator:a57c9708aa2b79d02bcc7d8714ef478b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a198eca182ea7e5d1527c1e147c9ca18f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a198eca182ea7e5d1527c1e147c9ca18f"><td align="right" class="memTemplItemLeft" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a198eca182ea7e5d1527c1e147c9ca18f">DeserializedContainerSize</a> (T *obj, const std::string &amp;buffer, size_t *curr_pos)</td></tr>
<tr class="separator:a198eca182ea7e5d1527c1e147c9ca18f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac22e93e3cc0bf94e97f73f74813d3acf"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac22e93e3cc0bf94e97f73f74813d3acf"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ac22e93e3cc0bf94e97f73f74813d3acf">Serialize</a> (const T &amp;obj, std::string *serialized_data)</td></tr>
<tr class="separator:ac22e93e3cc0bf94e97f73f74813d3acf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab5312655a05302f798c42006776529f7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ab5312655a05302f798c42006776529f7"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ab5312655a05302f798c42006776529f7">Deserialize</a> (T *obj, const std::string &amp;serialized_data)</td></tr>
<tr class="separator:ab5312655a05302f798c42006776529f7"><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:a1e3290f30e01079cb2e16095b085bf21"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a1e3290f30e01079cb2e16095b085bf21">ContainsStorageType</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:a1e3290f30e01079cb2e16095b085bf21"><td class="mdescLeft"> </td><td class="mdescRight">returns true if storage type of any array in <code>ndarrays</code> is the same as the target <code>stype</code>. false is returned for empty inputs. <a href="#a1e3290f30e01079cb2e16095b085bf21">More...</a><br/></td></tr>
<tr class="separator:a1e3290f30e01079cb2e16095b085bf21"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a99e4d394a12fd749c333d488c7196643"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a99e4d394a12fd749c333d488c7196643">ContainsStorageType</a> (const std::vector&lt; int &gt; &amp;ndstypes, const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype)</td></tr>
<tr class="memdesc:a99e4d394a12fd749c333d488c7196643"><td class="mdescLeft"> </td><td class="mdescRight">returns true if any storage type <code>ndstype</code> in <code>ndstypes</code> is the same as the target <code>stype</code>. false is returned for empty inputs. <a href="#a99e4d394a12fd749c333d488c7196643">More...</a><br/></td></tr>
<tr class="separator:a99e4d394a12fd749c333d488c7196643"><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>
<tr class="memitem:a325e95d176e17c22ea18db6694093ad7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a325e95d176e17c22ea18db6694093ad7"><td align="right" class="memTemplItemLeft" valign="top">constexpr size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a325e95d176e17c22ea18db6694093ad7">MaxIntegerValue</a> ()</td></tr>
<tr class="memdesc:a325e95d176e17c22ea18db6694093ad7"><td class="mdescLeft"> </td><td class="mdescRight">Return the max integer value representable in the type <code>T</code> without loss of precision. <a href="#a325e95d176e17c22ea18db6694093ad7">More...</a><br/></td></tr>
<tr class="separator:a325e95d176e17c22ea18db6694093ad7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7b5002a24372f2c7325c78a747270cf9"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a7b5002a24372f2c7325c78a747270cf9"><td align="right" class="memTemplItemLeft" valign="top">constexpr size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a7b5002a24372f2c7325c78a747270cf9">MaxIntegerValue&lt; mshadow::half::half_t &gt;</a> ()</td></tr>
<tr class="separator:a7b5002a24372f2c7325c78a747270cf9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad45245532df14e35b887c2ec91939d8d"><td align="right" class="memItemLeft" valign="top">MSHADOW_XINLINE int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ad45245532df14e35b887c2ec91939d8d">ilog2ul</a> (size_t a)</td></tr>
<tr class="separator:ad45245532df14e35b887c2ec91939d8d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a44c77619725d8bc68a085bdbcaa5416b"><td align="right" class="memItemLeft" valign="top">MSHADOW_XINLINE int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a44c77619725d8bc68a085bdbcaa5416b">ilog2ui</a> (unsigned int a)</td></tr>
<tr class="separator:a44c77619725d8bc68a085bdbcaa5416b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae0433883e6bf36ef1742b16913470d3c"><td align="right" class="memItemLeft" valign="top"><a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#ae0433883e6bf36ef1742b16913470d3c">InitZeros</a> (const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype, const <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp;shape, const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp;ctx, const int dtype)</td></tr>
<tr class="memdesc:ae0433883e6bf36ef1742b16913470d3c"><td class="mdescLeft"> </td><td class="mdescRight">Return an <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of all zeros. <a href="#ae0433883e6bf36ef1742b16913470d3c">More...</a><br/></td></tr>
<tr class="separator:ae0433883e6bf36ef1742b16913470d3c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5a9a7277fbbad495fbaf40ee5720a9da"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#a5a9a7277fbbad495fbaf40ee5720a9da">EmplaceBackZeros</a> (const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> stype, const <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp;shape, const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp;ctx, const int dtype, std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; *vec)</td></tr>
<tr class="memdesc:a5a9a7277fbbad495fbaf40ee5720a9da"><td class="mdescLeft"> </td><td class="mdescRight">Helper to add a <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of zeros to a std::vector. <a href="#a5a9a7277fbbad495fbaf40ee5720a9da">More...</a><br/></td></tr>
<tr class="separator:a5a9a7277fbbad495fbaf40ee5720a9da"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abc4dccb2b37c896faf7409e002bf4eb2"><td class="memTemplParams" colspan="2">template&lt;typename DType &gt; </td></tr>
<tr class="memitem:abc4dccb2b37c896faf7409e002bf4eb2"><td align="right" class="memTemplItemLeft" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1common.html#abc4dccb2b37c896faf7409e002bf4eb2">ParallelCopy</a> (DType *dst, const DType *src, <a class="el" href="namespacemxnet.html#abadedc1b42ee3e5b8852e63783b982ef">index_t</a> size)</td></tr>
<tr class="memdesc:abc4dccb2b37c896faf7409e002bf4eb2"><td class="mdescLeft"> </td><td class="mdescRight">parallelize copy by OpenMP. <a href="#abc4dccb2b37c896faf7409e002bf4eb2">More...</a><br/></td></tr>
<tr class="separator:abc4dccb2b37c896faf7409e002bf4eb2"><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="a19bebfe40260d14068675b893f6b1a6b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">nnvm::Graph mxnet::common::AssignContext </td>
<td>(</td>
<td class="paramtype">nnvm::Graph </td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp; </td>
<td class="paramname"><em>default_ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::map&lt; std::string, <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp; </td>
<td class="paramname"><em>ctx_map</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp; </td>
<td class="paramname"><em>in_arg_ctxes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp; </td>
<td class="paramname"><em>arg_grad_ctxes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structmxnet_1_1Context.html">Context</a> &gt; &amp; </td>
<td class="paramname"><em>aux_state_ctxes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; &amp; </td>
<td class="paramname"><em>grad_req_types</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>num_forward_inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>num_forward_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>Assign context to the graph. This is triggered by both simple_bind and bind flows. </p>
</div>
</div>
<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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp; </td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &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 <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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 <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &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 <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &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 <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &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 <a class="el" href="structmxnet_1_1RunContext.html">RunContext</a> &amp; </td>
<td class="paramname"><em>rctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &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 <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp; </td>
<td class="paramname"><em>vstorage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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 <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp; </td>
<td class="paramname"><em>vstorage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </td>
<td class="paramname"><em>stype1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp; </td>
<td class="paramname"><em>ndarrays</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp; </td>
<td class="paramname"><em>ndarrays</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </td>
<td class="paramname"><em>stype1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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="a1e3290f30e01079cb2e16095b085bf21"></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::ContainsStorageType </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; &amp; </td>
<td class="paramname"><em>ndarrays</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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 storage type of any array in <code>ndarrays</code> is the same as the target <code>stype</code>. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a99e4d394a12fd749c333d488c7196643"></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::ContainsStorageType </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp; </td>
<td class="paramname"><em>ndstypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </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 any storage type <code>ndstype</code> in <code>ndstypes</code> is the same as the target <code>stype</code>. false is returned for empty inputs. </p>
</div>
</div>
<a class="anchor" id="a33f2eeb2434d3cdab77227b62ecf3d31"></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::DefaultStorageType </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"><a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">DispatchMode</a></td>
<td class="paramname"><em>dispatch_mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; * </td>
<td class="paramname"><em>iattr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; * </td>
<td class="paramname"><em>oattr</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>The default storage type inference function, which assigns all undefined storage types to kDefaultStorage. If all of input and output storage types are kDefaultStorage, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba2157864769b54d1d0f8f9be63393e7d6">DispatchMode::kFCompute</a> is assigned to dispatch_mode. Otherwise, <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba18bf63b4c196f79c9bca4ad8637e8fef">DispatchMode::kFComputeFallback</a> is assigned to dispatch_mode. </p>
</div>
</div>
<a class="anchor" id="a13ff50822aa831f60b4b140d8ffcf6f6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">T * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="ae10e17f56c16a82f3a0efca0c91a8523"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">nnvm::Tuple&lt; T &gt; * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="aaf4208d5b2e5b2047aeda41734301e72"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K , typename V &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">std::map&lt; K, V &gt; * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="ad9c40fa1600531c54a2fbe7208f3b08e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">std::string * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="a3a446f0313c786aee9d634dc8d9b63fd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">std::tuple&lt; Args... &gt; * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="ab5312655a05302f798c42006776529f7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Deserialize </td>
<td>(</td>
<td class="paramtype">T * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>serialized_data</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="a198eca182ea7e5d1527c1e147c9ca18f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::DeserializedContainerSize </td>
<td>(</td>
<td class="paramtype">T * </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>curr_pos</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="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 <a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">DispatchMode</a> </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="a5a9a7277fbbad495fbaf40ee5720a9da"></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::EmplaceBackZeros </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </td>
<td class="paramname"><em>stype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp; </td>
<td class="paramname"><em>shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dtype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>vec</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>Helper to add a <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of zeros to a std::vector. </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 <a class="el" href="structmxnet_1_1Context.html">Context</a> &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="aa68edc65ce23ce3d90279c600ef94075"></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::HandleInferShapeError </td>
<td>(</td>
<td class="paramtype">const size_t </td>
<td class="paramname"><em>num_forward_inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const nnvm::IndexedGraph &amp; </td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const nnvm::ShapeVector &amp; </td>
<td class="paramname"><em>inferred_shapes</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="a9ae705382eedf9d523df62d9b9128423"></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::HandleInferStorageTypeError </td>
<td>(</td>
<td class="paramtype">const size_t </td>
<td class="paramname"><em>num_forward_inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const nnvm::IndexedGraph &amp; </td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a6606bef15f41cccade14c9400e8447cf">StorageTypeVector</a> &amp; </td>
<td class="paramname"><em>inferred_stypes</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="ad0a2f5f50d4fdcb21b9cd7d595cba8bd"></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::HandleInferTypeError </td>
<td>(</td>
<td class="paramtype">const size_t </td>
<td class="paramname"><em>num_forward_inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const nnvm::IndexedGraph &amp; </td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const nnvm::DTypeVector &amp; </td>
<td class="paramname"><em>inferred_dtypes</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="a44c77619725d8bc68a085bdbcaa5416b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MSHADOW_XINLINE int mxnet::common::ilog2ui </td>
<td>(</td>
<td class="paramtype">unsigned int </td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad45245532df14e35b887c2ec91939d8d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MSHADOW_XINLINE int mxnet::common::ilog2ul </td>
<td>(</td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae0433883e6bf36ef1742b16913470d3c"></a>
<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="classmxnet_1_1NDArray.html">NDArray</a> mxnet::common::InitZeros </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </td>
<td class="paramname"><em>stype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp; </td>
<td class="paramname"><em>shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dtype</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>Return an <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface ">NDArray</a> of all zeros. </p>
</div>
</div>
<a class="anchor" id="a497a260b6b4c473e4ad03477f500763e"></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::LogInferStorage </td>
<td>(</td>
<td class="paramtype">const nnvm::Graph &amp; </td>
<td class="paramname"><em>g</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">
</div>
</div>
<a class="anchor" id="abcd04f4664c3f1db116cdf6d86236a87"></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::LogMemoryPlan </td>
<td>(</td>
<td class="paramtype">const nnvm::Graph &amp; </td>
<td class="paramname"><em>g</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">
</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="a325e95d176e17c22ea18db6694093ad7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname">constexpr size_t mxnet::common::MaxIntegerValue </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the max integer value representable in the type <code>T</code> without loss of precision. </p>
</div>
</div>
<a class="anchor" id="a7b5002a24372f2c7325c78a747270cf9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">constexpr size_t <a class="el" href="namespacemxnet_1_1common.html#a325e95d176e17c22ea18db6694093ad7">mxnet::common::MaxIntegerValue</a>&lt; mshadow::half::half_t &gt; </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</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 <a class="el" href="structmxnet_1_1OpContext.html">OpContext</a> &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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="abc4dccb2b37c896faf7409e002bf4eb2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename DType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::ParallelCopy </td>
<td>(</td>
<td class="paramtype">DType * </td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const DType * </td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacemxnet.html#abadedc1b42ee3e5b8852e63783b982ef">index_t</a> </td>
<td class="paramname"><em>size</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>parallelize copy by OpenMP. </p>
</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="a56117c409b10bfce6ecec6186d53941f"></a>
<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="classmxnet_1_1NDArray.html">NDArray</a> mxnet::common::ReshapeOrCreate </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 <a class="el" href="namespacemxnet.html#a6e14bb5f6ffc81892feca8d1da658687">TShape</a> &amp; </td>
<td class="paramname"><em>dest_arg_shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int </td>
<td class="paramname"><em>dest_arg_dtype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a536b732faa980e1de446c552460ff76a">NDArrayStorageType</a> </td>
<td class="paramname"><em>dest_arg_stype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structmxnet_1_1Context.html">Context</a> &amp; </td>
<td class="paramname"><em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unordered_map&lt; std::string, <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>shared_buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"><em>enable_row_sparse_sharing</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>If the requested ndarray's shape size is less than the corresponding shared_data_array's shape size and the storage type is shareable, reuse the memory allocation in shared_buffer; otherwise, create a zero ndarray. Shareable storages include both default storage and row_sparse storage if enable_row_sparse_sharing is <code>True</code>, otherwise default storage only. </p>
</div>
</div>
<a class="anchor" id="a6369bac95f2e7080088927858937d7b0"></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::SameType </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">std::vector&lt; int &gt; * </td>
<td class="paramname"><em>iattr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; * </td>
<td class="paramname"><em>oattr</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>The default type inference function, which assigns all undefined types to the same type of one of the inputs or outputs. </p>
</div>
</div>
<a class="anchor" id="a2913e170e3d9e9223d7f55d27a0fd45d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const T &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="aec465ea6c7089b4cbb03116028e46792"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const nnvm::Tuple&lt; T &gt; &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="a16f3095a6e8f0d976989ffe79193c02d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K , typename V &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const std::map&lt; K, V &gt; &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="a9f55f27f668dacd59122d573a988de1b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="a167f00e48453a4ee3b8b3b85fac8f14e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const std::tuple&lt; Args... &gt; &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="ac22e93e3cc0bf94e97f73f74813d3acf"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mxnet::common::Serialize </td>
<td>(</td>
<td class="paramtype">const T &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string * </td>
<td class="paramname"><em>serialized_data</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="a57c9708aa2b79d02bcc7d8714ef478b5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedContainerSize </td>
<td>(</td>
<td class="paramtype">const T &amp; </td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"><em>buffer</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="aa3113cfff316370ff191d5a4dab9cd71"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedSize </td>
<td>(</td>
<td class="paramtype">const T &amp; </td>
<td class="paramname"><em>obj</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">
</div>
</div>
<a class="anchor" id="ac306007ea1ef6c7aec19da09ea37efad"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedSize </td>
<td>(</td>
<td class="paramtype">const nnvm::Tuple&lt; T &gt; &amp; </td>
<td class="paramname"><em>obj</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">
</div>
</div>
<a class="anchor" id="afe0c79c920755b8f2d6b9ad75095ca69"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename K , typename V &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedSize </td>
<td>(</td>
<td class="paramtype">const std::map&lt; K, V &gt; &amp; </td>
<td class="paramname"><em>obj</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">
</div>
</div>
<a class="anchor" id="a06a142e234bae6691af3bc124145d390"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedSize </td>
<td>(</td>
<td class="paramtype">const std::string &amp; </td>
<td class="paramname"><em>obj</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">
</div>
</div>
<a class="anchor" id="ac1d3c80ace2b34edab0809c1b16b6b28"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t mxnet::common::SerializedSize </td>
<td>(</td>
<td class="paramtype">const std::tuple&lt; Args... &gt; &amp; </td>
<td class="paramname"><em>obj</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">
</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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; * </td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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="a2dc5d03c700c90be66f47c4f46d2ef6a"></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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>out_bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; * </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; * </td>
<td class="paramname"><em>input_blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; * </td>
<td class="paramname"><em>output_blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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="a28bf4d1e9b7392f106950b00de5a2c62"></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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>bufs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> &gt; * </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &gt; * </td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &gt; * </td>
<td class="paramname"><em>temp_src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &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 <a class="el" href="classmxnet_1_1NDArray.html">NDArray</a> &amp; </td>
<td class="paramname"><em>input_nd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> &amp; </td>
<td class="paramname"><em>idx_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">OpReqType</a> </td>
<td class="paramname"><em>req</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmxnet_1_1NDArray.html">NDArray</a></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="ab24b30a630e9ebf963f763a99b48ebc5"></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::storage_str </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>storage_id</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">
</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 Sep 19 2019 12:37:33 for mxnet by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="doxygen.png"/>
</a> 1.8.11
</small></address>
</body>
</html>