<!-- 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: src/armnn/layers/LogicalBinaryLayer.hpp Source File</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('_logical_binary_layer_8hpp_source.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="headertitle">
<div class="title">LogicalBinaryLayer.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_logical_binary_layer_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_layer_with_parameters_8hpp.html">LayerWithParameters.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.html">armnn</a></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">/// This layer represents a Logical Binary operation.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classarmnn_1_1_logical_binary_layer.html">   14</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classarmnn_1_1_logical_binary_layer.html">LogicalBinaryLayer</a> : <span class="keyword">public</span> <a class="code" href="classarmnn_1_1_layer_with_parameters.html">LayerWithParameters</a>&lt;LogicalBinaryDescriptor&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">    /// Makes a workload for the LogicalBinary type</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">    /// @param [in] graph The graph where this layer can be found</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">    /// @param [in] factory The workload factory which will create the workload</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">    /// @return A pointer to the created workload, or nullptr if not created</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"></span>    <span class="keyword">virtual</span> std::unique_ptr&lt;IWorkload&gt; <a class="code" href="classarmnn_1_1_logical_binary_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">CreateWorkload</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a>&amp; factory) <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    /// Creates a dynamically-allocated copy of this layer</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">    /// @param [in] graph The graph into which this layer is being cloned</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"></span>    <a class="code" href="classarmnn_1_1_logical_binary_layer.html">LogicalBinaryLayer</a>* <a class="code" href="classarmnn_1_1_logical_binary_layer.html#a811ee0ce3856889aee26e1bc0ea2abc5">Clone</a>(<a class="code" href="classarmnn_1_1_graph.html">Graph</a>&amp; graph) <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">    /// By default returns inputShapes if the number of inputs are equal to number of outputs,</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">    /// otherwise infers the output shapes from given input shapes and layer properties.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">    /// @param [in] inputShapes The input shapes layer has.</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">    /// @return A vector to the inferred output shape.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"></span>    std::vector&lt;TensorShape&gt; <a class="code" href="classarmnn_1_1_logical_binary_layer.html#a65ca562c882ad619684445a1402f415a">InferOutputShapes</a>(<span class="keyword">const</span> std::vector&lt;TensorShape&gt;&amp; inputShapes) <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">    /// Check if the input tensor shape(s) will lead to a valid configuration</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">    /// of @ref LogicalBinaryLayer</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">    /// @param [in] shapeInferenceMethod Indicates if output shape shall be overwritten or just validated.</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_logical_binary_layer.html#a8c8f543d7e9729362c266d12ec169966">ValidateTensorShapesFromInputs</a>() <span class="keyword">override</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;    <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_logical_binary_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ExecuteStrategy</a>(<a class="code" href="classarmnn_1_1_i_strategy.html">IStrategy</a>&amp; strategy) <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">    /// Constructor to create a LogicalBinaryLayer</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">    /// @param [in] param LogicalBinaryDescriptor to configure the LogicalBinaryLayer</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">    /// @param [in] name Optional name for the layer</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment"></span>    <a class="code" href="classarmnn_1_1_logical_binary_layer.html#a6b67d1c596097c0d105e33c9d3c2a408">LogicalBinaryLayer</a>(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_logical_binary_descriptor.html">LogicalBinaryDescriptor</a>&amp; param, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">    /// Default destructor</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span>    <a class="code" href="classarmnn_1_1_logical_binary_layer.html#af45e1481d7315af43c476161932cae02">~LogicalBinaryLayer</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;};</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;} <span class="comment">// namespace armnn</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_adfa912d0c4c6c00f1af2cbfa799572b7"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">armnn::LogicalBinaryLayer::CreateWorkload</a></div><div class="ttdeci">virtual std::unique_ptr&lt; IWorkload &gt; CreateWorkload(const IWorkloadFactory &amp;factory) const override</div><div class="ttdoc">Makes a workload for the LogicalBinary type.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00023">LogicalBinaryLayer.cpp:23</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_a65ca562c882ad619684445a1402f415a"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#a65ca562c882ad619684445a1402f415a">armnn::LogicalBinaryLayer::InferOutputShapes</a></div><div class="ttdeci">std::vector&lt; TensorShape &gt; InferOutputShapes(const std::vector&lt; TensorShape &gt; &amp;inputShapes) const override</div><div class="ttdoc">By default returns inputShapes if the number of inputs are equal to number of outputs,...</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00034">LogicalBinaryLayer.cpp:34</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_af45e1481d7315af43c476161932cae02"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#af45e1481d7315af43c476161932cae02">armnn::LogicalBinaryLayer::~LogicalBinaryLayer</a></div><div class="ttdeci">~LogicalBinaryLayer()=default</div><div class="ttdoc">Default destructor.</div></div>
<div class="ttc" id="aclassarmnn_1_1_i_strategy_html"><div class="ttname"><a href="classarmnn_1_1_i_strategy.html">armnn::IStrategy</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_strategy_8hpp_source.html#l00016">IStrategy.hpp:16</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_a8c8f543d7e9729362c266d12ec169966"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#a8c8f543d7e9729362c266d12ec169966">armnn::LogicalBinaryLayer::ValidateTensorShapesFromInputs</a></div><div class="ttdeci">void ValidateTensorShapesFromInputs() override</div><div class="ttdoc">Check if the input tensor shape(s) will lead to a valid configuration of LogicalBinaryLayer.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer.cpp:72</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_layer_with_parameters_html"><div class="ttname"><a href="classarmnn_1_1_layer_with_parameters.html">armnn::LayerWithParameters</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_with_parameters_8hpp_source.html#l00014">LayerWithParameters.hpp:14</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_a6b67d1c596097c0d105e33c9d3c2a408"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#a6b67d1c596097c0d105e33c9d3c2a408">armnn::LogicalBinaryLayer::LogicalBinaryLayer</a></div><div class="ttdeci">LogicalBinaryLayer(const LogicalBinaryDescriptor &amp;param, const char *name)</div><div class="ttdoc">Constructor to create a LogicalBinaryLayer.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00018">LogicalBinaryLayer.cpp:18</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_a811ee0ce3856889aee26e1bc0ea2abc5"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#a811ee0ce3856889aee26e1bc0ea2abc5">armnn::LogicalBinaryLayer::Clone</a></div><div class="ttdeci">LogicalBinaryLayer * Clone(Graph &amp;graph) const override</div><div class="ttdoc">Creates a dynamically-allocated copy of this layer.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00029">LogicalBinaryLayer.cpp:29</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_i_workload_factory_html"><div class="ttname"><a href="classarmnn_1_1_i_workload_factory.html">armnn::IWorkloadFactory</a></div><div class="ttdef"><b>Definition:</b> <a href="_workload_factory_8hpp_source.html#l00022">WorkloadFactory.hpp:22</a></div></div>
<div class="ttc" id="a_layer_with_parameters_8hpp_html"><div class="ttname"><a href="_layer_with_parameters_8hpp.html">LayerWithParameters.hpp</a></div></div>
<div class="ttc" id="astructarmnn_1_1_logical_binary_descriptor_html"><div class="ttname"><a href="structarmnn_1_1_logical_binary_descriptor.html">armnn::LogicalBinaryDescriptor</a></div><div class="ttdoc">A LogicalBinaryDescriptor for the LogicalBinaryLayer.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01518">Descriptors.hpp:1518</a></div></div>
<div class="ttc" id="anamespacearmnn_html"><div class="ttname"><a href="namespacearmnn.html">armnn</a></div><div class="ttdoc">Copyright (c) 2021 ARM Limited and Contributors.</div><div class="ttdef"><b>Definition:</b> <a href="01__00__quick__start_8dox_source.html#l00006">01_00_quick_start.dox:6</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html">armnn::LogicalBinaryLayer</a></div><div class="ttdoc">This layer represents a Logical Binary operation.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8hpp_source.html#l00014">LogicalBinaryLayer.hpp:14</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_logical_binary_layer_html_a46fc3fdd4b2a5dd6d184e57983cf20bc"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">armnn::LogicalBinaryLayer::ExecuteStrategy</a></div><div class="ttdeci">void ExecuteStrategy(IStrategy &amp;strategy) const override</div><div class="ttdoc">Apply a visitor to this layer.</div><div class="ttdef"><b>Definition:</b> <a href="_logical_binary_layer_8cpp_source.html#l00095">LogicalBinaryLayer.cpp:95</a></div></div>
<div class="ttc" id="aclassarmnn_1_1_graph_html"><div class="ttname"><a href="classarmnn_1_1_graph.html">armnn::Graph</a></div><div class="ttdef"><b>Definition:</b> <a href="_graph_8hpp_source.html#l00030">Graph.hpp:30</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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e0a84d05c80a2ef4231141dcbbeac5c8.html">armnn</a></li><li class="navelem"><a class="el" href="dir_9da6642ce0fd5a8c83524f1b621275be.html">layers</a></li><li class="navelem"><a class="el" href="_logical_binary_layer_8hpp.html">LogicalBinaryLayer.hpp</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:44 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>
