<!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>ArmNN: StringifyLayerParameters&lt; StackDescriptor &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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</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">ArmNN
   &#160;<span id="projectnumber">NotReleased</span>
   </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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('structarmnn_1_1_stringify_layer_parameters_3_01_stack_descriptor_01_4.html','');});
</script>
<div id="doc-content">
<!-- 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="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="structarmnn_1_1_stringify_layer_parameters_3_01_stack_descriptor_01_4-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">StringifyLayerParameters&lt; StackDescriptor &gt; Struct Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_serialize_layer_parameters_8hpp_source.html">SerializeLayerParameters.hpp</a>&gt;</code></p>
<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:ad262bd0aa9bf2795578e6a80191a60ee"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_stringify_layer_parameters_3_01_stack_descriptor_01_4.html#ad262bd0aa9bf2795578e6a80191a60ee">Serialize</a> (<a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;fn, const <a class="el" href="structarmnn_1_1_stack_descriptor.html">StackDescriptor</a> &amp;desc)</td></tr>
<tr class="separator:ad262bd0aa9bf2795578e6a80191a60ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;&gt;<br />
struct armnn::StringifyLayerParameters&lt; StackDescriptor &gt;</h3>


<p class="definition">Definition at line <a class="el" href="_serialize_layer_parameters_8hpp_source.html#l00143">143</a> of file <a class="el" href="_serialize_layer_parameters_8hpp_source.html">SerializeLayerParameters.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ad262bd0aa9bf2795578e6a80191a60ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad262bd0aa9bf2795578e6a80191a60ee">&#9670;&nbsp;</a></span>Serialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Serialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;&#160;</td>
          <td class="paramname"><em>fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structarmnn_1_1_stack_descriptor.html">StackDescriptor</a> &amp;&#160;</td>
          <td class="paramname"><em>desc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_serialize_layer_parameters_8cpp_source.html#l00399">399</a> of file <a class="el" href="_serialize_layer_parameters_8cpp_source.html">SerializeLayerParameters.cpp</a>.</p>

<p class="reference">References <a class="el" href="_descriptors_8hpp_source.html#l00972">StackDescriptor::m_Axis</a>, <a class="el" href="_descriptors_8hpp_source.html#l00976">StackDescriptor::m_InputShape</a>, and <a class="el" href="_descriptors_8hpp_source.html#l00974">StackDescriptor::m_NumInputs</a>.</p>
<div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    fn(<span class="stringliteral">&quot;Axis&quot;</span>, std::to_string(desc.m_Axis));</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    fn(<span class="stringliteral">&quot;NumInputs&quot;</span>, std::to_string(desc.m_NumInputs));</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    {</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        std::stringstream ss;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        ss &lt;&lt; desc.m_InputShape;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        fn(<span class="stringliteral">&quot;InputShape&quot;</span>,ss.str());</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    }</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this struct was generated from the following files:<ul>
<li>src/armnn/<a class="el" href="_serialize_layer_parameters_8hpp_source.html">SerializeLayerParameters.hpp</a></li>
<li>src/armnn/<a class="el" href="_serialize_layer_parameters_8cpp_source.html">SerializeLayerParameters.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_stringify_layer_parameters_3_01_stack_descriptor_01_4.html">StringifyLayerParameters&lt; StackDescriptor &gt;</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:07:05 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
