<!-- HTML header for doxygen 1.8.17-->
<!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>Arm NN: StringifyLayerParameters&lt; Pooling2dDescriptor &gt; 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="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>
<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/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.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;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </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 -->
<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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structarmnn_1_1_stringify_layer_parameters_3_01_pooling2d_descriptor_01_4.html',''); initResizable(); });
/* @license-end */
</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_pooling2d_descriptor_01_4-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">StringifyLayerParameters&lt; Pooling2dDescriptor &gt; Struct 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:a8b5ce7348bbdcc3b71a13356a89eee83"><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_pooling2d_descriptor_01_4.html#a8b5ce7348bbdcc3b71a13356a89eee83">Serialize</a> (<a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;fn, const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</a> &amp;desc)</td></tr>
<tr class="separator:a8b5ce7348bbdcc3b71a13356a89eee83"><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 class="definition">Definition at line <a class="el" href="_serialize_layer_parameters_8hpp_source.html#l00137">137</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="a8b5ce7348bbdcc3b71a13356a89eee83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b5ce7348bbdcc3b71a13356a89eee83">&#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_pooling2d_descriptor.html">Pooling2dDescriptor</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#l00337">337</a> of file <a class="el" href="_serialize_layer_parameters_8cpp_source.html">SerializeLayerParameters.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;{</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    fn(<span class="stringliteral">&quot;Type&quot;</span>, <a class="code" href="namespacearmnn.html#a517314c21ac5309b90408da162212f9d">GetPoolingAlgorithmAsCString</a>(desc.m_PoolType));</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    {</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        std::stringstream ss;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        ss &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; desc.m_PadTop    &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; desc.m_PadLeft</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;           &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; desc.m_PadBottom &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; desc.m_PadRight &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        fn(<span class="stringliteral">&quot;Padding(T,L,B,R)&quot;</span>, ss.str());</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    }</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160; </div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    {</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        std::stringstream ss;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        ss &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; desc.m_PoolWidth    &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; desc.m_PoolHeight &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        fn(<span class="stringliteral">&quot;(Width,Height)&quot;</span>, ss.str());</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    }</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    {</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        std::stringstream ss;</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        ss &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; desc.m_StrideX &lt;&lt;  <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; desc.m_StrideY &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        fn(<span class="stringliteral">&quot;Stride(X,Y)&quot;</span>, ss.str());</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    }</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    fn(<span class="stringliteral">&quot;OutputShapeRounding&quot;</span>, <a class="code" href="namespacearmnn.html#a67d7ce2e14ebd328f423322db88279c3">GetOutputShapeRoundingAsCString</a>(desc.m_OutputShapeRounding));</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    fn(<span class="stringliteral">&quot;PaddingMethod&quot;</span>, <a class="code" href="namespacearmnn.html#a129bde68152f5892e6abdedcb62aa983">GetPaddingMethodAsCString</a>(desc.m_PaddingMethod));</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    fn(<span class="stringliteral">&quot;DataLayout&quot;</span>, <a class="code" href="namespacearmnn.html#aeef70b7611ae71e97ab55c75ef72b210">GetDataLayoutName</a>(desc.m_DataLayout));</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_types_utils_8hpp_source.html#l00253">armnn::GetDataLayoutName()</a>, <a class="el" href="_types_utils_8hpp_source.html#l00139">armnn::GetOutputShapeRoundingAsCString()</a>, <a class="el" href="_types_utils_8hpp_source.html#l00149">armnn::GetPaddingMethodAsCString()</a>, <a class="el" href="_types_utils_8hpp_source.html#l00128">armnn::GetPoolingAlgorithmAsCString()</a>, <a class="el" href="_descriptors_8hpp_source.html#l00427">Pooling2dDescriptor::m_DataLayout</a>, <a class="el" href="_descriptors_8hpp_source.html#l00423">Pooling2dDescriptor::m_OutputShapeRounding</a>, <a class="el" href="_descriptors_8hpp_source.html#l00413">Pooling2dDescriptor::m_PadBottom</a>, <a class="el" href="_descriptors_8hpp_source.html#l00425">Pooling2dDescriptor::m_PaddingMethod</a>, <a class="el" href="_descriptors_8hpp_source.html#l00407">Pooling2dDescriptor::m_PadLeft</a>, <a class="el" href="_descriptors_8hpp_source.html#l00409">Pooling2dDescriptor::m_PadRight</a>, <a class="el" href="_descriptors_8hpp_source.html#l00411">Pooling2dDescriptor::m_PadTop</a>, <a class="el" href="_descriptors_8hpp_source.html#l00417">Pooling2dDescriptor::m_PoolHeight</a>, <a class="el" href="_descriptors_8hpp_source.html#l00405">Pooling2dDescriptor::m_PoolType</a>, <a class="el" href="_descriptors_8hpp_source.html#l00415">Pooling2dDescriptor::m_PoolWidth</a>, <a class="el" href="_descriptors_8hpp_source.html#l00419">Pooling2dDescriptor::m_StrideX</a>, and <a class="el" href="_descriptors_8hpp_source.html#l00421">Pooling2dDescriptor::m_StrideY</a>.</p>

</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 -->
<div class="ttc" id="anamespacearmnn_html_aeef70b7611ae71e97ab55c75ef72b210"><div class="ttname"><a href="namespacearmnn.html#aeef70b7611ae71e97ab55c75ef72b210">armnn::GetDataLayoutName</a></div><div class="ttdeci">constexpr const char * GetDataLayoutName(DataLayout dataLayout)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.html#l00253">TypesUtils.hpp:253</a></div></div>
<div class="ttc" id="anamespacearmnn_html_a129bde68152f5892e6abdedcb62aa983"><div class="ttname"><a href="namespacearmnn.html#a129bde68152f5892e6abdedcb62aa983">armnn::GetPaddingMethodAsCString</a></div><div class="ttdeci">constexpr char const  * GetPaddingMethodAsCString(PaddingMethod method)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.html#l00149">TypesUtils.hpp:149</a></div></div>
<div class="ttc" id="anamespacearmnn_html_a517314c21ac5309b90408da162212f9d"><div class="ttname"><a href="namespacearmnn.html#a517314c21ac5309b90408da162212f9d">armnn::GetPoolingAlgorithmAsCString</a></div><div class="ttdeci">constexpr char const  * GetPoolingAlgorithmAsCString(PoolingAlgorithm pooling)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.html#l00128">TypesUtils.hpp:128</a></div></div>
<div class="ttc" id="anamespacearmnn_html_a67d7ce2e14ebd328f423322db88279c3"><div class="ttname"><a href="namespacearmnn.html#a67d7ce2e14ebd328f423322db88279c3">armnn::GetOutputShapeRoundingAsCString</a></div><div class="ttdeci">constexpr char const  * GetOutputShapeRoundingAsCString(OutputShapeRounding rounding)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.html#l00139">TypesUtils.hpp:139</a></div></div>
<!-- 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_pooling2d_descriptor_01_4.html">StringifyLayerParameters&lt; Pooling2dDescriptor &gt;</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:59 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
