<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: File Members</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>
<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.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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 class="contents">
&#160;

<h3><a id="index__5F"></a>- _ -</h3><ul>
<li>_msgGet()
: <a class="el" href="lib__api_8h.html#aed3b9c90c89e5a3cf303b51c4ffa1938">lib_api.h</a>
</li>
<li>_msgSize()
: <a class="el" href="lib__api_8h.html#ab3a2f05b845f641f30f417756dc64fa0">lib_api.h</a>
</li>
<li>_opCallCreateOpState()
: <a class="el" href="lib__api_8h.html#af358af16fb117cd0675234835a4e7c08">lib_api.h</a>
</li>
<li>_opCallDestroyOpState()
: <a class="el" href="lib__api_8h.html#a0cc29cb55b56ebd7e288b3f5946b5bce">lib_api.h</a>
</li>
<li>_opCallFCompute()
: <a class="el" href="lib__api_8h.html#a948af234ca1c3b0c8b78e8db2f32c310">lib_api.h</a>
</li>
<li>_opCallFree()
: <a class="el" href="lib__api_8h.html#a6e74b9b5a033075b0a934561a518a2cb">lib_api.h</a>
</li>
<li>_opCallFStatefulCompute()
: <a class="el" href="lib__api_8h.html#af0214213e9b925b0750a33f20ff2a1f9">lib_api.h</a>
</li>
<li>_opCallInferShape()
: <a class="el" href="lib__api_8h.html#a2ba7371715fcd75f05c0ba0f0c8b78b4">lib_api.h</a>
</li>
<li>_opCallInferSType()
: <a class="el" href="lib__api_8h.html#a67702f536b0652fab92a46a4c522f0a8">lib_api.h</a>
</li>
<li>_opCallInferType()
: <a class="el" href="lib__api_8h.html#adb3450125394a91102043bcc28fe8e39">lib_api.h</a>
</li>
<li>_opCallMutateInputs()
: <a class="el" href="lib__api_8h.html#aa14e95577fdb7526da526ae1ec236d48">lib_api.h</a>
</li>
<li>_opCallParseAttrs()
: <a class="el" href="lib__api_8h.html#ac88d6741ca655523db73fc18a8e06828">lib_api.h</a>
</li>
<li>_opRegGet()
: <a class="el" href="lib__api_8h.html#a5b0657e0605ca60b79241a4324139f63">lib_api.h</a>
</li>
<li>_opRegSize()
: <a class="el" href="lib__api_8h.html#a6efacb1a30200f9f1fb05f77783959de">lib_api.h</a>
</li>
<li>_opVersion()
: <a class="el" href="lib__api_8h.html#ade85fac9a80edcdf9e6062cb079cd325">lib_api.h</a>
</li>
<li>_partCallCreateSelector()
: <a class="el" href="lib__api_8h.html#a70e75073813f5a358d365715205ea001">lib_api.h</a>
</li>
<li>_partCallFilter()
: <a class="el" href="lib__api_8h.html#a670530b58e8ddc61982798fd788c3edf">lib_api.h</a>
</li>
<li>_partCallReset()
: <a class="el" href="lib__api_8h.html#a8002368ce25c4f689b48c511b092373b">lib_api.h</a>
</li>
<li>_partCallReviewSubgraph()
: <a class="el" href="lib__api_8h.html#a8354cc31577d1c0308f40e8639bc3f6f">lib_api.h</a>
</li>
<li>_partCallSelect()
: <a class="el" href="lib__api_8h.html#acc5fcd7471b3ee96cf6939b1f2799a61">lib_api.h</a>
</li>
<li>_partCallSelectInput()
: <a class="el" href="lib__api_8h.html#a876d77c3d311c7006f7b23578f85678a">lib_api.h</a>
</li>
<li>_partCallSelectOutput()
: <a class="el" href="lib__api_8h.html#af623e317a08ae2d7822e4e81d4dcb1a4">lib_api.h</a>
</li>
<li>_partCallSupportedOps()
: <a class="el" href="lib__api_8h.html#ae845d0155a42d87b0714a4ee3e6240f5">lib_api.h</a>
</li>
<li>_partRegGet()
: <a class="el" href="lib__api_8h.html#ae62af668ca56e5f29a4428681f7d0914">lib_api.h</a>
</li>
<li>_partRegGetCount()
: <a class="el" href="lib__api_8h.html#aa8a5a6598b9b674dcd015eab7c25bc38">lib_api.h</a>
</li>
<li>_partRegSize()
: <a class="el" href="lib__api_8h.html#a8088989b079b01b821c7b7d0b960dfaa">lib_api.h</a>
</li>
<li>_passCallGraphPass()
: <a class="el" href="lib__api_8h.html#a37f969a158ff72a111f84a466aca5119">lib_api.h</a>
</li>
<li>_passRegGet()
: <a class="el" href="lib__api_8h.html#ac47e22b68597148e7989b3e1ec6497e0">lib_api.h</a>
</li>
<li>_passRegSize()
: <a class="el" href="lib__api_8h.html#a97a361685f2eb83a744f7fef61d8f26b">lib_api.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 03:47:42 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
