blob: 82f419e1c1a7c16531c5bd24b54ac82915a741be [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 http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>mxnet: /work/mxnet/include/mxnet/lib_api.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(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 cellspacing="0" cellpadding="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 id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">lib_api.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>APIs to interact with libraries This API specifies function prototypes to register custom ops, partitioner, and passes for library authors See example/extension/lib_custom_op/README.md See example/extension/lib_subgraph/README.md See example/extension/lib_pass/README.md.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;map&gt;</code><br />
<code>#include &lt;unordered_map&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
<code>#include &lt;stdexcept&gt;</code><br />
<code>#include &lt;random&gt;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for lib_api.h:</div>
<div class="dyncontent">
<div class="center"><img src="lib__api_8h__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2lib__api_8h" alt=""/></div>
<map name="_2work_2mxnet_2include_2mxnet_2lib__api_8h" id="_2work_2mxnet_2include_2mxnet_2lib__api_8h">
</map>
</div>
</div>
<p><a href="lib__api_8h_source.html">Go to the source code of this file.</a></p>
<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 class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDLContext.html">DLContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Device context for Tensor and operator. <a href="structDLContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDLDataType.html">DLDataType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The data type the tensor can hold. <a href="structDLDataType.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDLTensor.html">DLTensor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Plain C Tensor object, does not manage memory. <a href="structDLTensor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMXContext.html">MXContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context info passing from MXNet OpContext dev_type is string repr of supported context, currently only "cpu" and "gpu" dev_id is the device index where the tensor locates. <a href="structMXContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMXSparse.html">MXSparse</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMXTensor.html">MXTensor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tensor data structure used by custom operator. <a href="structMXTensor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassResource.html">PassResource</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpResource.html">OpResource</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">provide resource APIs memory allocation mechanism to Forward/Backward functions <a href="classOpResource.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structJsonVal.html">JsonVal</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">definition of JSON objects <a href="structJsonVal.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structJsonParser.html">JsonParser</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">functions used for parsing JSON <a href="structJsonParser.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomOpSelector.html">CustomOpSelector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomStatefulOp.html">CustomStatefulOp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract class for library authors creating stateful op custom library should override Forward and destructor, and has an option to implement Backward. <a href="classCustomStatefulOp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomStatefulOpWrapper.html">CustomStatefulOpWrapper</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">StatefulOp wrapper class to pass to backend OpState. <a href="classCustomStatefulOpWrapper.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomOp.html">CustomOp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to hold custom operator registration. <a href="classCustomOp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomPass.html">CustomPass</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract class for graph passes. <a href="classCustomPass.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomPartitioner.html">CustomPartitioner</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract class for subgraph property. <a href="classCustomPartitioner.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRegistry.html">Registry&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classRegistry.html" title="Registry class to registers things (ops, properties) Singleton class. ">Registry</a> class to registers things (ops, properties) Singleton class. <a href="classRegistry.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aae1f2ee7f9331ffbd79db3708fd193ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aae1f2ee7f9331ffbd79db3708fd193ed">MX_LIBRARY_VERSION</a>&#160;&#160;&#160;7</td></tr>
<tr class="separator:aae1f2ee7f9331ffbd79db3708fd193ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb30ec605ba828f085c28799b89383ad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#acb30ec605ba828f085c28799b89383ad">PRIVATE_SYMBOL</a>&#160;&#160;&#160;__attribute__ ((visibility (&quot;hidden&quot;)))</td></tr>
<tr class="memdesc:acb30ec605ba828f085c28799b89383ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">For loading multiple custom op libraries in Linux, exporting same symbol multiple times may lead to undefined behaviour, so we need to set symbol visibility to hidden see <a href="https://labjack.com/news/simple-cpp-symbol-visibility-demo">https://labjack.com/news/simple-cpp-symbol-visibility-demo</a> for details. <a href="#acb30ec605ba828f085c28799b89383ad">More...</a><br /></td></tr>
<tr class="separator:acb30ec605ba828f085c28799b89383ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a673d5372271f4182a2fb5315c2e335b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a673d5372271f4182a2fb5315c2e335b4">DLPACK_EXTERN_C</a></td></tr>
<tr class="separator:a673d5372271f4182a2fb5315c2e335b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a493a8fe63f179b98d4e7a1728659a808"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a493a8fe63f179b98d4e7a1728659a808">DLPACK_VERSION</a>&#160;&#160;&#160;020</td></tr>
<tr class="memdesc:a493a8fe63f179b98d4e7a1728659a808"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current version of dlpack. <a href="#a493a8fe63f179b98d4e7a1728659a808">More...</a><br /></td></tr>
<tr class="separator:a493a8fe63f179b98d4e7a1728659a808"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad57157a7cb94036d48d0444fd14ab6cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad57157a7cb94036d48d0444fd14ab6cf">DLPACK_DLL</a></td></tr>
<tr class="memdesc:ad57157a7cb94036d48d0444fd14ab6cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">DLPACK_DLL prefix for windows. <a href="#ad57157a7cb94036d48d0444fd14ab6cf">More...</a><br /></td></tr>
<tr class="separator:ad57157a7cb94036d48d0444fd14ab6cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bab156d26b9eface536d0c5d03d9b52"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a3bab156d26b9eface536d0c5d03d9b52">MX_NUM_CPU_RANDOM_STATES</a>&#160;&#160;&#160;1024</td></tr>
<tr class="memdesc:a3bab156d26b9eface536d0c5d03d9b52"><td class="mdescLeft">&#160;</td><td class="mdescRight">MXNet initialized random states for each device, used for parallelism. <a href="#a3bab156d26b9eface536d0c5d03d9b52">More...</a><br /></td></tr>
<tr class="separator:a3bab156d26b9eface536d0c5d03d9b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ac2ed4c5f2ee26d5c748aee108e3cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa0ac2ed4c5f2ee26d5c748aee108e3cd">MX_NUM_GPU_RANDOM_STATES</a>&#160;&#160;&#160;32768</td></tr>
<tr class="separator:aa0ac2ed4c5f2ee26d5c748aee108e3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5f044e03093ffae2626b35fa17f610d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ab5f044e03093ffae2626b35fa17f610d">MX_STR_SUBGRAPH_SYM_JSON</a>&#160;&#160;&#160;&quot;subgraph_sym_json&quot;</td></tr>
<tr class="memdesc:ab5f044e03093ffae2626b35fa17f610d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to help passing serialized subgraph through attribute dict. <a href="#ab5f044e03093ffae2626b35fa17f610d">More...</a><br /></td></tr>
<tr class="separator:ab5f044e03093ffae2626b35fa17f610d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73b8e3f85f6f0aba1c0fd0917773b24f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a73b8e3f85f6f0aba1c0fd0917773b24f">MX_STR_DTYPE</a>&#160;&#160;&#160;&quot;__ext_dtype__&quot;</td></tr>
<tr class="separator:a73b8e3f85f6f0aba1c0fd0917773b24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab031cafe8f2e358de3c1cadc57a346f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ab031cafe8f2e358de3c1cadc57a346f3">MX_STR_SHAPE</a>&#160;&#160;&#160;&quot;__ext_shape__&quot;</td></tr>
<tr class="separator:ab031cafe8f2e358de3c1cadc57a346f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac745a1b1f09e730abf98f51d2e513103"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac745a1b1f09e730abf98f51d2e513103">MX_STR_CONCAT_</a>(__a, __b)&#160;&#160;&#160;__a ## __b</td></tr>
<tr class="memdesc:ac745a1b1f09e730abf98f51d2e513103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macros to help with string concat Annoyingly, the concat_ and concat macros are necessary to be able to use <b>COUNTER</b> in an identifier name. <a href="#ac745a1b1f09e730abf98f51d2e513103">More...</a><br /></td></tr>
<tr class="separator:ac745a1b1f09e730abf98f51d2e513103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad900a5506445a60d8e5ebd5079b0324f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a>(__a, __b)&#160;&#160;&#160;<a class="el" href="lib__api_8h.html#ac745a1b1f09e730abf98f51d2e513103">MX_STR_CONCAT_</a>(__a, __b)</td></tr>
<tr class="separator:ad900a5506445a60d8e5ebd5079b0324f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a5ee382299049479eaadc1f87d9dffb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a8a5ee382299049479eaadc1f87d9dffb">MX_STRINGIFY</a>(x)&#160;&#160;&#160;#x</td></tr>
<tr class="memdesc:a8a5ee382299049479eaadc1f87d9dffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">convert a token to a string <a href="#a8a5ee382299049479eaadc1f87d9dffb">More...</a><br /></td></tr>
<tr class="separator:a8a5ee382299049479eaadc1f87d9dffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac281c11d1b738cf6f4d44d1d6d2a41f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a>(x)&#160;&#160;&#160;<a class="el" href="lib__api_8h.html#a8a5ee382299049479eaadc1f87d9dffb">MX_STRINGIFY</a>(x)</td></tr>
<tr class="separator:ac281c11d1b738cf6f4d44d1d6d2a41f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a412e972cba005076b3475796cd1ffbf6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a412e972cba005076b3475796cd1ffbf6">MX_REGISTER_NAME_</a>(Name)&#160;&#160;&#160;MXNet ## _CustomOp ## _</td></tr>
<tr class="memdesc:a412e972cba005076b3475796cd1ffbf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare a variable with custom name <a href="#a412e972cba005076b3475796cd1ffbf6">More...</a><br /></td></tr>
<tr class="separator:a412e972cba005076b3475796cd1ffbf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff6fd8259cfbba7e57a637c862dac3ca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aff6fd8259cfbba7e57a637c862dac3ca">MX_REGISTER_DEF_</a>(Name)&#160;&#160;&#160;<a class="el" href="classCustomOp.html">CustomOp</a> <a class="el" href="lib__api_8h.html#a412e972cba005076b3475796cd1ffbf6">MX_REGISTER_NAME_</a>(Name)</td></tr>
<tr class="separator:aff6fd8259cfbba7e57a637c862dac3ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94176fcbf0773036ac1e43e4b4dde51f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a94176fcbf0773036ac1e43e4b4dde51f">MX_REGISTER_PROP_NAME_</a>(Name)&#160;&#160;&#160;MXNet ## _CustomSubProp ## _</td></tr>
<tr class="separator:a94176fcbf0773036ac1e43e4b4dde51f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e2f91e3c9f64ceffdfdb55f36354e91"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a2e2f91e3c9f64ceffdfdb55f36354e91">MX_REGISTER_PROP_DEF_</a>(Name)&#160;&#160;&#160;<a class="el" href="classCustomPartitioner.html">CustomPartitioner</a> <a class="el" href="lib__api_8h.html#a94176fcbf0773036ac1e43e4b4dde51f">MX_REGISTER_PROP_NAME_</a>(Name)</td></tr>
<tr class="separator:a2e2f91e3c9f64ceffdfdb55f36354e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d87ac322fe13c4c98a97d4c44c95e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a35d87ac322fe13c4c98a97d4c44c95e2">MX_REGISTER_PASS_NAME_</a>(Name)&#160;&#160;&#160;MXNet ## _CustomPass ## _</td></tr>
<tr class="separator:a35d87ac322fe13c4c98a97d4c44c95e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a6ec114cb6f848ec8170c9df3475d59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a4a6ec114cb6f848ec8170c9df3475d59">MX_REGISTER_PASS_DEF_</a>(Name)&#160;&#160;&#160;<a class="el" href="classCustomPass.html">CustomPass</a> <a class="el" href="lib__api_8h.html#a35d87ac322fe13c4c98a97d4c44c95e2">MX_REGISTER_PASS_NAME_</a>(Name)</td></tr>
<tr class="separator:a4a6ec114cb6f848ec8170c9df3475d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb165f6d1b3c2f0d4edfb5667a8b3638"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#abb165f6d1b3c2f0d4edfb5667a8b3638">REGISTER_OP</a>(Name)</td></tr>
<tr class="memdesc:abb165f6d1b3c2f0d4edfb5667a8b3638"><td class="mdescLeft">&#160;</td><td class="mdescRight">assign a var to a value <a href="#abb165f6d1b3c2f0d4edfb5667a8b3638">More...</a><br /></td></tr>
<tr class="separator:abb165f6d1b3c2f0d4edfb5667a8b3638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93f481366195b39d8e4ea3bbec2a1b04"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a93f481366195b39d8e4ea3bbec2a1b04">REGISTER_PARTITIONER</a>(Name)</td></tr>
<tr class="separator:a93f481366195b39d8e4ea3bbec2a1b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9d14ed170244c036e1ff8a3531e89c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ab9d14ed170244c036e1ff8a3531e89c6">REGISTER_PASS</a>(Name)</td></tr>
<tr class="separator:ab9d14ed170244c036e1ff8a3531e89c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac39728fb75d241b62d4ed9261b7ddca3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac39728fb75d241b62d4ed9261b7ddca3">MXLIB_OPREGSIZE_STR</a>&#160;&#160;&#160;&quot;_opRegSize&quot;</td></tr>
<tr class="memdesc:ac39728fb75d241b62d4ed9261b7ddca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Following are the C type APIs implemented in the external library Each API has a #define string that is used to lookup the function in the library Followed by the function declaration. <a href="#ac39728fb75d241b62d4ed9261b7ddca3">More...</a><br /></td></tr>
<tr class="separator:ac39728fb75d241b62d4ed9261b7ddca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addceae596034e042d887954af8499f06"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#addceae596034e042d887954af8499f06">MXLIB_OPREGGET_STR</a>&#160;&#160;&#160;&quot;_opRegGet&quot;</td></tr>
<tr class="separator:addceae596034e042d887954af8499f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9581ed05ac3aefc194698100cc54e5a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa9581ed05ac3aefc194698100cc54e5a">MXLIB_OPCALLFREE_STR</a>&#160;&#160;&#160;&quot;_opCallFree&quot;</td></tr>
<tr class="separator:aa9581ed05ac3aefc194698100cc54e5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ff60ae5ae2081aac9715da91f38845e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a6ff60ae5ae2081aac9715da91f38845e">MXLIB_OPCALLPARSEATTRS_STR</a>&#160;&#160;&#160;&quot;_opCallParseAttrs&quot;</td></tr>
<tr class="separator:a6ff60ae5ae2081aac9715da91f38845e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac21fd9c191ceab0d17561f4523ad6d23"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac21fd9c191ceab0d17561f4523ad6d23">MXLIB_OPCALLINFERSHAPE_STR</a>&#160;&#160;&#160;&quot;_opCallInferShape&quot;</td></tr>
<tr class="separator:ac21fd9c191ceab0d17561f4523ad6d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dfca2084c7df461862458f77a8f6244"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a7dfca2084c7df461862458f77a8f6244">MXLIB_OPCALLINFERTYPE_STR</a>&#160;&#160;&#160;&quot;_opCallInferType&quot;</td></tr>
<tr class="separator:a7dfca2084c7df461862458f77a8f6244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95494016bf876dcb3ec4ae0b3c5f6941"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a95494016bf876dcb3ec4ae0b3c5f6941">MXLIB_OPCALLINFERSTYPE_STR</a>&#160;&#160;&#160;&quot;_opCallInferSType&quot;</td></tr>
<tr class="separator:a95494016bf876dcb3ec4ae0b3c5f6941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a906b409889769dcb9ed23c68becf93e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a906b409889769dcb9ed23c68becf93e3">MXLIB_OPCALLFCOMP_STR</a>&#160;&#160;&#160;&quot;_opCallFCompute&quot;</td></tr>
<tr class="separator:a906b409889769dcb9ed23c68becf93e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf2577efc9a9eed8d27d6ca0af98abe1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#abf2577efc9a9eed8d27d6ca0af98abe1">MXLIB_OPCALLMUTATEINPUTS_STR</a>&#160;&#160;&#160;&quot;_opCallMutateInputs&quot;</td></tr>
<tr class="separator:abf2577efc9a9eed8d27d6ca0af98abe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a950d395e618360e1d9c4c5b1fedb018d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a950d395e618360e1d9c4c5b1fedb018d">MXLIB_OPCALLCREATEOPSTATE_STR</a>&#160;&#160;&#160;&quot;_opCallCreateOpState&quot;</td></tr>
<tr class="separator:a950d395e618360e1d9c4c5b1fedb018d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad10be40f94357f8913f99288ccae5bea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad10be40f94357f8913f99288ccae5bea">MXLIB_OPCALLFSTATEFULCOMP_STR</a>&#160;&#160;&#160;&quot;_opCallFStatefulCompute&quot;</td></tr>
<tr class="separator:ad10be40f94357f8913f99288ccae5bea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16de6fee0cb7e09e2e3c0885b44d646d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a16de6fee0cb7e09e2e3c0885b44d646d">MXLIB_PARTREGSIZE_STR</a>&#160;&#160;&#160;&quot;_partRegSize&quot;</td></tr>
<tr class="separator:a16de6fee0cb7e09e2e3c0885b44d646d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96ebb8de1ce9d8f8a493e262b477f0b7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a96ebb8de1ce9d8f8a493e262b477f0b7">MXLIB_PARTREGGETCOUNT_STR</a>&#160;&#160;&#160;&quot;_partRegGetCount&quot;</td></tr>
<tr class="separator:a96ebb8de1ce9d8f8a493e262b477f0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76dda0c1c4d6eafc6ac80a72527ec556"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a76dda0c1c4d6eafc6ac80a72527ec556">MXLIB_PARTREGGET_STR</a>&#160;&#160;&#160;&quot;_partRegGet&quot;</td></tr>
<tr class="separator:a76dda0c1c4d6eafc6ac80a72527ec556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e8e351e67da4f1822042c0d01e8bbf4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a7e8e351e67da4f1822042c0d01e8bbf4">MXLIB_PARTCALLSUPPORTEDOPS_STR</a>&#160;&#160;&#160;&quot;_partCallSupportedOps&quot;</td></tr>
<tr class="separator:a7e8e351e67da4f1822042c0d01e8bbf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2136a3986fc3a229cb426f41d0dfe3c8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a2136a3986fc3a229cb426f41d0dfe3c8">MXLIB_PARTCALLCREATESELECTOR_STR</a>&#160;&#160;&#160;&quot;_partCallCreateSelector&quot;</td></tr>
<tr class="separator:a2136a3986fc3a229cb426f41d0dfe3c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca6909f1ef0b0a4e7dc4815dd75255a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#acca6909f1ef0b0a4e7dc4815dd75255a">MXLIB_PARTCALLSELECT_STR</a>&#160;&#160;&#160;&quot;_partCallSelect&quot;</td></tr>
<tr class="separator:acca6909f1ef0b0a4e7dc4815dd75255a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b9b257f62fcfa8e55af189fe7d88cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a84b9b257f62fcfa8e55af189fe7d88cb">MXLIB_PARTCALLSELECTINPUT_STR</a>&#160;&#160;&#160;&quot;_partCallSelectInput&quot;</td></tr>
<tr class="separator:a84b9b257f62fcfa8e55af189fe7d88cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf23d7995f4c8617b136c6c311405b35"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#abf23d7995f4c8617b136c6c311405b35">MXLIB_PARTCALLSELECTOUTPUT_STR</a>&#160;&#160;&#160;&quot;_partCallSelectOutput&quot;</td></tr>
<tr class="separator:abf23d7995f4c8617b136c6c311405b35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad43d2f7d1ca8f2b248630ef95b3eb5e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad43d2f7d1ca8f2b248630ef95b3eb5e9">MXLIB_PARTCALLFILTER_STR</a>&#160;&#160;&#160;&quot;_partCallFilter&quot;</td></tr>
<tr class="separator:ad43d2f7d1ca8f2b248630ef95b3eb5e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae39d5c24d804a90a045483fe5d87b2c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ae39d5c24d804a90a045483fe5d87b2c2">MXLIB_PARTCALLRESET_STR</a>&#160;&#160;&#160;&quot;_partCallReset&quot;</td></tr>
<tr class="separator:ae39d5c24d804a90a045483fe5d87b2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf42394c4714072d81f4612a9d425fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aebf42394c4714072d81f4612a9d425fe">MXLIB_PARTCALLREVIEWSUBGRAPH_STR</a>&#160;&#160;&#160;&quot;_partCallReviewSubgraph&quot;</td></tr>
<tr class="separator:aebf42394c4714072d81f4612a9d425fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ec8627b92e8212d9e3368619e8361a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a6ec8627b92e8212d9e3368619e8361a4">MXLIB_PASSREGSIZE_STR</a>&#160;&#160;&#160;&quot;_passRegSize&quot;</td></tr>
<tr class="separator:a6ec8627b92e8212d9e3368619e8361a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a303c810b43b30121a5f24ed880d53d09"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a303c810b43b30121a5f24ed880d53d09">MXLIB_PASSREGGET_STR</a>&#160;&#160;&#160;&quot;_passRegGet&quot;</td></tr>
<tr class="separator:a303c810b43b30121a5f24ed880d53d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ebc06cae18b2b72e41789d816734540"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a5ebc06cae18b2b72e41789d816734540">MXLIB_PASSCALLGRAPHPASS_STR</a>&#160;&#160;&#160;&quot;_passCallGraphPass&quot;</td></tr>
<tr class="separator:a5ebc06cae18b2b72e41789d816734540"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5405711bcd25d56b2fc2a3fd827ea3c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad5405711bcd25d56b2fc2a3fd827ea3c">MXLIB_INITIALIZE_STR</a>&#160;&#160;&#160;&quot;initialize&quot;</td></tr>
<tr class="separator:ad5405711bcd25d56b2fc2a3fd827ea3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13594d09f1287481f1b7b6b695d6c1d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a13594d09f1287481f1b7b6b695d6c1d8">MXLIB_OPVERSION_STR</a>&#160;&#160;&#160;&quot;_opVersion&quot;</td></tr>
<tr class="separator:a13594d09f1287481f1b7b6b695d6c1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a561ade7c8fd77c6882e937514f5b1e05"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;&#160;&#160;int</td></tr>
<tr class="separator:a561ade7c8fd77c6882e937514f5b1e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a140a8dac396de476f9ed0c6a093cf4fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;&#160;&#160;void</td></tr>
<tr class="separator:a140a8dac396de476f9ed0c6a093cf4fa"><td class="memSeparator" colspan="2">&#160;</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:a968fbc7c8188f24a0c761e04e6683f46"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a>) (void *, int)</td></tr>
<tr class="memdesc:a968fbc7c8188f24a0c761e04e6683f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">resource malloc function to allocate memory inside Forward/Backward functions <a href="#a968fbc7c8188f24a0c761e04e6683f46">More...</a><br /></td></tr>
<tr class="separator:a968fbc7c8188f24a0c761e04e6683f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67cbe0396691abf6f71dc89cfdf42113"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a>) (void *, int, int, int, void **, int64_t **, int64_t **)</td></tr>
<tr class="memdesc:a67cbe0396691abf6f71dc89cfdf42113"><td class="mdescLeft">&#160;</td><td class="mdescRight">sparse alloc function to allocate memory inside Forward/Backward functions <a href="#a67cbe0396691abf6f71dc89cfdf42113">More...</a><br /></td></tr>
<tr class="separator:a67cbe0396691abf6f71dc89cfdf42113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5253c3139a5b1a7de7f4d679be0993dc"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a5253c3139a5b1a7de7f4d679be0993dc">nd_malloc_t</a>) (const void *_ndarray_alloc, const int64_t *shapes, int num_shapes, const char *dev_str, int dev_id, int dtype, const char *name, int isArg, void **data)</td></tr>
<tr class="memdesc:a5253c3139a5b1a7de7f4d679be0993dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">resource malloc function to allocate ndarrays for graph passes <a href="#a5253c3139a5b1a7de7f4d679be0993dc">More...</a><br /></td></tr>
<tr class="separator:a5253c3139a5b1a7de7f4d679be0993dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8162b92183ede23d6d3c3195f87e69a"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad8162b92183ede23d6d3c3195f87e69a">mx_stream_t</a></td></tr>
<tr class="memdesc:ad8162b92183ede23d6d3c3195f87e69a"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPU stream pointer, is void* when not compiled with CUDA. <a href="#ad8162b92183ede23d6d3c3195f87e69a">More...</a><br /></td></tr>
<tr class="separator:ad8162b92183ede23d6d3c3195f87e69a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3e9b5f89cdbed5da83c4d1e82b353f6"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac3e9b5f89cdbed5da83c4d1e82b353f6">mx_gpu_rand_t</a></td></tr>
<tr class="separator:ac3e9b5f89cdbed5da83c4d1e82b353f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9157ce7266380f368c7108e9c01de9cf"><td class="memItemLeft" align="right" valign="top">typedef std::mt19937&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a9157ce7266380f368c7108e9c01de9cf">mx_cpu_rand_t</a></td></tr>
<tr class="separator:a9157ce7266380f368c7108e9c01de9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f08ddfbd009eee6f4e7c3d09b7dcec4"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; <a class="el" href="structMXTensor.html">MXTensor</a> &gt; *inputs, std::vector&lt; <a class="el" href="structMXTensor.html">MXTensor</a> &gt; *outputs, const <a class="el" href="classOpResource.html">OpResource</a> &amp;res)</td></tr>
<tr class="memdesc:a1f08ddfbd009eee6f4e7c3d09b7dcec4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom Operator function templates. <a href="#a1f08ddfbd009eee6f4e7c3d09b7dcec4">More...</a><br /></td></tr>
<tr class="separator:a1f08ddfbd009eee6f4e7c3d09b7dcec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dec0090b22f582ad61af85182d57eac"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, int *num_inputs, int *num_outputs)</td></tr>
<tr class="separator:a3dec0090b22f582ad61af85182d57eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fd756f2bc55f25cd975bb2b46658b48"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *in_types, std::vector&lt; int &gt; *out_types)</td></tr>
<tr class="separator:a4fd756f2bc55f25cd975bb2b46658b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af25bfeef0f16454f26bab8f9513584ad"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *in_storage_types, std::vector&lt; int &gt; *out_storage_types)</td></tr>
<tr class="separator:af25bfeef0f16454f26bab8f9513584ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a90ac3c16289ec597b27761f7c96344"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; std::vector&lt; unsigned int &gt; &gt; *in_shapes, std::vector&lt; std::vector&lt; unsigned int &gt; &gt; *out_shapes)</td></tr>
<tr class="separator:a1a90ac3c16289ec597b27761f7c96344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af42d89d470e8cf1d12ead00bcb474ff5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *input_indices)</td></tr>
<tr class="separator:af42d89d470e8cf1d12ead00bcb474ff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af698f3fc9b50cde11089b4f6c48bcd94"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a>) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, <a class="el" href="classCustomStatefulOp.html">CustomStatefulOp</a> **)</td></tr>
<tr class="separator:af698f3fc9b50cde11089b4f6c48bcd94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30605e6fe491a55736d0699d9665fc79"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a>) (const std::string &amp;in_graph, const std::string **out_graph, const std::unordered_map&lt; std::string, std::string &gt; &amp;options, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;args, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;aux, const <a class="el" href="classPassResource.html">PassResource</a> &amp;res)</td></tr>
<tr class="memdesc:a30605e6fe491a55736d0699d9665fc79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom Pass Create function template. <a href="#a30605e6fe491a55736d0699d9665fc79">More...</a><br /></td></tr>
<tr class="separator:a30605e6fe491a55736d0699d9665fc79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0ab026c08bde9d12d234fe204b46df2"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a>) (const std::string &amp;json, std::vector&lt; int &gt; *ids, const std::unordered_map&lt; std::string, std::string &gt; &amp;options)</td></tr>
<tr class="memdesc:af0ab026c08bde9d12d234fe204b46df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom Subgraph Create function template. <a href="#af0ab026c08bde9d12d234fe204b46df2">More...</a><br /></td></tr>
<tr class="separator:af0ab026c08bde9d12d234fe204b46df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa25705682ce153223279075ab0124b92"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a>) (const std::string &amp;json, <a class="el" href="classCustomOpSelector.html">CustomOpSelector</a> **sel_inst, const std::unordered_map&lt; std::string, std::string &gt; &amp;options)</td></tr>
<tr class="separator:aa25705682ce153223279075ab0124b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81025cba587b988a2f6a9b619139e30d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a>) (const std::string &amp;json, int subgraph_id, bool *accept, const std::unordered_map&lt; std::string, std::string &gt; &amp;options, std::unordered_map&lt; std::string, std::string &gt; *attrs, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;args, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;aux)</td></tr>
<tr class="separator:a81025cba587b988a2f6a9b619139e30d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62bc19b0f724d20fff152c4a67bcdbd4"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a62bc19b0f724d20fff152c4a67bcdbd4">opRegSize_t</a>) (void)</td></tr>
<tr class="separator:a62bc19b0f724d20fff152c4a67bcdbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17320ebb02df8c4504273ea388911620"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a17320ebb02df8c4504273ea388911620">opRegGet_t</a>) (int idx, const char **name, int *isSGop, const char ***forward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **forward_fp, int *forward_count, const char ***backward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **backward_fp, int *backward_count, const char ***create_op_ctx, <a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> **create_op_fp, int *create_op_count, <a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> *parse, <a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> *type, <a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> *stype, <a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> *shape, <a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> *mutate)</td></tr>
<tr class="separator:a17320ebb02df8c4504273ea388911620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3258239cea429bb3cde850f5886a7e35"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a3258239cea429bb3cde850f5886a7e35">opCallFree_t</a>) (void *ptr)</td></tr>
<tr class="separator:a3258239cea429bb3cde850f5886a7e35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5921a39658247ba326e42c368c7099b8"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a5921a39658247ba326e42c368c7099b8">opCallParseAttrs_t</a>) (<a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> parseAttrs, const char *const *keys, const char *const *vals, int num, int *num_in, int *num_out)</td></tr>
<tr class="separator:a5921a39658247ba326e42c368c7099b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5336c8ebf9827e531319758104911729"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a5336c8ebf9827e531319758104911729">opCallInferShape_t</a>) (<a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> inferShape, const char *const *keys, const char *const *vals, int num, unsigned int **inshapes, int *indims, int num_in, unsigned int ***mod_inshapes, int **mod_indims, unsigned int ***outshapes, int **outdims, int num_out)</td></tr>
<tr class="separator:a5336c8ebf9827e531319758104911729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1da81448912eff1a562a33731e048a71"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a1da81448912eff1a562a33731e048a71">opCallInferType_t</a>) (<a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> inferType, const char *const *keys, const char *const *vals, int num, int *intypes, int num_in, int *outtypes, int num_out)</td></tr>
<tr class="separator:a1da81448912eff1a562a33731e048a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fefda369e84aaa9e946d26df07ac09f"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a4fefda369e84aaa9e946d26df07ac09f">opCallInferSType_t</a>) (<a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> inferSType, const char *const *keys, const char *const *vals, int num, int *intypes, int num_in, int *outtypes, int num_out)</td></tr>
<tr class="separator:a4fefda369e84aaa9e946d26df07ac09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ac1050db449d058b76aaaf6f819c66d"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a0ac1050db449d058b76aaaf6f819c66d">opCallFComp_t</a>) (<a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> fcomp, const char *const *keys, const char *const *vals, int num, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *cuda_stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td></tr>
<tr class="separator:a0ac1050db449d058b76aaaf6f819c66d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ed08a9d2a50d541b15b9ecde67a5848"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a7ed08a9d2a50d541b15b9ecde67a5848">opCallMutateInputs_t</a>) (<a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> mutate, const char *const *keys, const char *const *vals, int num, int **mutate_indices, int *indices_size)</td></tr>
<tr class="separator:a7ed08a9d2a50d541b15b9ecde67a5848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53bb73e2e474b731c94a2f6257f69118"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a53bb73e2e474b731c94a2f6257f69118">opCallCreateOpState_t</a>) (<a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> create_op, const char *const *keys, const char *const *vals, int num, void **state_op)</td></tr>
<tr class="separator:a53bb73e2e474b731c94a2f6257f69118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29a3efc8ef032d3c7f50780aa72f36fa"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a29a3efc8ef032d3c7f50780aa72f36fa">opCallFStatefulComp_t</a>) (int is_forward, void *state_op, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td></tr>
<tr class="separator:a29a3efc8ef032d3c7f50780aa72f36fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926eff4aca0b3c62c70a3d403d446029"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a926eff4aca0b3c62c70a3d403d446029">partRegSize_t</a>) (void)</td></tr>
<tr class="separator:a926eff4aca0b3c62c70a3d403d446029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab111979e1215d177927172a9e0fe1de6"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ab111979e1215d177927172a9e0fe1de6">partRegGetCount_t</a>) (int idx, const char **name)</td></tr>
<tr class="separator:ab111979e1215d177927172a9e0fe1de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a017a2457d20b6be9123c9c8241186cb0"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a017a2457d20b6be9123c9c8241186cb0">partRegGet_t</a>) (int part_idx, int stg_idx, const char **strategy, <a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> *supportedOps, <a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> *createSelector, <a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> *reviewSubgraph, const char **op_name)</td></tr>
<tr class="separator:a017a2457d20b6be9123c9c8241186cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a006663c60de1c6d71c3b38aa49ae3303"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a006663c60de1c6d71c3b38aa49ae3303">partCallSupportedOps_t</a>) (<a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> supportedOps, const char *json, int num_ids, int *ids, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td></tr>
<tr class="separator:a006663c60de1c6d71c3b38aa49ae3303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d540bcf2f0a407369dc2908a9dd31ec"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a9d540bcf2f0a407369dc2908a9dd31ec">partCallCreateSelector_t</a>) (<a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> createSelector, const char *json, void **selector, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td></tr>
<tr class="separator:a9d540bcf2f0a407369dc2908a9dd31ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac574e3034f03ff00aa319cd90aeb999b"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac574e3034f03ff00aa319cd90aeb999b">partCallSelect_t</a>) (void *sel_inst, int nodeID, int *selected)</td></tr>
<tr class="separator:ac574e3034f03ff00aa319cd90aeb999b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a42f8669cf19f9196add6a1da08b08c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a9a42f8669cf19f9196add6a1da08b08c">partCallSelectInput_t</a>) (void *sel_inst, int nodeID, int input_nodeID, int *selected)</td></tr>
<tr class="separator:a9a42f8669cf19f9196add6a1da08b08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae54468d5c91c9070afa1313a1eab0877"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ae54468d5c91c9070afa1313a1eab0877">partCallSelectOutput_t</a>) (void *sel_inst, int nodeID, int output_nodeID, int *selected)</td></tr>
<tr class="separator:ae54468d5c91c9070afa1313a1eab0877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b5585f36fff51381ab9cebd1f608184"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a2b5585f36fff51381ab9cebd1f608184">partCallFilter_t</a>) (void *sel_inst, int *candidates, int num_candidates, int **keep, int *num_keep)</td></tr>
<tr class="separator:a2b5585f36fff51381ab9cebd1f608184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5bb342788d285ea716d5bc03c977f06"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa5bb342788d285ea716d5bc03c977f06">partCallReset_t</a>) (void *sel_inst)</td></tr>
<tr class="separator:aa5bb342788d285ea716d5bc03c977f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44515b28b2a4b57550638211a6e391bc"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a44515b28b2a4b57550638211a6e391bc">partCallReviewSubgraph_t</a>) (<a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> reviewSubgraph, const char *json, int subgraph_id, int *accept, const char *const *opt_keys, const char *const *opt_vals, int num_opts, char ***attr_keys, char ***attr_vals, int *num_attrs, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id)</td></tr>
<tr class="separator:a44515b28b2a4b57550638211a6e391bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11085bbdb030917dd64214ced1161d04"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a11085bbdb030917dd64214ced1161d04">passRegSize_t</a>) (void)</td></tr>
<tr class="separator:a11085bbdb030917dd64214ced1161d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6e3af5dbf269069a81ef43e65c0d60f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa6e3af5dbf269069a81ef43e65c0d60f">passRegGet_t</a>) (int pass_idx, <a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> *graphPass, const char **pass_name)</td></tr>
<tr class="separator:aa6e3af5dbf269069a81ef43e65c0d60f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add86495ae3064704e43def1ef957a8ec"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#add86495ae3064704e43def1ef957a8ec">passCallGraphPass_t</a>) (<a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> graphPass, const char *in_graph, char **out_graph, const char *const *opt_keys, const char *const *opt_vals, int num_opts, const char *pass_name, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id, <a class="el" href="lib__api_8h.html#a5253c3139a5b1a7de7f4d679be0993dc">nd_malloc_t</a> nd_malloc, const void *nd_alloc)</td></tr>
<tr class="separator:add86495ae3064704e43def1ef957a8ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95dbe5fc49e225061d5b5450331a2082"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a95dbe5fc49e225061d5b5450331a2082">initialize_t</a>) (int version)</td></tr>
<tr class="separator:a95dbe5fc49e225061d5b5450331a2082"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa39b29654462c2bbe7837bd368a67fba"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa39b29654462c2bbe7837bd368a67fba">opVersion_t</a>) ()</td></tr>
<tr class="separator:aa39b29654462c2bbe7837bd368a67fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a49db572e18d84c47738fc746568fb573"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573">DLDeviceType</a> { <br />
&#160;&#160;<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573ab736fabc9e37c2acf3b09b88fdc65c9e">kDLCPU</a> = 1,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573ae04bfdcc919948d170b2ba26da09e680">kDLGPU</a> = 2,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573a61cf710df30b59b43a5e34e37ecd1973">kDLCPUPinned</a> = 3,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573a71b2f851779936d824bf2c235ed94a8d">kDLOpenCL</a> = 4,
<br />
&#160;&#160;<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573a31aefcffd60630580d74bf055c2c3ba0">kDLVulkan</a> = 7,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573a36ced4bf0304d68b5c633ddba5633e66">kDLMetal</a> = 8,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573af063bf37ea24c1839d3a78703c2468e7">kDLVPI</a> = 9,
<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573adeeb5e6f50f4309676e49f7a12512171">kDLROCM</a> = 10,
<br />
&#160;&#160;<a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573aea5cdddfa3ac11130048ad8e2a012363">kDLExtDev</a> = 12,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573ab736fabc9e37c2acf3b09b88fdc65c9e">kDLCPU</a> = 1,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573ae04bfdcc919948d170b2ba26da09e680">kDLGPU</a> = 2,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573a61cf710df30b59b43a5e34e37ecd1973">kDLCPUPinned</a> = 3,
<br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573a71b2f851779936d824bf2c235ed94a8d">kDLOpenCL</a> = 4,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573a31aefcffd60630580d74bf055c2c3ba0">kDLVulkan</a> = 7,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573a36ced4bf0304d68b5c633ddba5633e66">kDLMetal</a> = 8,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573af063bf37ea24c1839d3a78703c2468e7">kDLVPI</a> = 9,
<br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573adeeb5e6f50f4309676e49f7a12512171">kDLROCM</a> = 10,
<a class="el" href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573aea5cdddfa3ac11130048ad8e2a012363">kDLExtDev</a> = 12
<br />
}<tr class="memdesc:a49db572e18d84c47738fc746568fb573"><td class="mdescLeft">&#160;</td><td class="mdescRight">The device type in <a class="el" href="structDLContext.html" title="A Device context for Tensor and operator. ">DLContext</a>. <a href="lib__api_8h.html#a49db572e18d84c47738fc746568fb573">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a49db572e18d84c47738fc746568fb573"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a5dbaa5fb67f4845a973c09a7f2ec50"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50">DLDataTypeCode</a> { <br />
&#160;&#160;<a class="el" href="dlpack_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50a291cf38955be5c45c3aa50cea13c5e6e">kDLInt</a> = 0U,
<a class="el" href="dlpack_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50aa19211076c5ae99e281ea430a25b102a">kDLUInt</a> = 1U,
<a class="el" href="dlpack_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50a8bd73646a2aa8465201b59ab7d1a83e0">kDLFloat</a> = 2U,
<a class="el" href="dlpack_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50a6a739f1b3ce2f8978da99a5ac4a887a6">kDLBfloat</a> = 4U,
<br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50a291cf38955be5c45c3aa50cea13c5e6e">kDLInt</a> = 0U,
<a class="el" href="lib__api_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50aa19211076c5ae99e281ea430a25b102a">kDLUInt</a> = 1U,
<a class="el" href="lib__api_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50a8bd73646a2aa8465201b59ab7d1a83e0">kDLFloat</a> = 2U
<br />
}<tr class="memdesc:a2a5dbaa5fb67f4845a973c09a7f2ec50"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type code options <a class="el" href="structDLDataType.html" title="The data type the tensor can hold. ">DLDataType</a>. <a href="lib__api_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a2a5dbaa5fb67f4845a973c09a7f2ec50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fd7b6a8c28e599287f76955305a8107"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107">MXDType</a> { <br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a75e1eb48a5686c313101d74a15ede280">kFloat32</a> = 0,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a58a251309ceb3f79df401f6f1f832853">kFloat64</a> = 1,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a3695575c42ea9fbb9cb6f4e38ce81f6a">kFloat16</a> = 2,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a242b08806f3e3251f1c1448bd824c6b4">kUint8</a> = 3,
<br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107ae3e576e62ae36818ff6edced2065c36e">kInt32</a> = 4,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a35e4dd379e92b467758b2445ddbc200d">kInt8</a> = 5,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a298f4738d8df72232a1e19267767b1aa">kInt64</a> = 6,
<a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107a4726ae509fa64eb63e55ec15cf106571">kUNSET</a> = 100
<br />
}<tr class="memdesc:a8fd7b6a8c28e599287f76955305a8107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tensor data type, consistent with mshadow data type. <a href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a8fd7b6a8c28e599287f76955305a8107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac693404a6862a14a4abc48447618f922"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ac693404a6862a14a4abc48447618f922">MXStorageType</a> { <a class="el" href="lib__api_8h.html#ac693404a6862a14a4abc48447618f922a7225d1ee08739640e2e5cecf1cb89a35">kDefaultStorage</a> = 0,
<a class="el" href="lib__api_8h.html#ac693404a6862a14a4abc48447618f922a16e06bf4da52a4538c7cc60e700cb014">kRowSparseStorage</a> = 1,
<a class="el" href="lib__api_8h.html#ac693404a6862a14a4abc48447618f922a9d1a5da7d14dea69f4e595f2b4083133">kCSRStorage</a> = 2
}</td></tr>
<tr class="separator:ac693404a6862a14a4abc48447618f922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21ac519c3c38b4fe206f4dc6dd26e8b7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a> { <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7aa9b28e9efa2947af6bffa93d3a4e32cc">MX_FAIL</a> = 0,
<a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7a75f3cf55ffd5431df4eb7907662e06c1">MX_SUCCESS</a> = 1
}</td></tr>
<tr class="separator:a21ac519c3c38b4fe206f4dc6dd26e8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749cb5137f6266520a9329b48a63decc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decc">JsonType</a> { <br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decca0f886785b600b91048fcdc434c6b4a8e">ERR</a>,
<a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63deccaec41e801b43cfbec49d343c900360bf9">STR</a>,
<a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decca17897512ed7598aeb5912e3d45bf000d">NUM</a>,
<a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decca25688e799536738ea469158ef15fd1c0">LIST</a>,
<br />
&#160;&#160;<a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decca4cafa5feda04184537b4d7d346e1e89b">MAP</a>
<br />
}<tr class="memdesc:a749cb5137f6266520a9329b48a63decc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Json utility to parse serialized subgraph symbol. <a href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decc">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a749cb5137f6266520a9329b48a63decc"><td class="memSeparator" colspan="2">&#160;</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:aa30ea1031e51376a72af965e02dc8f99"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa30ea1031e51376a72af965e02dc8f99">getShapeAt</a> (const std::string &amp;shape, unsigned index)</td></tr>
<tr class="separator:aa30ea1031e51376a72af965e02dc8f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affdad7be249ef9ef59f197155b2c3dde"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#affdad7be249ef9ef59f197155b2c3dde">getDtypeAt</a> (const std::string &amp;dtype, unsigned index)</td></tr>
<tr class="separator:affdad7be249ef9ef59f197155b2c3dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade85fac9a80edcdf9e6062cb079cd325"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ade85fac9a80edcdf9e6062cb079cd325">_opVersion</a> ()</td></tr>
<tr class="memdesc:ade85fac9a80edcdf9e6062cb079cd325"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns MXNet library version <a href="#ade85fac9a80edcdf9e6062cb079cd325">More...</a><br /></td></tr>
<tr class="separator:ade85fac9a80edcdf9e6062cb079cd325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6efacb1a30200f9f1fb05f77783959de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a6efacb1a30200f9f1fb05f77783959de">_opRegSize</a> ()</td></tr>
<tr class="memdesc:a6efacb1a30200f9f1fb05f77783959de"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns number of ops registered in this library <a href="#a6efacb1a30200f9f1fb05f77783959de">More...</a><br /></td></tr>
<tr class="separator:a6efacb1a30200f9f1fb05f77783959de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cca89d4bc8170d83215db2df7aca249"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a0cca89d4bc8170d83215db2df7aca249">_opRegGet</a> (int idx, const char **name, int *isSGop, const char ***forward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **forward_fp, int *forward_count, const char ***backward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **backward_fp, int *backward_count, const char ***create_op_ctx, <a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> **create_op_fp, int *create_op_count, <a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> *parse, <a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> *type, <a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> *stype, <a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> *shape, <a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> *mutate)</td></tr>
<tr class="memdesc:a0cca89d4bc8170d83215db2df7aca249"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns operator registration at specified index <a href="#a0cca89d4bc8170d83215db2df7aca249">More...</a><br /></td></tr>
<tr class="separator:a0cca89d4bc8170d83215db2df7aca249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e74b9b5a033075b0a934561a518a2cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a6e74b9b5a033075b0a934561a518a2cb">_opCallFree</a> (void *ptr)</td></tr>
<tr class="memdesc:a6e74b9b5a033075b0a934561a518a2cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">calls free from the external library for library allocated arrays <a href="#a6e74b9b5a033075b0a934561a518a2cb">More...</a><br /></td></tr>
<tr class="separator:a6e74b9b5a033075b0a934561a518a2cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c7ea71fa756938627d75d159bed951"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ae7c7ea71fa756938627d75d159bed951">_opCallParseAttrs</a> (<a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> parseAttrs, const char *const *keys, const char *const *vals, int num, int *num_in, int *num_out)</td></tr>
<tr class="memdesc:ae7c7ea71fa756938627d75d159bed951"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling parse attributes function for operator from library <a href="#ae7c7ea71fa756938627d75d159bed951">More...</a><br /></td></tr>
<tr class="separator:ae7c7ea71fa756938627d75d159bed951"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4c6fc2109fe6fc8dfcc4482e0ee2b77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ad4c6fc2109fe6fc8dfcc4482e0ee2b77">_opCallInferShape</a> (<a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> inferShape, const char *const *keys, const char *const *vals, int num, unsigned int **inshapes, int *indims, int num_in, unsigned int ***mod_inshapes, int **mod_indims, unsigned int ***outshapes, int **outdims, int num_out)</td></tr>
<tr class="memdesc:ad4c6fc2109fe6fc8dfcc4482e0ee2b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling inferShape function for operator from library <a href="#ad4c6fc2109fe6fc8dfcc4482e0ee2b77">More...</a><br /></td></tr>
<tr class="separator:ad4c6fc2109fe6fc8dfcc4482e0ee2b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdfcdcd043995be5d08fcd87614940bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#afdfcdcd043995be5d08fcd87614940bf">_opCallInferType</a> (<a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> inferType, const char *const *keys, const char *const *vals, int num, int *intypes, int num_in, int *outtypes, int num_out)</td></tr>
<tr class="memdesc:afdfcdcd043995be5d08fcd87614940bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling inferType function for operator from library <a href="#afdfcdcd043995be5d08fcd87614940bf">More...</a><br /></td></tr>
<tr class="separator:afdfcdcd043995be5d08fcd87614940bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d507e400a93fce06c9a057976b2abff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a1d507e400a93fce06c9a057976b2abff">_opCallInferSType</a> (<a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> inferSType, const char *const *keys, const char *const *vals, int num, int *instypes, int num_in, int *outstypes, int num_out)</td></tr>
<tr class="memdesc:a1d507e400a93fce06c9a057976b2abff"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling inferSType function for operator from library <a href="#a1d507e400a93fce06c9a057976b2abff">More...</a><br /></td></tr>
<tr class="separator:a1d507e400a93fce06c9a057976b2abff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae14e0cd9a973b1f0758800d49f79a00b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#ae14e0cd9a973b1f0758800d49f79a00b">_opCallFCompute</a> (<a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> fcomp, const char *const *keys, const char *const *vals, int num, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *cuda_stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td></tr>
<tr class="memdesc:ae14e0cd9a973b1f0758800d49f79a00b"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling Forward/Backward function for operator from library <a href="#ae14e0cd9a973b1f0758800d49f79a00b">More...</a><br /></td></tr>
<tr class="separator:ae14e0cd9a973b1f0758800d49f79a00b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f4b07186cf7242860a66deee2124ec0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a0f4b07186cf7242860a66deee2124ec0">_opCallMutateInputs</a> (<a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> mutate, const char *const *keys, const char *const *vals, int num, int **mutate_indices, int *indices_size)</td></tr>
<tr class="memdesc:a0f4b07186cf7242860a66deee2124ec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling mutateInputs function for operator from library <a href="#a0f4b07186cf7242860a66deee2124ec0">More...</a><br /></td></tr>
<tr class="separator:a0f4b07186cf7242860a66deee2124ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0141c817ac813aca5651c9177bf808fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a0141c817ac813aca5651c9177bf808fc">_opCallCreateOpState</a> (<a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> create_op, const char *const *keys, const char *const *vals, int num, void **state_op)</td></tr>
<tr class="memdesc:a0141c817ac813aca5651c9177bf808fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling createStatefulOp function for operator from library <a href="#a0141c817ac813aca5651c9177bf808fc">More...</a><br /></td></tr>
<tr class="separator:a0141c817ac813aca5651c9177bf808fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e55fadd96838743242762337ed05826"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a9e55fadd96838743242762337ed05826">_opCallFStatefulCompute</a> (int is_forward, void *state_op, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td></tr>
<tr class="memdesc:a9e55fadd96838743242762337ed05826"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling Stateful Forward/Backward for operator from library <a href="#a9e55fadd96838743242762337ed05826">More...</a><br /></td></tr>
<tr class="separator:a9e55fadd96838743242762337ed05826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8088989b079b01b821c7b7d0b960dfaa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a8088989b079b01b821c7b7d0b960dfaa">_partRegSize</a> ()</td></tr>
<tr class="memdesc:a8088989b079b01b821c7b7d0b960dfaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns number of partitioners registered in this library <a href="#a8088989b079b01b821c7b7d0b960dfaa">More...</a><br /></td></tr>
<tr class="separator:a8088989b079b01b821c7b7d0b960dfaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8a5a6598b9b674dcd015eab7c25bc38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#aa8a5a6598b9b674dcd015eab7c25bc38">_partRegGetCount</a> (int idx, const char **name)</td></tr>
<tr class="separator:aa8a5a6598b9b674dcd015eab7c25bc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2537dd42894ce3be70bfe74ab585fd09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a2537dd42894ce3be70bfe74ab585fd09">_partRegGet</a> (int part_idx, int stg_idx, const char **strategy, <a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> *supportedOps, <a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> *createSelector, <a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> *reviewSubgraph, const char **op_name)</td></tr>
<tr class="memdesc:a2537dd42894ce3be70bfe74ab585fd09"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns partitioner registration at specified index <a href="#a2537dd42894ce3be70bfe74ab585fd09">More...</a><br /></td></tr>
<tr class="separator:a2537dd42894ce3be70bfe74ab585fd09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21e7d2357ce3995d2dfcd282e18fcf4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a21e7d2357ce3995d2dfcd282e18fcf4d">_partCallSupportedOps</a> (<a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> supportedOps, const char *json, int num_ids, int *ids, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td></tr>
<tr class="memdesc:a21e7d2357ce3995d2dfcd282e18fcf4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling supported ops function from library <a href="#a21e7d2357ce3995d2dfcd282e18fcf4d">More...</a><br /></td></tr>
<tr class="separator:a21e7d2357ce3995d2dfcd282e18fcf4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a177c2fa842dc60c67a76d6db378700ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a177c2fa842dc60c67a76d6db378700ae">_partCallCreateSelector</a> (<a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> createSelector, const char *json, void **selector, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td></tr>
<tr class="memdesc:a177c2fa842dc60c67a76d6db378700ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling create selector function from library <a href="#a177c2fa842dc60c67a76d6db378700ae">More...</a><br /></td></tr>
<tr class="separator:a177c2fa842dc60c67a76d6db378700ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc5fcd7471b3ee96cf6939b1f2799a61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#acc5fcd7471b3ee96cf6939b1f2799a61">_partCallSelect</a> (void *sel_inst, int nodeID, int *selected)</td></tr>
<tr class="memdesc:acc5fcd7471b3ee96cf6939b1f2799a61"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling select function from library <a href="#acc5fcd7471b3ee96cf6939b1f2799a61">More...</a><br /></td></tr>
<tr class="separator:acc5fcd7471b3ee96cf6939b1f2799a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a876d77c3d311c7006f7b23578f85678a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a876d77c3d311c7006f7b23578f85678a">_partCallSelectInput</a> (void *sel_inst, int nodeID, int input_nodeID, int *selected)</td></tr>
<tr class="memdesc:a876d77c3d311c7006f7b23578f85678a"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling select input function from library <a href="#a876d77c3d311c7006f7b23578f85678a">More...</a><br /></td></tr>
<tr class="separator:a876d77c3d311c7006f7b23578f85678a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af623e317a08ae2d7822e4e81d4dcb1a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#af623e317a08ae2d7822e4e81d4dcb1a4">_partCallSelectOutput</a> (void *sel_inst, int nodeID, int output_nodeID, int *selected)</td></tr>
<tr class="memdesc:af623e317a08ae2d7822e4e81d4dcb1a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling select output function from library <a href="#af623e317a08ae2d7822e4e81d4dcb1a4">More...</a><br /></td></tr>
<tr class="separator:af623e317a08ae2d7822e4e81d4dcb1a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a670530b58e8ddc61982798fd788c3edf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a670530b58e8ddc61982798fd788c3edf">_partCallFilter</a> (void *sel_inst, int *candidates, int num_candidates, int **keep, int *num_keep)</td></tr>
<tr class="memdesc:a670530b58e8ddc61982798fd788c3edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling filter function from library <a href="#a670530b58e8ddc61982798fd788c3edf">More...</a><br /></td></tr>
<tr class="separator:a670530b58e8ddc61982798fd788c3edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8002368ce25c4f689b48c511b092373b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a8002368ce25c4f689b48c511b092373b">_partCallReset</a> (void *sel_inst)</td></tr>
<tr class="memdesc:a8002368ce25c4f689b48c511b092373b"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling reset selector function from library <a href="#a8002368ce25c4f689b48c511b092373b">More...</a><br /></td></tr>
<tr class="separator:a8002368ce25c4f689b48c511b092373b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9957473dff0f981cbc001b9ae2791341"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a9957473dff0f981cbc001b9ae2791341">_partCallReviewSubgraph</a> (<a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> reviewSubgraph, const char *json, int subgraph_id, int *accept, const char *const *opt_keys, const char *const *opt_vals, int num_opts, char ***attr_keys, char ***attr_vals, int *num_attrs, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id)</td></tr>
<tr class="memdesc:a9957473dff0f981cbc001b9ae2791341"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling review subgraph function from library <a href="#a9957473dff0f981cbc001b9ae2791341">More...</a><br /></td></tr>
<tr class="separator:a9957473dff0f981cbc001b9ae2791341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97a361685f2eb83a744f7fef61d8f26b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a97a361685f2eb83a744f7fef61d8f26b">_passRegSize</a> ()</td></tr>
<tr class="memdesc:a97a361685f2eb83a744f7fef61d8f26b"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns number of graph passes registered in this library <a href="#a97a361685f2eb83a744f7fef61d8f26b">More...</a><br /></td></tr>
<tr class="separator:a97a361685f2eb83a744f7fef61d8f26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89970aed9ffd96fa15718bb5fc4ab48d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a89970aed9ffd96fa15718bb5fc4ab48d">_passRegGet</a> (int pass_idx, <a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> *graphPass, const char **pass_name)</td></tr>
<tr class="memdesc:a89970aed9ffd96fa15718bb5fc4ab48d"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns pass registration at specified index <a href="#a89970aed9ffd96fa15718bb5fc4ab48d">More...</a><br /></td></tr>
<tr class="separator:a89970aed9ffd96fa15718bb5fc4ab48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d6c2bca17069282dd6ad141dffc44de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a8d6c2bca17069282dd6ad141dffc44de">_passCallGraphPass</a> (<a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> graphPass, const char *json, char **graph, const char *const *opt_keys, const char *const *opt_vals, int num_opts, const char *pass_name, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id, <a class="el" href="lib__api_8h.html#a5253c3139a5b1a7de7f4d679be0993dc">nd_malloc_t</a> nd_malloc, const void *nd_alloc)</td></tr>
<tr class="memdesc:a8d6c2bca17069282dd6ad141dffc44de"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns status of calling graph pass function from library <a href="#a8d6c2bca17069282dd6ad141dffc44de">More...</a><br /></td></tr>
<tr class="separator:a8d6c2bca17069282dd6ad141dffc44de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a804b39a26b4659cf236fc98ac08537f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lib__api_8h.html#a804b39a26b4659cf236fc98ac08537f5">initialize</a> (int version)</td></tr>
<tr class="memdesc:a804b39a26b4659cf236fc98ac08537f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the MXNet version is supported by the library. If supported, initializes the library. <a href="#a804b39a26b4659cf236fc98ac08537f5">More...</a><br /></td></tr>
<tr class="separator:a804b39a26b4659cf236fc98ac08537f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>APIs to interact with libraries This API specifies function prototypes to register custom ops, partitioner, and passes for library authors See example/extension/lib_custom_op/README.md See example/extension/lib_subgraph/README.md See example/extension/lib_pass/README.md. </p>
<p>Copyright (c) 2019 by Contributors </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ad57157a7cb94036d48d0444fd14ab6cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DLPACK_DLL</td>
</tr>
</table>
</div><div class="memdoc">
<p>DLPACK_DLL prefix for windows. </p>
</div>
</div>
<a class="anchor" id="a673d5372271f4182a2fb5315c2e335b4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DLPACK_EXTERN_C</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a493a8fe63f179b98d4e7a1728659a808"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DLPACK_VERSION&#160;&#160;&#160;020</td>
</tr>
</table>
</div><div class="memdoc">
<p>The current version of dlpack. </p>
</div>
</div>
<a class="anchor" id="a561ade7c8fd77c6882e937514f5b1e05"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_INT_RET&#160;&#160;&#160;int</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aae1f2ee7f9331ffbd79db3708fd193ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_LIBRARY_VERSION&#160;&#160;&#160;7</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3bab156d26b9eface536d0c5d03d9b52"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_NUM_CPU_RANDOM_STATES&#160;&#160;&#160;1024</td>
</tr>
</table>
</div><div class="memdoc">
<p>MXNet initialized random states for each device, used for parallelism. </p>
</div>
</div>
<a class="anchor" id="aa0ac2ed4c5f2ee26d5c748aee108e3cd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_NUM_GPU_RANDOM_STATES&#160;&#160;&#160;32768</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aff6fd8259cfbba7e57a637c862dac3ca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_DEF_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;<a class="el" href="classCustomOp.html">CustomOp</a> <a class="el" href="lib__api_8h.html#a412e972cba005076b3475796cd1ffbf6">MX_REGISTER_NAME_</a>(Name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a412e972cba005076b3475796cd1ffbf6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_NAME_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;MXNet ## _CustomOp ## _</td>
</tr>
</table>
</div><div class="memdoc">
<p>declare a variable with custom name </p>
</div>
</div>
<a class="anchor" id="a4a6ec114cb6f848ec8170c9df3475d59"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_PASS_DEF_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;<a class="el" href="classCustomPass.html">CustomPass</a> <a class="el" href="lib__api_8h.html#a35d87ac322fe13c4c98a97d4c44c95e2">MX_REGISTER_PASS_NAME_</a>(Name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a35d87ac322fe13c4c98a97d4c44c95e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_PASS_NAME_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;MXNet ## _CustomPass ## _</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2e2f91e3c9f64ceffdfdb55f36354e91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_PROP_DEF_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;<a class="el" href="classCustomPartitioner.html">CustomPartitioner</a> <a class="el" href="lib__api_8h.html#a94176fcbf0773036ac1e43e4b4dde51f">MX_REGISTER_PROP_NAME_</a>(Name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a94176fcbf0773036ac1e43e4b4dde51f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_REGISTER_PROP_NAME_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td>&#160;&#160;&#160;MXNet ## _CustomSubProp ## _</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad900a5506445a60d8e5ebd5079b0324f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STR_CONCAT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">__b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;<a class="el" href="lib__api_8h.html#ac745a1b1f09e730abf98f51d2e513103">MX_STR_CONCAT_</a>(__a, __b)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac745a1b1f09e730abf98f51d2e513103"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STR_CONCAT_</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">__b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;__a ## __b</td>
</tr>
</table>
</div><div class="memdoc">
<p>Macros to help with string concat Annoyingly, the concat_ and concat macros are necessary to be able to use <b>COUNTER</b> in an identifier name. </p>
</div>
</div>
<a class="anchor" id="a73b8e3f85f6f0aba1c0fd0917773b24f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STR_DTYPE&#160;&#160;&#160;&quot;__ext_dtype__&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab031cafe8f2e358de3c1cadc57a346f3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STR_SHAPE&#160;&#160;&#160;&quot;__ext_shape__&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab5f044e03093ffae2626b35fa17f610d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STR_SUBGRAPH_SYM_JSON&#160;&#160;&#160;&quot;subgraph_sym_json&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Macro to help passing serialized subgraph through attribute dict. </p>
</div>
</div>
<a class="anchor" id="a8a5ee382299049479eaadc1f87d9dffb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_STRINGIFY</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;#x</td>
</tr>
</table>
</div><div class="memdoc">
<p>convert a token to a string </p>
</div>
</div>
<a class="anchor" id="ac281c11d1b738cf6f4d44d1d6d2a41f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_TOSTRING</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;<a class="el" href="lib__api_8h.html#a8a5ee382299049479eaadc1f87d9dffb">MX_STRINGIFY</a>(x)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a140a8dac396de476f9ed0c6a093cf4fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MX_VOID_RET&#160;&#160;&#160;void</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad5405711bcd25d56b2fc2a3fd827ea3c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_INITIALIZE_STR&#160;&#160;&#160;&quot;initialize&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a950d395e618360e1d9c4c5b1fedb018d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLCREATEOPSTATE_STR&#160;&#160;&#160;&quot;_opCallCreateOpState&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a906b409889769dcb9ed23c68becf93e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLFCOMP_STR&#160;&#160;&#160;&quot;_opCallFCompute&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa9581ed05ac3aefc194698100cc54e5a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLFREE_STR&#160;&#160;&#160;&quot;_opCallFree&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad10be40f94357f8913f99288ccae5bea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLFSTATEFULCOMP_STR&#160;&#160;&#160;&quot;_opCallFStatefulCompute&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac21fd9c191ceab0d17561f4523ad6d23"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLINFERSHAPE_STR&#160;&#160;&#160;&quot;_opCallInferShape&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a95494016bf876dcb3ec4ae0b3c5f6941"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLINFERSTYPE_STR&#160;&#160;&#160;&quot;_opCallInferSType&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7dfca2084c7df461862458f77a8f6244"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLINFERTYPE_STR&#160;&#160;&#160;&quot;_opCallInferType&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abf2577efc9a9eed8d27d6ca0af98abe1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLMUTATEINPUTS_STR&#160;&#160;&#160;&quot;_opCallMutateInputs&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6ff60ae5ae2081aac9715da91f38845e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPCALLPARSEATTRS_STR&#160;&#160;&#160;&quot;_opCallParseAttrs&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="addceae596034e042d887954af8499f06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPREGGET_STR&#160;&#160;&#160;&quot;_opRegGet&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac39728fb75d241b62d4ed9261b7ddca3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPREGSIZE_STR&#160;&#160;&#160;&quot;_opRegSize&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Following are the C type APIs implemented in the external library Each API has a #define string that is used to lookup the function in the library Followed by the function declaration. </p>
</div>
</div>
<a class="anchor" id="a13594d09f1287481f1b7b6b695d6c1d8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_OPVERSION_STR&#160;&#160;&#160;&quot;_opVersion&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2136a3986fc3a229cb426f41d0dfe3c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLCREATESELECTOR_STR&#160;&#160;&#160;&quot;_partCallCreateSelector&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad43d2f7d1ca8f2b248630ef95b3eb5e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLFILTER_STR&#160;&#160;&#160;&quot;_partCallFilter&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae39d5c24d804a90a045483fe5d87b2c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLRESET_STR&#160;&#160;&#160;&quot;_partCallReset&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aebf42394c4714072d81f4612a9d425fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLREVIEWSUBGRAPH_STR&#160;&#160;&#160;&quot;_partCallReviewSubgraph&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acca6909f1ef0b0a4e7dc4815dd75255a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLSELECT_STR&#160;&#160;&#160;&quot;_partCallSelect&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a84b9b257f62fcfa8e55af189fe7d88cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLSELECTINPUT_STR&#160;&#160;&#160;&quot;_partCallSelectInput&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abf23d7995f4c8617b136c6c311405b35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLSELECTOUTPUT_STR&#160;&#160;&#160;&quot;_partCallSelectOutput&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7e8e351e67da4f1822042c0d01e8bbf4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTCALLSUPPORTEDOPS_STR&#160;&#160;&#160;&quot;_partCallSupportedOps&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a76dda0c1c4d6eafc6ac80a72527ec556"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTREGGET_STR&#160;&#160;&#160;&quot;_partRegGet&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a96ebb8de1ce9d8f8a493e262b477f0b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTREGGETCOUNT_STR&#160;&#160;&#160;&quot;_partRegGetCount&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a16de6fee0cb7e09e2e3c0885b44d646d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PARTREGSIZE_STR&#160;&#160;&#160;&quot;_partRegSize&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5ebc06cae18b2b72e41789d816734540"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PASSCALLGRAPHPASS_STR&#160;&#160;&#160;&quot;_passCallGraphPass&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a303c810b43b30121a5f24ed880d53d09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PASSREGGET_STR&#160;&#160;&#160;&quot;_passRegGet&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6ec8627b92e8212d9e3368619e8361a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MXLIB_PASSREGSIZE_STR&#160;&#160;&#160;&quot;_passRegSize&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acb30ec605ba828f085c28799b89383ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PRIVATE_SYMBOL&#160;&#160;&#160;__attribute__ ((visibility (&quot;hidden&quot;)))</td>
</tr>
</table>
</div><div class="memdoc">
<p>For loading multiple custom op libraries in Linux, exporting same symbol multiple times may lead to undefined behaviour, so we need to set symbol visibility to hidden see <a href="https://labjack.com/news/simple-cpp-symbol-visibility-demo">https://labjack.com/news/simple-cpp-symbol-visibility-demo</a> for details. </p>
</div>
</div>
<a class="anchor" id="abb165f6d1b3c2f0d4edfb5667a8b3638"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define REGISTER_OP</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a>(<a class="code" href="lib__api_8h.html#aff6fd8259cfbba7e57a637c862dac3ca">MX_REGISTER_DEF_</a>(Name), __COUNTER__) = <a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447">\</a></div><div class="line"><a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447"> Registry&lt;CustomOp&gt;::get</a>()-&gt;<a class="code" href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">add</a>(<a class="code" href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a>(Name))</div><div class="ttc" id="lib__api_8h_html_aff6fd8259cfbba7e57a637c862dac3ca"><div class="ttname"><a href="lib__api_8h.html#aff6fd8259cfbba7e57a637c862dac3ca">MX_REGISTER_DEF_</a></div><div class="ttdeci">#define MX_REGISTER_DEF_(Name)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1148</div></div>
<div class="ttc" id="classRegistry_html_addef8bc5abfb01ffe3d5c7d9075ea0ab"><div class="ttname"><a href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">Registry::add</a></div><div class="ttdeci">T &amp; add(const char *name)</div><div class="ttdoc">add a new entry </div><div class="ttdef"><b>Definition:</b> lib_api.h:1113</div></div>
<div class="ttc" id="lib__api_8h_html_ac281c11d1b738cf6f4d44d1d6d2a41f5"><div class="ttname"><a href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a></div><div class="ttdeci">#define MX_TOSTRING(x)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1144</div></div>
<div class="ttc" id="classRegistry_html_ad72795f95534250795044004cd836447"><div class="ttname"><a href="classRegistry.html#ad72795f95534250795044004cd836447">Registry::get</a></div><div class="ttdeci">static Registry * get() PRIVATE_SYMBOL</div><div class="ttdoc">get singleton pointer to class </div><div class="ttdef"><b>Definition:</b> lib_api.h:1105</div></div>
<div class="ttc" id="lib__api_8h_html_ad900a5506445a60d8e5ebd5079b0324f"><div class="ttname"><a href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a></div><div class="ttdeci">#define MX_STR_CONCAT(__a, __b)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1140</div></div>
</div><!-- fragment -->
<p>assign a var to a value </p>
</div>
</div>
<a class="anchor" id="a93f481366195b39d8e4ea3bbec2a1b04"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define REGISTER_PARTITIONER</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a>(<a class="code" href="lib__api_8h.html#a2e2f91e3c9f64ceffdfdb55f36354e91">MX_REGISTER_PROP_DEF_</a>(Name), __COUNTER__) = <a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447">\</a></div><div class="line"><a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447"> Registry&lt;CustomPartitioner&gt;::get</a>()-&gt;<a class="code" href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">add</a>(<a class="code" href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a>(Name))</div><div class="ttc" id="classRegistry_html_addef8bc5abfb01ffe3d5c7d9075ea0ab"><div class="ttname"><a href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">Registry::add</a></div><div class="ttdeci">T &amp; add(const char *name)</div><div class="ttdoc">add a new entry </div><div class="ttdef"><b>Definition:</b> lib_api.h:1113</div></div>
<div class="ttc" id="lib__api_8h_html_ac281c11d1b738cf6f4d44d1d6d2a41f5"><div class="ttname"><a href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a></div><div class="ttdeci">#define MX_TOSTRING(x)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1144</div></div>
<div class="ttc" id="classRegistry_html_ad72795f95534250795044004cd836447"><div class="ttname"><a href="classRegistry.html#ad72795f95534250795044004cd836447">Registry::get</a></div><div class="ttdeci">static Registry * get() PRIVATE_SYMBOL</div><div class="ttdoc">get singleton pointer to class </div><div class="ttdef"><b>Definition:</b> lib_api.h:1105</div></div>
<div class="ttc" id="lib__api_8h_html_ad900a5506445a60d8e5ebd5079b0324f"><div class="ttname"><a href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a></div><div class="ttdeci">#define MX_STR_CONCAT(__a, __b)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1140</div></div>
<div class="ttc" id="lib__api_8h_html_a2e2f91e3c9f64ceffdfdb55f36354e91"><div class="ttname"><a href="lib__api_8h.html#a2e2f91e3c9f64ceffdfdb55f36354e91">MX_REGISTER_PROP_DEF_</a></div><div class="ttdeci">#define MX_REGISTER_PROP_DEF_(Name)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1151</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ab9d14ed170244c036e1ff8a3531e89c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define REGISTER_PASS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">Name</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a>(<a class="code" href="lib__api_8h.html#a4a6ec114cb6f848ec8170c9df3475d59">MX_REGISTER_PASS_DEF_</a>(Name), __COUNTER__) = <a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447">\</a></div><div class="line"><a class="code" href="classRegistry.html#ad72795f95534250795044004cd836447"> Registry&lt;CustomPass&gt;::get</a>()-&gt;<a class="code" href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">add</a>(<a class="code" href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a>(Name))</div><div class="ttc" id="classRegistry_html_addef8bc5abfb01ffe3d5c7d9075ea0ab"><div class="ttname"><a href="classRegistry.html#addef8bc5abfb01ffe3d5c7d9075ea0ab">Registry::add</a></div><div class="ttdeci">T &amp; add(const char *name)</div><div class="ttdoc">add a new entry </div><div class="ttdef"><b>Definition:</b> lib_api.h:1113</div></div>
<div class="ttc" id="lib__api_8h_html_ac281c11d1b738cf6f4d44d1d6d2a41f5"><div class="ttname"><a href="lib__api_8h.html#ac281c11d1b738cf6f4d44d1d6d2a41f5">MX_TOSTRING</a></div><div class="ttdeci">#define MX_TOSTRING(x)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1144</div></div>
<div class="ttc" id="lib__api_8h_html_a4a6ec114cb6f848ec8170c9df3475d59"><div class="ttname"><a href="lib__api_8h.html#a4a6ec114cb6f848ec8170c9df3475d59">MX_REGISTER_PASS_DEF_</a></div><div class="ttdeci">#define MX_REGISTER_PASS_DEF_(Name)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1154</div></div>
<div class="ttc" id="classRegistry_html_ad72795f95534250795044004cd836447"><div class="ttname"><a href="classRegistry.html#ad72795f95534250795044004cd836447">Registry::get</a></div><div class="ttdeci">static Registry * get() PRIVATE_SYMBOL</div><div class="ttdoc">get singleton pointer to class </div><div class="ttdef"><b>Definition:</b> lib_api.h:1105</div></div>
<div class="ttc" id="lib__api_8h_html_ad900a5506445a60d8e5ebd5079b0324f"><div class="ttname"><a href="lib__api_8h.html#ad900a5506445a60d8e5ebd5079b0324f">MX_STR_CONCAT</a></div><div class="ttdeci">#define MX_STR_CONCAT(__a, __b)</div><div class="ttdef"><b>Definition:</b> lib_api.h:1140</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="af698f3fc9b50cde11089b4f6c48bcd94"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* createOpState_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, <a class="el" href="classCustomStatefulOp.html">CustomStatefulOp</a> **)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa25705682ce153223279075ab0124b92"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* createSelector_t) (const std::string &amp;json, <a class="el" href="classCustomOpSelector.html">CustomOpSelector</a> **sel_inst, const std::unordered_map&lt; std::string, std::string &gt; &amp;options)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1f08ddfbd009eee6f4e7c3d09b7dcec4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* fcomp_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; <a class="el" href="structMXTensor.html">MXTensor</a> &gt; *inputs, std::vector&lt; <a class="el" href="structMXTensor.html">MXTensor</a> &gt; *outputs, const <a class="el" href="classOpResource.html">OpResource</a> &amp;res)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Custom Operator function templates. </p>
</div>
</div>
<a class="anchor" id="a30605e6fe491a55736d0699d9665fc79"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* graphPass_t) (const std::string &amp;in_graph, const std::string **out_graph, const std::unordered_map&lt; std::string, std::string &gt; &amp;options, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;args, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;aux, const <a class="el" href="classPassResource.html">PassResource</a> &amp;res)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Custom Pass Create function template. </p>
</div>
</div>
<a class="anchor" id="a1a90ac3c16289ec597b27761f7c96344"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* inferShape_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; std::vector&lt; unsigned int &gt; &gt; *in_shapes, std::vector&lt; std::vector&lt; unsigned int &gt; &gt; *out_shapes)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af25bfeef0f16454f26bab8f9513584ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* inferSType_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *in_storage_types, std::vector&lt; int &gt; *out_storage_types)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4fd756f2bc55f25cd975bb2b46658b48"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* inferType_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *in_types, std::vector&lt; int &gt; *out_types)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a95dbe5fc49e225061d5b5450331a2082"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* initialize_t) (int version)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af42d89d470e8cf1d12ead00bcb474ff5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* mutateInputs_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, std::vector&lt; int &gt; *input_indices)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9157ce7266380f368c7108e9c01de9cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::mt19937 <a class="el" href="lib__api_8h.html#a9157ce7266380f368c7108e9c01de9cf">mx_cpu_rand_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac3e9b5f89cdbed5da83c4d1e82b353f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="lib__api_8h.html#ac3e9b5f89cdbed5da83c4d1e82b353f6">mx_gpu_rand_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad8162b92183ede23d6d3c3195f87e69a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="lib__api_8h.html#ad8162b92183ede23d6d3c3195f87e69a">mx_stream_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>GPU stream pointer, is void* when not compiled with CUDA. </p>
</div>
</div>
<a class="anchor" id="a5253c3139a5b1a7de7f4d679be0993dc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* nd_malloc_t) (const void *_ndarray_alloc, const int64_t *shapes, int num_shapes, const char *dev_str, int dev_id, int dtype, const char *name, int isArg, void **data)</td>
</tr>
</table>
</div><div class="memdoc">
<p>resource malloc function to allocate ndarrays for graph passes </p>
</div>
</div>
<a class="anchor" id="a53bb73e2e474b731c94a2f6257f69118"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallCreateOpState_t) (<a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> create_op, const char *const *keys, const char *const *vals, int num, void **state_op)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0ac1050db449d058b76aaaf6f819c66d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallFComp_t) (<a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> fcomp, const char *const *keys, const char *const *vals, int num, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *cuda_stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3258239cea429bb3cde850f5886a7e35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallFree_t) (void *ptr)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a29a3efc8ef032d3c7f50780aa72f36fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallFStatefulComp_t) (int is_forward, void *state_op, const int64_t **inshapes, int *indims, void **indata, int *intypes, size_t *inIDs, const char **indev_type, int *indev_id, int num_in, const int64_t **outshapes, int *outdims, void **outdata, int *outtypes, size_t *outIDs, const char **outdev_type, int *outdev_id, int num_out, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> cpu_malloc, void *cpu_alloc, <a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a> gpu_malloc, void *gpu_alloc, void *stream, <a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a> sparse_malloc, void *sparse_alloc, int *instypes, int *outstypes, void **in_indices, void **out_indices, void **in_indptr, void **out_indptr, int64_t *in_indices_shapes, int64_t *out_indices_shapes, int64_t *in_indptr_shapes, int64_t *out_indptr_shapes, void *rng_cpu_states, void *rng_gpu_states)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5336c8ebf9827e531319758104911729"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallInferShape_t) (<a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> inferShape, const char *const *keys, const char *const *vals, int num, unsigned int **inshapes, int *indims, int num_in, unsigned int ***mod_inshapes, int **mod_indims, unsigned int ***outshapes, int **outdims, int num_out)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4fefda369e84aaa9e946d26df07ac09f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallInferSType_t) (<a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> inferSType, const char *const *keys, const char *const *vals, int num, int *intypes, int num_in, int *outtypes, int num_out)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1da81448912eff1a562a33731e048a71"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallInferType_t) (<a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> inferType, const char *const *keys, const char *const *vals, int num, int *intypes, int num_in, int *outtypes, int num_out)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7ed08a9d2a50d541b15b9ecde67a5848"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallMutateInputs_t) (<a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> mutate, const char *const *keys, const char *const *vals, int num, int **mutate_indices, int *indices_size)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5921a39658247ba326e42c368c7099b8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opCallParseAttrs_t) (<a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> parseAttrs, const char *const *keys, const char *const *vals, int num, int *num_in, int *num_out)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a17320ebb02df8c4504273ea388911620"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opRegGet_t) (int idx, const char **name, int *isSGop, const char ***forward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **forward_fp, int *forward_count, const char ***backward_ctx, <a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **backward_fp, int *backward_count, const char ***create_op_ctx, <a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> **create_op_fp, int *create_op_count, <a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> *parse, <a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> *type, <a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> *stype, <a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> *shape, <a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> *mutate)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a62bc19b0f724d20fff152c4a67bcdbd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opRegSize_t) (void)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa39b29654462c2bbe7837bd368a67fba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* opVersion_t) ()</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3dec0090b22f582ad61af85182d57eac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* parseAttrs_t) (const std::unordered_map&lt; std::string, std::string &gt; &amp;attributes, int *num_inputs, int *num_outputs)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9d540bcf2f0a407369dc2908a9dd31ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* partCallCreateSelector_t) (<a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> createSelector, const char *json, void **selector, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2b5585f36fff51381ab9cebd1f608184"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partCallFilter_t) (void *sel_inst, int *candidates, int num_candidates, int **keep, int *num_keep)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa5bb342788d285ea716d5bc03c977f06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partCallReset_t) (void *sel_inst)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a44515b28b2a4b57550638211a6e391bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* partCallReviewSubgraph_t) (<a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> reviewSubgraph, const char *json, int subgraph_id, int *accept, const char *const *opt_keys, const char *const *opt_vals, int num_opts, char ***attr_keys, char ***attr_vals, int *num_attrs, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac574e3034f03ff00aa319cd90aeb999b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partCallSelect_t) (void *sel_inst, int nodeID, int *selected)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9a42f8669cf19f9196add6a1da08b08c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partCallSelectInput_t) (void *sel_inst, int nodeID, int input_nodeID, int *selected)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae54468d5c91c9070afa1313a1eab0877"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partCallSelectOutput_t) (void *sel_inst, int nodeID, int output_nodeID, int *selected)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a006663c60de1c6d71c3b38aa49ae3303"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* partCallSupportedOps_t) (<a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> supportedOps, const char *json, int num_ids, int *ids, const char *const *opt_keys, const char *const *opt_vals, int num_opts)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a017a2457d20b6be9123c9c8241186cb0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* partRegGet_t) (int part_idx, int stg_idx, const char **strategy, <a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> *supportedOps, <a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> *createSelector, <a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> *reviewSubgraph, const char **op_name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab111979e1215d177927172a9e0fe1de6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* partRegGetCount_t) (int idx, const char **name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a926eff4aca0b3c62c70a3d403d446029"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* partRegSize_t) (void)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="add86495ae3064704e43def1ef957a8ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* passCallGraphPass_t) (<a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> graphPass, const char *in_graph, char **out_graph, const char *const *opt_keys, const char *const *opt_vals, int num_opts, const char *pass_name, const char *const *arg_names, int num_args, void *const *arg_data, const int64_t *const *arg_shapes, const int *arg_dims, const int *arg_types, const size_t *arg_IDs, const char *const *arg_dev_type, const int *arg_dev_id, const char *const *aux_names, int num_aux, void *const *aux_data, const int64_t *const *aux_shapes, const int *aux_dims, const int *aux_types, const size_t *aux_IDs, const char *const *aux_dev_type, const int *aux_dev_id, <a class="el" href="lib__api_8h.html#a5253c3139a5b1a7de7f4d679be0993dc">nd_malloc_t</a> nd_malloc, const void *nd_alloc)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa6e3af5dbf269069a81ef43e65c0d60f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* passRegGet_t) (int pass_idx, <a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> *graphPass, const char **pass_name)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a11085bbdb030917dd64214ced1161d04"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* passRegSize_t) (void)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a81025cba587b988a2f6a9b619139e30d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* reviewSubgraph_t) (const std::string &amp;json, int subgraph_id, bool *accept, const std::unordered_map&lt; std::string, std::string &gt; &amp;options, std::unordered_map&lt; std::string, std::string &gt; *attrs, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;args, const std::unordered_map&lt; std::string, <a class="el" href="structMXTensor.html">MXTensor</a> &gt; &amp;aux)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a67cbe0396691abf6f71dc89cfdf42113"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* sparse_malloc_t) (void *, int, int, int, void **, int64_t **, int64_t **)</td>
</tr>
</table>
</div><div class="memdoc">
<p>sparse alloc function to allocate memory inside Forward/Backward functions </p>
</div>
</div>
<a class="anchor" id="af0ab026c08bde9d12d234fe204b46df2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a>(* supportedOps_t) (const std::string &amp;json, std::vector&lt; int &gt; *ids, const std::unordered_map&lt; std::string, std::string &gt; &amp;options)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Custom Subgraph Create function template. </p>
</div>
</div>
<a class="anchor" id="a968fbc7c8188f24a0c761e04e6683f46"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void*(* xpu_malloc_t) (void *, int)</td>
</tr>
</table>
</div><div class="memdoc">
<p>resource malloc function to allocate memory inside Forward/Backward functions </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="dlpack_8h.html#a2a5dbaa5fb67f4845a973c09a7f2ec50">DLDataTypeCode</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The type code options <a class="el" href="structDLDataType.html" title="The data type the tensor can hold. ">DLDataType</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50a291cf38955be5c45c3aa50cea13c5e6e"></a>kDLInt&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50aa19211076c5ae99e281ea430a25b102a"></a>kDLUInt&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50a8bd73646a2aa8465201b59ab7d1a83e0"></a>kDLFloat&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50a6a739f1b3ce2f8978da99a5ac4a887a6"></a>kDLBfloat&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50a291cf38955be5c45c3aa50cea13c5e6e"></a>kDLInt&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50aa19211076c5ae99e281ea430a25b102a"></a>kDLUInt&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a2a5dbaa5fb67f4845a973c09a7f2ec50a8bd73646a2aa8465201b59ab7d1a83e0"></a>kDLFloat&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a49db572e18d84c47738fc746568fb573"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="dlpack_8h.html#a49db572e18d84c47738fc746568fb573">DLDeviceType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The device type in <a class="el" href="structDLContext.html" title="A Device context for Tensor and operator. ">DLContext</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573ab736fabc9e37c2acf3b09b88fdc65c9e"></a>kDLCPU&#160;</td><td class="fielddoc">
<p>CPU device. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573ae04bfdcc919948d170b2ba26da09e680"></a>kDLGPU&#160;</td><td class="fielddoc">
<p>CUDA GPU device. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a61cf710df30b59b43a5e34e37ecd1973"></a>kDLCPUPinned&#160;</td><td class="fielddoc">
<p>Pinned CUDA GPU device by cudaMallocHost. </p>
<dl class="section note"><dt>Note</dt><dd>kDLCPUPinned = kDLCPU | kDLGPU </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a71b2f851779936d824bf2c235ed94a8d"></a>kDLOpenCL&#160;</td><td class="fielddoc">
<p>OpenCL devices. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a31aefcffd60630580d74bf055c2c3ba0"></a>kDLVulkan&#160;</td><td class="fielddoc">
<p>Vulkan buffer for next generation graphics. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a36ced4bf0304d68b5c633ddba5633e66"></a>kDLMetal&#160;</td><td class="fielddoc">
<p>Metal for Apple GPU. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573af063bf37ea24c1839d3a78703c2468e7"></a>kDLVPI&#160;</td><td class="fielddoc">
<p>Verilog simulator buffer. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573adeeb5e6f50f4309676e49f7a12512171"></a>kDLROCM&#160;</td><td class="fielddoc">
<p>ROCm GPUs for AMD GPUs. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573aea5cdddfa3ac11130048ad8e2a012363"></a>kDLExtDev&#160;</td><td class="fielddoc">
<p>Reserved extension device type, used for quickly test extension device The semantics can differ depending on the implementation. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573ab736fabc9e37c2acf3b09b88fdc65c9e"></a>kDLCPU&#160;</td><td class="fielddoc">
<p>CPU device. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573ae04bfdcc919948d170b2ba26da09e680"></a>kDLGPU&#160;</td><td class="fielddoc">
<p>CUDA GPU device. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a61cf710df30b59b43a5e34e37ecd1973"></a>kDLCPUPinned&#160;</td><td class="fielddoc">
<p>Pinned CUDA GPU device by cudaMallocHost. </p>
<dl class="section note"><dt>Note</dt><dd>kDLCPUPinned = kDLCPU | kDLGPU </dd></dl>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a71b2f851779936d824bf2c235ed94a8d"></a>kDLOpenCL&#160;</td><td class="fielddoc">
<p>OpenCL devices. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a31aefcffd60630580d74bf055c2c3ba0"></a>kDLVulkan&#160;</td><td class="fielddoc">
<p>Vulkan buffer for next generation graphics. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573a36ced4bf0304d68b5c633ddba5633e66"></a>kDLMetal&#160;</td><td class="fielddoc">
<p>Metal for Apple GPU. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573af063bf37ea24c1839d3a78703c2468e7"></a>kDLVPI&#160;</td><td class="fielddoc">
<p>Verilog simulator buffer. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573adeeb5e6f50f4309676e49f7a12512171"></a>kDLROCM&#160;</td><td class="fielddoc">
<p>ROCm GPUs for AMD GPUs. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a49db572e18d84c47738fc746568fb573aea5cdddfa3ac11130048ad8e2a012363"></a>kDLExtDev&#160;</td><td class="fielddoc">
<p>Reserved extension device type, used for quickly test extension device The semantics can differ depending on the implementation. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a749cb5137f6266520a9329b48a63decc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="lib__api_8h.html#a749cb5137f6266520a9329b48a63decc">JsonType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Json utility to parse serialized subgraph symbol. </p>
<p>Types of JSON objects </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a749cb5137f6266520a9329b48a63decca0f886785b600b91048fcdc434c6b4a8e"></a>ERR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a749cb5137f6266520a9329b48a63deccaec41e801b43cfbec49d343c900360bf9"></a>STR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a749cb5137f6266520a9329b48a63decca17897512ed7598aeb5912e3d45bf000d"></a>NUM&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a749cb5137f6266520a9329b48a63decca25688e799536738ea469158ef15fd1c0"></a>LIST&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a749cb5137f6266520a9329b48a63decca4cafa5feda04184537b4d7d346e1e89b"></a>MAP&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="lib__api_8h.html#a8fd7b6a8c28e599287f76955305a8107">MXDType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tensor data type, consistent with mshadow data type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a75e1eb48a5686c313101d74a15ede280"></a>kFloat32&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a58a251309ceb3f79df401f6f1f832853"></a>kFloat64&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a3695575c42ea9fbb9cb6f4e38ce81f6a"></a>kFloat16&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a242b08806f3e3251f1c1448bd824c6b4"></a>kUint8&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107ae3e576e62ae36818ff6edced2065c36e"></a>kInt32&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a35e4dd379e92b467758b2445ddbc200d"></a>kInt8&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a298f4738d8df72232a1e19267767b1aa"></a>kInt64&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a8fd7b6a8c28e599287f76955305a8107a4726ae509fa64eb63e55ec15cf106571"></a>kUNSET&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a21ac519c3c38b4fe206f4dc6dd26e8b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a21ac519c3c38b4fe206f4dc6dd26e8b7aa9b28e9efa2947af6bffa93d3a4e32cc"></a>MX_FAIL&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a21ac519c3c38b4fe206f4dc6dd26e8b7a75f3cf55ffd5431df4eb7907662e06c1"></a>MX_SUCCESS&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ac693404a6862a14a4abc48447618f922"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="lib__api_8h.html#ac693404a6862a14a4abc48447618f922">MXStorageType</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ac693404a6862a14a4abc48447618f922a7225d1ee08739640e2e5cecf1cb89a35"></a>kDefaultStorage&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ac693404a6862a14a4abc48447618f922a16e06bf4da52a4538c7cc60e700cb014"></a>kRowSparseStorage&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ac693404a6862a14a4abc48447618f922a9d1a5da7d14dea69f4e595f2b4083133"></a>kCSRStorage&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0141c817ac813aca5651c9177bf808fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallCreateOpState </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a>&#160;</td>
<td class="paramname"><em>create_op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>state_op</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling createStatefulOp function for operator from library </p>
</div>
</div>
<a class="anchor" id="ae14e0cd9a973b1f0758800d49f79a00b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallFCompute </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a>&#160;</td>
<td class="paramname"><em>fcomp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t **&#160;</td>
<td class="paramname"><em>inshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>indata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>intypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>inIDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>indev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t **&#160;</td>
<td class="paramname"><em>outshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outdims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>outdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outtypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>outIDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>outdev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outdev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a>&#160;</td>
<td class="paramname"><em>cpu_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>cpu_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a>&#160;</td>
<td class="paramname"><em>gpu_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>gpu_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>cuda_stream</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a>&#160;</td>
<td class="paramname"><em>sparse_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sparse_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>instypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outstypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>in_indices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>out_indices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>in_indptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>out_indptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>in_indices_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>out_indices_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>in_indptr_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>out_indptr_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>rng_cpu_states</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>rng_gpu_states</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling Forward/Backward function for operator from library </p>
</div>
</div>
<a class="anchor" id="a6e74b9b5a033075b0a934561a518a2cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _opCallFree </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>calls free from the external library for library allocated arrays </p>
</div>
</div>
<a class="anchor" id="a9e55fadd96838743242762337ed05826"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallFStatefulCompute </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>is_forward</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>state_op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t **&#160;</td>
<td class="paramname"><em>inshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>indata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>intypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>inIDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>indev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t **&#160;</td>
<td class="paramname"><em>outshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outdims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>outdata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outtypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>outIDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>outdev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outdev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a>&#160;</td>
<td class="paramname"><em>cpu_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>cpu_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a968fbc7c8188f24a0c761e04e6683f46">xpu_malloc_t</a>&#160;</td>
<td class="paramname"><em>gpu_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>gpu_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>stream</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a67cbe0396691abf6f71dc89cfdf42113">sparse_malloc_t</a>&#160;</td>
<td class="paramname"><em>sparse_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sparse_alloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>instypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outstypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>in_indices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>out_indices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>in_indptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>out_indptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>in_indices_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>out_indices_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>in_indptr_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>out_indptr_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>rng_cpu_states</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>rng_gpu_states</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling Stateful Forward/Backward for operator from library </p>
</div>
</div>
<a class="anchor" id="ad4c6fc2109fe6fc8dfcc4482e0ee2b77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallInferShape </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a>&#160;</td>
<td class="paramname"><em>inferShape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int **&#160;</td>
<td class="paramname"><em>inshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int ***&#160;</td>
<td class="paramname"><em>mod_inshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int **&#160;</td>
<td class="paramname"><em>mod_indims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int ***&#160;</td>
<td class="paramname"><em>outshapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int **&#160;</td>
<td class="paramname"><em>outdims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling inferShape function for operator from library </p>
</div>
</div>
<a class="anchor" id="a1d507e400a93fce06c9a057976b2abff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallInferSType </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a>&#160;</td>
<td class="paramname"><em>inferSType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>instypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outstypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling inferSType function for operator from library </p>
</div>
</div>
<a class="anchor" id="afdfcdcd043995be5d08fcd87614940bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallInferType </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a>&#160;</td>
<td class="paramname"><em>inferType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>intypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>outtypes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling inferType function for operator from library </p>
</div>
</div>
<a class="anchor" id="a0f4b07186cf7242860a66deee2124ec0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallMutateInputs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a>&#160;</td>
<td class="paramname"><em>mutate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int **&#160;</td>
<td class="paramname"><em>mutate_indices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>indices_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling mutateInputs function for operator from library </p>
</div>
</div>
<a class="anchor" id="ae7c7ea71fa756938627d75d159bed951"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opCallParseAttrs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a>&#160;</td>
<td class="paramname"><em>parseAttrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>num_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>num_out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling parse attributes function for operator from library </p>
</div>
</div>
<a class="anchor" id="a0cca89d4bc8170d83215db2df7aca249"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _opRegGet </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>isSGop</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>forward_ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **&#160;</td>
<td class="paramname"><em>forward_fp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>forward_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>backward_ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a1f08ddfbd009eee6f4e7c3d09b7dcec4">fcomp_t</a> **&#160;</td>
<td class="paramname"><em>backward_fp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>backward_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>create_op_ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af698f3fc9b50cde11089b4f6c48bcd94">createOpState_t</a> **&#160;</td>
<td class="paramname"><em>create_op_fp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>create_op_count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a3dec0090b22f582ad61af85182d57eac">parseAttrs_t</a> *&#160;</td>
<td class="paramname"><em>parse</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a4fd756f2bc55f25cd975bb2b46658b48">inferType_t</a> *&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af25bfeef0f16454f26bab8f9513584ad">inferSType_t</a> *&#160;</td>
<td class="paramname"><em>stype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a1a90ac3c16289ec597b27761f7c96344">inferShape_t</a> *&#160;</td>
<td class="paramname"><em>shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af42d89d470e8cf1d12ead00bcb474ff5">mutateInputs_t</a> *&#160;</td>
<td class="paramname"><em>mutate</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns operator registration at specified index </p>
</div>
</div>
<a class="anchor" id="a6efacb1a30200f9f1fb05f77783959de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opRegSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns number of ops registered in this library </p>
</div>
</div>
<a class="anchor" id="ade85fac9a80edcdf9e6062cb079cd325"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _opVersion </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns MXNet library version </p>
</div>
</div>
<a class="anchor" id="a177c2fa842dc60c67a76d6db378700ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _partCallCreateSelector </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a>&#160;</td>
<td class="paramname"><em>createSelector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>json</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void **&#160;</td>
<td class="paramname"><em>selector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_opts</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling create selector function from library </p>
</div>
</div>
<a class="anchor" id="a670530b58e8ddc61982798fd788c3edf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partCallFilter </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sel_inst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>candidates</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_candidates</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int **&#160;</td>
<td class="paramname"><em>keep</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>num_keep</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling filter function from library </p>
</div>
</div>
<a class="anchor" id="a8002368ce25c4f689b48c511b092373b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partCallReset </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sel_inst</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling reset selector function from library </p>
</div>
</div>
<a class="anchor" id="a9957473dff0f981cbc001b9ae2791341"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _partCallReviewSubgraph </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a>&#160;</td>
<td class="paramname"><em>reviewSubgraph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>json</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>subgraph_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>accept</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_opts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ***&#160;</td>
<td class="paramname"><em>attr_keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ***&#160;</td>
<td class="paramname"><em>attr_vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>num_attrs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>arg_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *const *&#160;</td>
<td class="paramname"><em>arg_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t *const *&#160;</td>
<td class="paramname"><em>arg_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_dims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_types</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t *&#160;</td>
<td class="paramname"><em>arg_IDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>arg_dev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_dev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>aux_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_aux</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *const *&#160;</td>
<td class="paramname"><em>aux_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t *const *&#160;</td>
<td class="paramname"><em>aux_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_dims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_types</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t *&#160;</td>
<td class="paramname"><em>aux_IDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>aux_dev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_dev_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling review subgraph function from library </p>
</div>
</div>
<a class="anchor" id="acc5fcd7471b3ee96cf6939b1f2799a61"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partCallSelect </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sel_inst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>selected</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling select function from library </p>
</div>
</div>
<a class="anchor" id="a876d77c3d311c7006f7b23578f85678a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partCallSelectInput </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sel_inst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>input_nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>selected</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling select input function from library </p>
</div>
</div>
<a class="anchor" id="af623e317a08ae2d7822e4e81d4dcb1a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partCallSelectOutput </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>sel_inst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>output_nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>selected</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling select output function from library </p>
</div>
</div>
<a class="anchor" id="a21e7d2357ce3995d2dfcd282e18fcf4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _partCallSupportedOps </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a>&#160;</td>
<td class="paramname"><em>supportedOps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>json</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_ids</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>ids</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_opts</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling supported ops function from library </p>
</div>
</div>
<a class="anchor" id="a2537dd42894ce3be70bfe74ab585fd09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _partRegGet </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>part_idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>stg_idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>strategy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#af0ab026c08bde9d12d234fe204b46df2">supportedOps_t</a> *&#160;</td>
<td class="paramname"><em>supportedOps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#aa25705682ce153223279075ab0124b92">createSelector_t</a> *&#160;</td>
<td class="paramname"><em>createSelector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a81025cba587b988a2f6a9b619139e30d">reviewSubgraph_t</a> *&#160;</td>
<td class="paramname"><em>reviewSubgraph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>op_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns partitioner registration at specified index </p>
</div>
</div>
<a class="anchor" id="aa8a5a6598b9b674dcd015eab7c25bc38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _partRegGetCount </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8088989b079b01b821c7b7d0b960dfaa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _partRegSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns number of partitioners registered in this library </p>
</div>
</div>
<a class="anchor" id="a8d6c2bca17069282dd6ad141dffc44de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _passCallGraphPass </td>
<td>(</td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a>&#160;</td>
<td class="paramname"><em>graphPass</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>json</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>opt_vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_opts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>pass_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>arg_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *const *&#160;</td>
<td class="paramname"><em>arg_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t *const *&#160;</td>
<td class="paramname"><em>arg_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_dims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_types</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t *&#160;</td>
<td class="paramname"><em>arg_IDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>arg_dev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>arg_dev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>aux_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_aux</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *const *&#160;</td>
<td class="paramname"><em>aux_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64_t *const *&#160;</td>
<td class="paramname"><em>aux_shapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_dims</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_types</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t *&#160;</td>
<td class="paramname"><em>aux_IDs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>aux_dev_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>aux_dev_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a5253c3139a5b1a7de7f4d679be0993dc">nd_malloc_t</a>&#160;</td>
<td class="paramname"><em>nd_malloc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>nd_alloc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns status of calling graph pass function from library </p>
</div>
</div>
<a class="anchor" id="a89970aed9ffd96fa15718bb5fc4ab48d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a140a8dac396de476f9ed0c6a093cf4fa">MX_VOID_RET</a> _passRegGet </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>pass_idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="lib__api_8h.html#a30605e6fe491a55736d0699d9665fc79">graphPass_t</a> *&#160;</td>
<td class="paramname"><em>graphPass</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>pass_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns pass registration at specified index </p>
</div>
</div>
<a class="anchor" id="a97a361685f2eb83a744f7fef61d8f26b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a561ade7c8fd77c6882e937514f5b1e05">MX_INT_RET</a> _passRegSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns number of graph passes registered in this library </p>
</div>
</div>
<a class="anchor" id="affdad7be249ef9ef59f197155b2c3dde"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string getDtypeAt </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>dtype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa30ea1031e51376a72af965e02dc8f99"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string getShapeAt </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a804b39a26b4659cf236fc98ac08537f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="lib__api_8h.html#a21ac519c3c38b4fe206f4dc6dd26e8b7">MXReturnValue</a> initialize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>version</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the MXNet version is supported by the library. If supported, initializes the library. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">version</td><td>MXNet version number passed to library and defined as: MXNET_VERSION = (MXNET_MAJOR*10000 + MXNET_MINOR*100 + MXNET_PATCH) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Non-zero value on error i.e. library incompatible with passed MXNet version </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Sep 11 2020 03:38:05 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>