<!-- 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: DeleteBroadcastToImpl Class 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('classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.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-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">DeleteBroadcastToImpl Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_delete_broadcast_to_8hpp_source.html">DeleteBroadcastTo.hpp</a>&gt;</code></p>
<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:a569918f12c976ad376fa190ec0765a39"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.html#a569918f12c976ad376fa190ec0765a39">Run</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html">BroadcastToLayer</a> &amp;layer) const</td></tr>
<tr class="memdesc:a569918f12c976ad376fa190ec0765a39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run for every <a class="el" href="classarmnn_1_1_broadcast_to_layer.html">BroadcastToLayer</a>.  <a href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.html#a569918f12c976ad376fa190ec0765a39">More...</a><br /></td></tr>
<tr class="separator:a569918f12c976ad376fa190ec0765a39"><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:a89b85a61ca6028e756d9848bae126098"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.html#a89b85a61ca6028e756d9848bae126098">DeleteBroadcastToImpl</a> ()=default</td></tr>
<tr class="separator:a89b85a61ca6028e756d9848bae126098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8c316d3cc2046ddfbcbe4781aa73fac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.html#ab8c316d3cc2046ddfbcbe4781aa73fac">~DeleteBroadcastToImpl</a> ()=default</td></tr>
<tr class="separator:ab8c316d3cc2046ddfbcbe4781aa73fac"><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="_delete_broadcast_to_8hpp_source.html#l00013">13</a> of file <a class="el" href="_delete_broadcast_to_8hpp_source.html">DeleteBroadcastTo.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a89b85a61ca6028e756d9848bae126098"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89b85a61ca6028e756d9848bae126098">&#9670;&nbsp;</a></span>DeleteBroadcastToImpl()</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_1optimizations_1_1_delete_broadcast_to_impl.html">DeleteBroadcastToImpl</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>
<a id="ab8c316d3cc2046ddfbcbe4781aa73fac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8c316d3cc2046ddfbcbe4781aa73fac">&#9670;&nbsp;</a></span>~DeleteBroadcastToImpl()</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_1optimizations_1_1_delete_broadcast_to_impl.html">DeleteBroadcastToImpl</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="a569918f12c976ad376fa190ec0765a39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a569918f12c976ad376fa190ec0765a39">&#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.html">Graph</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classarmnn_1_1_broadcast_to_layer.html">BroadcastToLayer</a> &amp;&#160;</td>
          <td class="paramname"><em>layer</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>Run for every <a class="el" href="classarmnn_1_1_broadcast_to_layer.html">BroadcastToLayer</a>. </p>
<p>Remove it if it is before an ElementWiseLayer. Since ElementWiseBinary uses a brodcastLoop, using a broadcastTo layer is not necessary so it will be deleted. </p>

<p class="definition">Definition at line <a class="el" href="_delete_broadcast_to_8hpp_source.html#l00019">19</a> of file <a class="el" href="_delete_broadcast_to_8hpp_source.html">DeleteBroadcastTo.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    {</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">if</span>(layer.GetType() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4af6f7ce1d0822dea293ac2edc111e54ed">LayerType::BroadcastTo</a>)</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        {</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;            TensorInfo <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a> = layer.GetOutputSlot(0).GetTensorInfo();</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            Layer&amp; next = layer.GetOutputSlot(0).GetConnection(0)-&gt;GetOwningLayer();</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            <span class="keywordflow">if</span> (next.GetType() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a699bcffd93aff3022014b9efc9eaefd1">LayerType::ElementwiseBinary</a>)</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            {</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                Layer&amp; connectedLayer = layer.GetInputSlots()[0].GetConnectedOutputSlot()-&gt;GetOwningLayer();</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">auto</span> tensorInfo = connectedLayer.GetOutputSlot().GetTensorInfo();</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                layer.GetOutputSlot().MoveAllConnections(connectedLayer.GetOutputSlot());</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                connectedLayer.GetOutputSlot().GetOutputHandler().SetTensorInfo(tensorInfo);</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            }</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        }</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4af6f7ce1d0822dea293ac2edc111e54ed">armnn::BroadcastTo</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a699bcffd93aff3022014b9efc9eaefd1">armnn::ElementwiseBinary</a>, <a class="el" href="_layer_8cpp_source.html#l00083">OutputSlot::GetConnection()</a>, <a class="el" href="_layer_8hpp_source.html#l00258">Layer::GetInputSlots()</a>, <a class="el" href="_layer_8hpp_source.html#l00139">OutputSlot::GetOutputHandler()</a>, <a class="el" href="_layer_8hpp_source.html#l00339">Layer::GetOutputSlot()</a>, <a class="el" href="_layer_8hpp_source.html#l00053">InputSlot::GetOwningLayer()</a>, <a class="el" href="_layer_8cpp_source.html#l00100">OutputSlot::GetTensorInfo()</a>, <a class="el" href="_layer_8hpp_source.html#l00286">Layer::GetType()</a>, <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>, <a class="el" href="_layer_8cpp_source.html#l00156">OutputSlot::MoveAllConnections()</a>, and <a class="el" href="_output_handler_8cpp_source.html#l00015">OutputHandler::SetTensorInfo()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/armnn/optimizations/<a class="el" href="_delete_broadcast_to_8hpp_source.html">DeleteBroadcastTo.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a699bcffd93aff3022014b9efc9eaefd1"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a699bcffd93aff3022014b9efc9eaefd1">armnn::LayerType::ElementwiseBinary</a></div><div class="ttdeci">@ ElementwiseBinary</div></div>
<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4af6f7ce1d0822dea293ac2edc111e54ed"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4af6f7ce1d0822dea293ac2edc111e54ed">armnn::LayerType::BroadcastTo</a></div><div class="ttdeci">@ BroadcastTo</div></div>
<div class="ttc" id="anamespacearmnn_html_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div><div class="ttdeci">@ info</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="namespacearmnn_1_1optimizations.html">optimizations</a></li><li class="navelem"><a class="el" href="classarmnn_1_1optimizations_1_1_delete_broadcast_to_impl.html">DeleteBroadcastToImpl</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:32:00 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>
