<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!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="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt; Class 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>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.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: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.02</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('classarmnn_1_1_optimize_for_connection_impl.xhtml','');});
</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-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classarmnn_1_1_optimize_for_connection_impl-members.xhtml">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Wrapper <a class="el" href="classarmnn_1_1_optimization.xhtml">Optimization</a> class that calls Wrapped::Run for every connection BaseType -&gt; ChildType.  
 <a href="classarmnn_1_1_optimize_for_connection_impl.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_optimization_8hpp_source.xhtml">Optimization.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classarmnn_1_1_optimize_for_connection_impl.png" usemap="#OptimizeForConnectionImpl_3C_20BaseType_2C_20ChildType_2C_20Wrapped_20_3E_map" alt=""/>
  <map id="OptimizeForConnectionImpl_3C_20BaseType_2C_20ChildType_2C_20Wrapped_20_3E_map" name="OptimizeForConnectionImpl_3C_20BaseType_2C_20ChildType_2C_20Wrapped_20_3E_map">
<area href="classarmnn_1_1_optimize_for_type_impl.xhtml" alt="OptimizeForTypeImpl&lt; BaseType, OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt; &gt;" shape="rect" coords="0,112,579,136"/>
<area href="classarmnn_1_1_optimize_for_connection.xhtml" alt="OptimizeForConnection&lt; BaseType, ChildType, Wrapped &gt;" shape="rect" coords="0,168,579,192"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aabfa350bfc87763fdcda1fdc0ce207dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimize_for_connection_impl.xhtml#aabfa350bfc87763fdcda1fdc0ce207dd">Run</a> (<a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;graph, BaseType &amp;base) const</td></tr>
<tr class="separator:aabfa350bfc87763fdcda1fdc0ce207dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab974ba2e7b8454f2afc9f69a89c457bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimize_for_connection_impl.xhtml#ab974ba2e7b8454f2afc9f69a89c457bd">~OptimizeForConnectionImpl</a> ()=default</td></tr>
<tr class="separator:ab974ba2e7b8454f2afc9f69a89c457bd"><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;typename BaseType, typename ChildType, typename Wrapped&gt;<br />
class armnn::OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt;</h3>

<p>Wrapper <a class="el" href="classarmnn_1_1_optimization.xhtml">Optimization</a> class that calls Wrapped::Run for every connection BaseType -&gt; ChildType. </p>
<ul>
<li>Wrapped class mustn't remove the base layer. The optimizer will remove it if left unconnected after applying each optimization.</li>
<li>Wrapped class mustn't affect existing connections in the same output. It might add new ones.</li>
<li>Children layers are removed if left unconnected after applying the wrapped optimization. </li>
</ul>

<p class="definition">Definition at line <a class="el" href="_optimization_8hpp_source.xhtml#l00077">77</a> of file <a class="el" href="_optimization_8hpp_source.xhtml">Optimization.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab974ba2e7b8454f2afc9f69a89c457bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab974ba2e7b8454f2afc9f69a89c457bd">&#9670;&nbsp;</a></span>~OptimizeForConnectionImpl()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="classarmnn_1_1_optimize_for_connection_impl.xhtml">OptimizeForConnectionImpl</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aabfa350bfc87763fdcda1fdc0ce207dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabfa350bfc87763fdcda1fdc0ce207dd">&#9670;&nbsp;</a></span>Run()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Run </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;&#160;</td>
          <td class="paramname"><em>graph</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BaseType &amp;&#160;</td>
          <td class="paramname"><em>base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_optimization_8hpp_source.xhtml#l00082">82</a> of file <a class="el" href="_optimization_8hpp_source.xhtml">Optimization.hpp</a>.</p>

<p class="reference">References <a class="el" href="_graph_8hpp_source.xhtml#l00442">Graph::EraseLayer()</a>, and <a class="el" href="_layer_8hpp_source.xhtml#l00243">Layer::IsOutputUnconnected()</a>.</p>
<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> output = base.BeginOutputSlots(); output != base.EndOutputSlots(); ++output)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; childInput : output-&gt;GetConnections())</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            {</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                <span class="keywordflow">if</span> (childInput-&gt;GetOwningLayer().GetType() == LayerEnumOf&lt;ChildType&gt;())</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                {</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                    Wrapped::Run(graph, *childInput);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            }</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            <span class="comment">// Removes unconnected children.</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; output-&gt;GetNumConnections();)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                Layer* child = &amp;output-&gt;GetConnection(i)-&gt;GetOwningLayer();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                <span class="keywordflow">if</span> (child-&gt;IsOutputUnconnected())</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                    graph.EraseLayer(child);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="keywordflow">else</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                    ++i;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            }</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/armnn/optimizations/<a class="el" href="_optimization_8hpp_source.xhtml">Optimization.hpp</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.xhtml">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_optimize_for_connection_impl.xhtml">OptimizeForConnectionImpl</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:09:19 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>
