<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: mxnet::op::Input0 Struct 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>
<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.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></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="namespacemxnet.html">mxnet</a></li><li class="navelem"><a class="el" href="namespacemxnet_1_1op.html">op</a></li><li class="navelem"><a class="el" href="structmxnet_1_1op_1_1Input0.html">Input0</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structmxnet_1_1op_1_1Input0-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">mxnet::op::Input0 Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>First input to the function.  
 <a href="structmxnet_1_1op_1_1Input0.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="operator__util_8h_source.html">operator_util.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mxnet::op::Input0:</div>
<div class="dyncontent">
<div class="center"><img src="structmxnet_1_1op_1_1Input0__inherit__graph.png" border="0" usemap="#mxnet_1_1op_1_1Input0_inherit__map" alt="Inheritance graph"/></div>
<map name="mxnet_1_1op_1_1Input0_inherit__map" id="mxnet_1_1op_1_1Input0_inherit__map">
<area shape="rect" id="node2" href="structmxnet_1_1op_1_1GradFunctionArgument.html" title="super class of all gradient function argument " alt="" coords="5,5,251,83"/>
</map>
</div>
<div class="dynheader">
Collaboration diagram for mxnet::op::Input0:</div>
<div class="dyncontent">
<div class="center"><img src="structmxnet_1_1op_1_1Input0__coll__graph.png" border="0" usemap="#mxnet_1_1op_1_1Input0_coll__map" alt="Collaboration graph"/></div>
<map name="mxnet_1_1op_1_1Input0_coll__map" id="mxnet_1_1op_1_1Input0_coll__map">
<area shape="rect" id="node2" href="structmxnet_1_1op_1_1GradFunctionArgument.html" title="super class of all gradient function argument " alt="" coords="5,969,251,1047"/>
<area shape="rect" id="node3" href="classmxnet_1_1TBlob.html" title="tensor blob class that can be used to hold tensor of any dimension, any device and any data type..." alt="" coords="48,668,208,907"/>
<area shape="rect" id="node4" href="classmxnet_1_1TShape.html" title="A Shape class that is used to represent shape of each tensor. " alt="" coords="68,352,188,605"/>
<area shape="rect" id="node5" href="classmxnet_1_1Tuple.html" title="{mxnet::Tuple\&lt; dim_t \&gt;\n|# ndim_\l# num_heap_allocated_\l# data_stack_\l# data_heap_\l# kStackCache\l|+ Tuple()\l+ Tuple()\l+ Tuple()\l+ Tuple()\l+ Tuple()\l+ Tuple()\l+ Tuple()\l+ Tuple()\l+ ~Tuple()\l+ assign()\land 17 more...\l# SetDim()\l}" alt="" coords="39,5,217,303"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="structmxnet_1_1op_1_1GradFunctionArgument.html">mxnet::op::GradFunctionArgument</a></td></tr>
<tr class="memitem:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmxnet_1_1TBlob.html">TBlob</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1op_1_1GradFunctionArgument.html#ab9214ef3cfcf53b375a2e8f716e66929">data</a></td></tr>
<tr class="memdesc:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td class="mdescLeft">&#160;</td><td class="mdescRight">The real data.  <a href="structmxnet_1_1op_1_1GradFunctionArgument.html#ab9214ef3cfcf53b375a2e8f716e66929">More...</a><br /></td></tr>
<tr class="separator:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><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>First input to the function. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>/work/mxnet/include/mxnet/<a class="el" href="operator__util_8h_source.html">operator_util.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 00:58:44 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
