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

<p><code>#include &lt;<a class="el" href="_max_min_into_bounded_relu_8hpp_source.html">MaxMinIntoBoundedRelu.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:ab8beb4d0cfc5c103045f261ff726b08e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_max_min_into_bounded_relu_impl.html#ab8beb4d0cfc5c103045f261ff726b08e">Run</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph, <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;connection)</td></tr>
<tr class="memdesc:ab8beb4d0cfc5c103045f261ff726b08e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run for every exclusive connection between any Max &amp; Min layers The Max, Min and its associated constant inputs will be removed, and replaced with a BoundedRelu Activation.  <a href="classarmnn_1_1optimizations_1_1_max_min_into_bounded_relu_impl.html#ab8beb4d0cfc5c103045f261ff726b08e">More...</a><br /></td></tr>
<tr class="separator:ab8beb4d0cfc5c103045f261ff726b08e"><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:a65db2d72b0776e98bacbd6037b374d09"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_max_min_into_bounded_relu_impl.html#a65db2d72b0776e98bacbd6037b374d09">MaxMinIntoBoundedReluImpl</a> ()=default</td></tr>
<tr class="separator:a65db2d72b0776e98bacbd6037b374d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43b1f24af6a51c0e749e200d1bbcf765"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1optimizations_1_1_max_min_into_bounded_relu_impl.html#a43b1f24af6a51c0e749e200d1bbcf765">~MaxMinIntoBoundedReluImpl</a> ()=default</td></tr>
<tr class="separator:a43b1f24af6a51c0e749e200d1bbcf765"><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="_max_min_into_bounded_relu_8hpp_source.html#l00013">13</a> of file <a class="el" href="_max_min_into_bounded_relu_8hpp_source.html">MaxMinIntoBoundedRelu.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a65db2d72b0776e98bacbd6037b374d09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65db2d72b0776e98bacbd6037b374d09">&#9670;&nbsp;</a></span>MaxMinIntoBoundedReluImpl()</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_max_min_into_bounded_relu_impl.html">MaxMinIntoBoundedReluImpl</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="a43b1f24af6a51c0e749e200d1bbcf765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43b1f24af6a51c0e749e200d1bbcf765">&#9670;&nbsp;</a></span>~MaxMinIntoBoundedReluImpl()</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_max_min_into_bounded_relu_impl.html">MaxMinIntoBoundedReluImpl</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="ab8beb4d0cfc5c103045f261ff726b08e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8beb4d0cfc5c103045f261ff726b08e">&#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">static 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"><em>graph</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;&#160;</td>
          <td class="paramname"><em>connection</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">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Run for every exclusive connection between any Max &amp; Min layers The Max, Min and its associated constant inputs will be removed, and replaced with a BoundedRelu Activation. </p>

<p class="definition">Definition at line <a class="el" href="_max_min_into_bounded_relu_8hpp_source.html#l00018">18</a> of file <a class="el" href="_max_min_into_bounded_relu_8hpp_source.html">MaxMinIntoBoundedRelu.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    {</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        Layer&amp; base = connection.GetConnectedOutputSlot()-&gt;GetOwningLayer();</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        Layer&amp; child = connection.GetOwningLayer();</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;        <span class="keyword">auto</span>&amp; maxLayer = *PolymorphicDowncast&lt;ElementwiseBinaryLayer*&gt;(&amp;base);</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">if</span> (maxLayer.GetParameters().m_Operation != <a class="code" href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047a8321e79c278ec510f63675c040594892">BinaryOperation::Maximum</a>)</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        {</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        }</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="keyword">auto</span>&amp; minLayer = *PolymorphicDowncast&lt;ElementwiseBinaryLayer*&gt;(&amp;child);</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">if</span> (minLayer.GetParameters().m_Operation != <a class="code" href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047aa1d0ec6d56f8833a078b5a7ac4caf2d4">BinaryOperation::Minimum</a>)</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        {</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            <span class="keywordflow">return</span>;</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 class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">if</span> (maxLayer.GetDataType() != minLayer.GetDataType())</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        {</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        }</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="comment">// get max and min values</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        float_t maxValue;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keywordflow">if</span> (!GetValue(maxLayer, maxValue))</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        {</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        }</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        float_t minValue;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">if</span> (!GetValue(minLayer, minValue))</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        {</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        }</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="comment">// Save original parent output slot of the max layer</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        OutputSlot&amp; parentOut = *maxLayer.GetInputSlot(0).GetConnectedOutputSlot();</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="comment">// Insert activation layer between max layer and its parent layer</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        ActivationDescriptor boundedReluDescriptor(<a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">ActivationFunction::BoundedReLu</a>, minValue, maxValue);</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keyword">const</span> std::string name = std::string(<span class="stringliteral">&quot;replaced-&quot;</span>) + maxLayer.GetName() + std::string(<span class="stringliteral">&quot;-&quot;</span>) + minLayer.GetName()</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                               + std::string(<span class="stringliteral">&quot;-with-BoundedRelu&quot;</span>);</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keyword">auto</span>&amp; boundedReluLayer = *graph.InsertNewLayer&lt;ActivationLayer&gt;(maxLayer.GetInputSlot(0),</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                                                        boundedReluDescriptor,</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                                                        name.c_str());</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="comment">// Reconnects with original parent.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        boundedReluLayer.GetOutputSlot().MoveAllConnections(parentOut);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="comment">// Moves connections in min layer output to parent layer.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="comment">// Min layer will be removed as it&#39;s left unconnected.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="comment">// Max layer will be removed if left unconnected.</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        minLayer.GetOutputSlot().MoveAllConnections(boundedReluLayer.GetOutputSlot());</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">armnn::BoundedReLu</a>, <a class="el" href="_layer_8hpp_source.html#l00056">InputSlot::GetConnectedOutputSlot()</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_8hpp_source.html#l00132">OutputSlot::GetOwningLayer()</a>, <a class="el" href="_graph_8hpp_source.html#l00481">Graph::InsertNewLayer()</a>, <a class="el" href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047a8321e79c278ec510f63675c040594892">armnn::Maximum</a>, <a class="el" href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047aa1d0ec6d56f8833a078b5a7ac4caf2d4">armnn::Minimum</a>, and <a class="el" href="_layer_8cpp_source.html#l00156">OutputSlot::MoveAllConnections()</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="_max_min_into_bounded_relu_8hpp_source.html">MaxMinIntoBoundedRelu.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">armnn::ActivationFunction::BoundedReLu</a></div><div class="ttdeci">@ BoundedReLu</div><div class="ttdoc">min(a, max(b, input)) ReLu1 &amp; ReLu6.</div></div>
<div class="ttc" id="anamespacearmnn_html_ac4f8557279754ed7b3f749d55b0e3047a8321e79c278ec510f63675c040594892"><div class="ttname"><a href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047a8321e79c278ec510f63675c040594892">armnn::BinaryOperation::Maximum</a></div><div class="ttdeci">@ Maximum</div></div>
<div class="ttc" id="anamespacearmnn_html_ac4f8557279754ed7b3f749d55b0e3047aa1d0ec6d56f8833a078b5a7ac4caf2d4"><div class="ttname"><a href="namespacearmnn.html#ac4f8557279754ed7b3f749d55b0e3047aa1d0ec6d56f8833a078b5a7ac4caf2d4">armnn::BinaryOperation::Minimum</a></div><div class="ttdeci">@ Minimum</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_max_min_into_bounded_relu_impl.html">MaxMinIntoBoundedReluImpl</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>
