<!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: mshadow::expr::PacketAlignCheck&lt; dim, ScalarExp&lt; DType &gt;, Arch &gt; Struct Template 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="namespacemshadow.html">mshadow</a></li><li class="navelem"><a class="el" href="namespacemshadow_1_1expr.html">expr</a></li><li class="navelem"><a class="el" href="structmshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4.html">PacketAlignCheck&lt; dim, ScalarExp&lt; DType &gt;, Arch &gt;</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="structmshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">mshadow::expr::PacketAlignCheck&lt; dim, ScalarExp&lt; DType &gt;, Arch &gt; Struct Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="packet-inl_8h_source.html">packet-inl.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for mshadow::expr::PacketAlignCheck&lt; dim, ScalarExp&lt; DType &gt;, Arch &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="structmshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4__coll__graph.png" border="0" usemap="#mshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="mshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4_coll__map" id="mshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4_coll__map">
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a408f18d184aebd10227649a1d40a3e86"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmshadow_1_1expr_1_1PacketAlignCheck_3_01dim_00_01ScalarExp_3_01DType_01_4_00_01Arch_01_4.html#a408f18d184aebd10227649a1d40a3e86">Check</a> (const <a class="el" href="structmshadow_1_1expr_1_1ScalarExp.html">ScalarExp</a>&lt; DType &gt; &amp;exp)</td></tr>
<tr class="separator:a408f18d184aebd10227649a1d40a3e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a408f18d184aebd10227649a1d40a3e86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a408f18d184aebd10227649a1d40a3e86">&#9670;&nbsp;</a></span>Check()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;int dim, typename DType , PacketArch Arch&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="structmshadow_1_1expr_1_1PacketAlignCheck.html">mshadow::expr::PacketAlignCheck</a>&lt; dim, <a class="el" href="structmshadow_1_1expr_1_1ScalarExp.html">ScalarExp</a>&lt; DType &gt;, Arch &gt;::Check </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmshadow_1_1expr_1_1ScalarExp.html">ScalarExp</a>&lt; DType &gt; &amp;&#160;</td>
          <td class="paramname"><em>exp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>/work/mxnet/3rdparty/mshadow/mshadow/<a class="el" href="packet-inl_8h_source.html">packet-inl.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jun 8 2022 23:30:30 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>
