aboutsummaryrefslogtreecommitdiff
path: root/21.02/_is_layer_supported_test_impl_8hpp_source.xhtml
blob: 4d0cb1e96ee15519b6caea07766dff2a3c51ff81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<!-- 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: src/backends/backendsCommon/test/IsLayerSupportedTestImpl.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>
<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">21.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('_is_layer_supported_test_impl_8hpp_source.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="headertitle">
<div class="title">IsLayerSupportedTestImpl.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_is_layer_supported_test_impl_8hpp.xhtml">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 © 2017 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;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_graph_8hpp.xhtml">Graph.hpp</a>&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_map_workload_8hpp.xhtml">backendsCommon/MapWorkload.hpp</a>&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_unmap_workload_8hpp.xhtml">backendsCommon/UnmapWorkload.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_workload_factory_8hpp.xhtml">backendsCommon/WorkloadFactory.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_ignore_unused_8hpp.xhtml">armnn/utility/IgnoreUnused.hpp</a>&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">namespace</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> dummyGraph;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// Make a dummy TensorInfo object.</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">template</span>&lt;armnn::DataType DataType&gt;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> MakeDummyTensorInfo()</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="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>({2,2,2,2}, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>, 1.0, 0);</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;}</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;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">// Make a dummy WorkloadInfo using a dummy TensorInfo.</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">template</span>&lt;armnn::DataType DataType&gt;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<a class="code" href="structarmnn_1_1_workload_info.xhtml">armnn::WorkloadInfo</a> MakeDummyWorkloadInfo(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numInputs, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numOutputs)</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;    <a class="code" href="structarmnn_1_1_workload_info.xhtml">armnn::WorkloadInfo</a> <a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>;</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;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i &lt; numInputs; i++)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        info.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.push_back(MakeDummyTensorInfo&lt;DataType&gt;());</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    }</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="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> o=0; o &lt; numOutputs; o++)</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;        info.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>.push_back(MakeDummyTensorInfo&lt;DataType&gt;());</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    }</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> info;</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;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">// Template class to create a dummy layer (2 parameters).</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> LayerType, <span class="keyword">typename</span> DescType = <span class="keyword">typename</span> LayerType::DescriptorType&gt;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">struct </span>DummyLayer</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;    DummyLayer()</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&gt;(DescType(), <span class="stringliteral">&quot;&quot;</span>);</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;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</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;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">// Template class to create a dummy layer (1 parameter).</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> LayerType&gt;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>, void&gt;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    DummyLayer()</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&gt;(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::BatchNormalizationLayer&gt;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    DummyLayer()</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_batch_normalization_layer.xhtml">armnn::BatchNormalizationLayer</a>&gt;(<a class="code" href="structarmnn_1_1_batch_normalization_descriptor.xhtml">armnn::BatchNormalizationDescriptor</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Mean = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Variance = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Beta = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Gamma = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</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;    <a class="code" href="classarmnn_1_1_batch_normalization_layer.xhtml">armnn::BatchNormalizationLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</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;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::BatchToSpaceNdLayer&gt;</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;    DummyLayer()</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;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml">armnn::BatchToSpaceNdLayer</a>&gt;(<a class="code" href="structarmnn_1_1_batch_to_space_nd_descriptor.xhtml">armnn::BatchToSpaceNdDescriptor</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    }</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    {</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml">armnn::BatchToSpaceNdLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::ConstantLayer, void&gt;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    DummyLayer()</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_constant_layer.xhtml">armnn::ConstantLayer</a>&gt;(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <a class="code" href="classarmnn_1_1_constant_layer.xhtml">armnn::ConstantLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::InputLayer, <a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>&gt;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    DummyLayer()</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(<a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    }</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    {</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    }</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;};</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::ConcatLayer&gt;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    DummyLayer()</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    {</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">armnn::OriginsDescriptor</a> desc(2);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_concat_layer.xhtml">armnn::ConcatLayer</a>&gt;(desc, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    }</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    {</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    }</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <a class="code" href="classarmnn_1_1_concat_layer.xhtml">armnn::ConcatLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;};</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::MapLayer, void&gt;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    DummyLayer()</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    {</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_map_layer.xhtml">armnn::MapLayer</a>&gt;(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    }</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    {</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <a class="code" href="classarmnn_1_1_map_layer.xhtml">armnn::MapLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::OutputLayer, <a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>&gt;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    DummyLayer()</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    {</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(<a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    }</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    {</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    }</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;};</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::SplitterLayer&gt;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    DummyLayer()</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    {</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">armnn::ViewsDescriptor</a> desc(1);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_splitter_layer.xhtml">armnn::SplitterLayer</a>&gt;(desc, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    }</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <a class="code" href="classarmnn_1_1_splitter_layer.xhtml">armnn::SplitterLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;};</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::UnmapLayer, void&gt;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    DummyLayer()</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    {</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_unmap_layer.xhtml">armnn::UnmapLayer</a>&gt;(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    {</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <a class="code" href="classarmnn_1_1_unmap_layer.xhtml">armnn::UnmapLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;};</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ConvolutionLayerType&gt;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="keyword">struct </span>DummyConvolutionLayer</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    DummyConvolutionLayer()</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    {</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="keyword">typename</span> ConvolutionLayerType::DescriptorType desc;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        desc.m_StrideX = 1;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        desc.m_StrideY = 1;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;ConvolutionLayerType&gt;(desc, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Weight = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Bias = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    ~DummyConvolutionLayer()</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    {</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    }</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    ConvolutionLayerType* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;};</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;<a class="code" href="namespacearmnn.xhtml">armnn</a>::Convolution2dLayer&gt;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    : <span class="keyword">public</span> DummyConvolutionLayer&lt;armnn::Convolution2dLayer&gt;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;};</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::DepthwiseConvolution2dLayer&gt;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    : <span class="keyword">public</span> DummyConvolutionLayer&lt;armnn::DepthwiseConvolution2dLayer&gt;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;{</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;};</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::TransposeConvolution2dLayer&gt;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    : <span class="keyword">public</span> DummyConvolutionLayer&lt;armnn::TransposeConvolution2dLayer&gt;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;};</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::DetectionPostProcessLayer&gt;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    DummyLayer()</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_detection_post_process_layer.xhtml">armnn::DetectionPostProcessLayer</a>&gt;(<a class="code" href="structarmnn_1_1_detection_post_process_descriptor.xhtml">armnn::DetectionPostProcessDescriptor</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Anchors = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    }</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    }</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <a class="code" href="classarmnn_1_1_detection_post_process_layer.xhtml">armnn::DetectionPostProcessLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;};</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> LstmLayerType&gt;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="keyword">struct </span>DummyLstmLayer</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    DummyLstmLayer()</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    {</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="keyword">typename</span> LstmLayerType::DescriptorType desc;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        desc.m_CifgEnabled = <span class="keyword">false</span>;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;LstmLayerType&gt;(<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml">armnn::LstmDescriptor</a>(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToForgetWeights     = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToCellWeights       = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToOutputWeights     = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToForgetWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToCellWeights   = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToOutputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_ForgetGateBias           = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_CellBias                 = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_OutputGateBias           = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_InputToInputWeights        = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_RecurrentToInputWeights    = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_InputGateBias              = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    }</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    ~DummyLstmLayer()</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    {</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    }</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <a class="code" href="classarmnn_1_1_lstm_layer.xhtml">armnn::LstmLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;};</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::LstmLayer&gt;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        : <span class="keyword">public</span> DummyLstmLayer&lt;armnn::LstmLayer&gt;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;{</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;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> QLstmLayerType&gt;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="keyword">struct </span>DummyQLstmLayer</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;{</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    DummyQLstmLayer()</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;        <span class="keyword">typename</span> QLstmLayerType::DescriptorType desc;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        desc.m_CifgEnabled = <span class="keyword">false</span>;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        desc.m_PeepholeEnabled = <span class="keyword">true</span>;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        desc.m_ProjectionEnabled = <span class="keyword">true</span>;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        desc.m_LayerNormEnabled = <span class="keyword">true</span>;</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;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;QLstmLayerType&gt;(<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml">armnn::QLstmDescriptor</a>(), <span class="stringliteral">&quot;qLstm&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="comment">// Basic params</span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToForgetWeights     = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToCellWeights       = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_InputToOutputWeights     = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToForgetWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToCellWeights   = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_RecurrentToOutputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_ForgetGateBias           = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_CellBias                 = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_BasicParameters.m_OutputGateBias           = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="comment">// CIFG optional params</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_InputToInputWeights     = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_RecurrentToInputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_CifgParameters.m_InputGateBias           = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <span class="comment">// Projection optional params</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_ProjectionParameters.m_ProjectionWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a>));</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_ProjectionParameters.m_ProjectionBias    = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <span class="comment">// Peephole optional params</span></div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_PeepholeParameters.m_CellToInputWeights  = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_PeepholeParameters.m_CellToForgetWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_PeepholeParameters.m_CellToOutputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="comment">// Layer normalization optional params</span></div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_LayerNormParameters.m_InputLayerNormWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_LayerNormParameters.m_ForgetLayerNormWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_LayerNormParameters.m_CellLayerNormWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_LayerNormParameters.m_OutputLayerNormWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a>));</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    }</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    ~DummyQLstmLayer()</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    {</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    }</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <a class="code" href="classarmnn_1_1_q_lstm_layer.xhtml">armnn::QLstmLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;};</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::QuantizedLstmLayer, void&gt;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;{</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    DummyLayer()</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    {</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_quantized_lstm_layer.xhtml">armnn::QuantizedLstmLayer</a>&gt;(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_InputToInputWeights  = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_InputToForgetWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_InputToCellWeights   = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_InputToOutputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_RecurrentToInputWeights  = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_RecurrentToForgetWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_RecurrentToCellWeights   = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_RecurrentToOutputWeights = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a>));</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_InputGateBias  = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_ForgetGateBias = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_CellBias       = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_QuantizedLstmParameters.m_OutputGateBias = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;                <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a>));</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    }</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    {</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    }</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <a class="code" href="classarmnn_1_1_quantized_lstm_layer.xhtml">armnn::QuantizedLstmLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;};</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="keyword">struct </span>DummyLayer&lt;armnn::FullyConnectedLayer&gt;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;{</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    DummyLayer()</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    {</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <a class="code" href="structarmnn_1_1_fully_connected_descriptor.xhtml">armnn::FullyConnectedLayer::DescriptorType</a> desc;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a> = dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_fully_connected_layer.xhtml">armnn::FullyConnectedLayer</a>&gt;(desc, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>-&gt;m_Weight = std::make_unique&lt;armnn::ScopedCpuTensorHandle&gt;(</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;            <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>({1,1,1,1}), <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a>));</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    }</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    ~DummyLayer()</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    {</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        dummyGraph.<a class="code" href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">EraseLayer</a>(<a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>);</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    }</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <a class="code" href="classarmnn_1_1_fully_connected_layer.xhtml">armnn::FullyConnectedLayer</a>* <a class="code" href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a>;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;};</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment">// Tag for giving LayerType entries a unique strong type each.</span></div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType&gt;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="keyword">struct </span>Tag{};</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a22fc459f237f3214c9e5efbada894a28">  485</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_CUSTOM_PARAM(name, descType) \</span></div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">template&lt;armnn::DataType DataType&gt; \</span></div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">struct LayerTypePolicy&lt;armnn::LayerType::name, DataType&gt; \</span></div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">    using Type = armnn::name##Layer; \</span></div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">    using Desc = descType; \</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">    using QueueDesc = armnn::name##QueueDescriptor; \</span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">    constexpr static const char* NameStr = #name; \</span></div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="preprocessor">    constexpr static const bool IsException = false; \</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">    \</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">    static std::unique_ptr&lt;armnn::IWorkload&gt; MakeDummyWorkload(armnn::IWorkloadFactory *factory, \</span></div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">        unsigned int nIn, unsigned int nOut) \</span></div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">        QueueDesc desc; \</span></div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="preprocessor">        armnn::WorkloadInfo info = MakeDummyWorkloadInfo&lt;DataType&gt;(nIn, nOut); \</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">        return factory-&gt;Create##name(desc, info); \</span></div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">};</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a50f261c1d954aee96c5e283bec9b3736">  504</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_MAP_PARAM(name, descType) \</span></div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">template&lt;armnn::DataType DataType&gt; \</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">struct LayerTypePolicy&lt;armnn::LayerType::name, DataType&gt; \</span></div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">    using Type = armnn::name##Layer; \</span></div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor">    using Desc = descType; \</span></div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">    using QueueDesc = armnn::name##QueueDescriptor; \</span></div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="preprocessor">    using Workload = armnn::name##Workload; \</span></div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="preprocessor">    constexpr static const char* NameStr = #name; \</span></div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">    constexpr static const bool IsException = false; \</span></div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="preprocessor">    \</span></div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">    static std::unique_ptr&lt;armnn::IWorkload&gt; MakeDummyWorkload(armnn::IWorkloadFactory* factory, \</span></div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="preprocessor">        unsigned int nIn, unsigned int nOut) \</span></div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">        IgnoreUnused(factory); \</span></div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="preprocessor">        QueueDesc desc; \</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">        armnn::WorkloadInfo info = MakeDummyWorkloadInfo&lt;DataType&gt;(nIn, nOut); \</span></div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="preprocessor">        return std::make_unique&lt;armnn::name##Workload&gt;(desc, info); \</span></div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="preprocessor">};</span></div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="comment">// Define a layer policy specialization for use with the IsLayerSupported tests.</span></div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="comment">// Use this version for layers whose constructor takes 1 parameter(name).</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">  527</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_1_PARAM(name) DECLARE_LAYER_POLICY_CUSTOM_PARAM(name, void)</span></div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="comment">// Define a layer policy specialization for use with the IsLayerSupported tests.</span></div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="comment">// Use this version for layers whose constructor takes 2 parameters(descriptor and name).</span></div><div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">  531</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_2_PARAM(name) DECLARE_LAYER_POLICY_CUSTOM_PARAM(name, armnn::name##Descriptor)</span></div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a09b96516eb25d6389075296cbb95b3b9">  534</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_EXCEPTION(name, descType) \</span></div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="preprocessor">template&lt;armnn::DataType DataType&gt; \</span></div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="preprocessor">struct LayerTypePolicy&lt;armnn::LayerType::name, DataType&gt; \</span></div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="preprocessor">{ \</span></div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">    using Type = armnn::name##Layer; \</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="preprocessor">    using Desc = descType; \</span></div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">    constexpr static const char* NameStr = #name; \</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="preprocessor">    constexpr static const bool IsException = true; \</span></div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">    \</span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor">    static std::unique_ptr&lt;armnn::IWorkload&gt; MakeDummyWorkload(armnn::IWorkloadFactory *factory, \</span></div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">        unsigned int nIn, unsigned int nOut) \</span></div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="preprocessor">    { \</span></div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="preprocessor">        IgnoreUnused(factory, nIn, nOut); \</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="preprocessor">        return std::unique_ptr&lt;armnn::IWorkload&gt;(); \</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="preprocessor">    } \</span></div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="preprocessor">};</span></div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a611ebd58835be1bc1460c44ccccbc4c8">  551</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_EXCEPTION_1_PARAM(name) DECLARE_LAYER_POLICY_EXCEPTION(name, void)</span></div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="_is_layer_supported_test_impl_8hpp.xhtml#a26c3597a39bf385163bc2cc79d2de4a7">  552</a></span>&#160;<span class="preprocessor">#define DECLARE_LAYER_POLICY_EXCEPTION_2_PARAM(name) DECLARE_LAYER_POLICY_EXCEPTION(name, armnn::name##Descriptor)</span></div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="comment">// Layer policy template.</span></div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type, armnn::DataType DataType&gt;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="keyword">struct </span>LayerTypePolicy;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="comment">// Every entry in the armnn::LayerType enum must be accounted for below.</span></div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a7636fbbc4f8ea2d0cf9f3ac2d12a4c62">Activation</a>)</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Addition)</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ad441be836a142e8935e0413f4a22c9ec">ArgMinMax</a>)</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(BatchNormalization)</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a8746512fab5ec10c2c57800c66311ba7">BatchToSpaceNd</a>)</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Comparison)</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Concat)</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Constant)</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(ConvertBf16ToFp32)</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(ConvertFp16ToFp32)</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(ConvertFp32ToBf16)</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(ConvertFp32ToFp16)</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Convolution2d)</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(MemCopy)</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(MemImport)</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a5aae369ef847a00062925cea8e9be9c4">Debug</a>)</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ab023d9a7687e35c0f108458a094c1f56">DepthToSpace</a>)</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(DepthwiseConvolution2d)</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a855293b1be0581fb61ef6a1c5b027d0f">Dequantize</a>)</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ae76ce23fa9fc18e56448d52b37dd3f32">DetectionPostProcess</a>)</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(ElementwiseUnary)</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ab3c0b7e1a78b1b98c24934221f36a7c3">FakeQuantization</a>)</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a88bebdfe6309aa2cd6831cfa73c296f0">Fill</a>)</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Floor)</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a5739b990434e95ee13ff6d99824ffaf3">FullyConnected</a>)</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a38c9c1724b660b2558a19895b681a8fb">Gather</a>)</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a22fc459f237f3214c9e5efbada894a28">DECLARE_LAYER_POLICY_CUSTOM_PARAM</a>(Input, <a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>)</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(InstanceNormalization)</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(L2Normalization)</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(LogicalBinary)</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ac52e04c0e349e25bcdaa72c27395ef8f">LogSoftmax</a>)</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Lstm)</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a50f261c1d954aee96c5e283bec9b3736">DECLARE_LAYER_POLICY_MAP_PARAM</a>(Map, <span class="keywordtype">void</span>)</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Maximum)</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Mean)</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Merge)</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Minimum)</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Multiplication)</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Normalization)</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a22fc459f237f3214c9e5efbada894a28">DECLARE_LAYER_POLICY_CUSTOM_PARAM</a>(Output, <a class="code" href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a>)</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a3ed2cc8da6282c1c8aa19b62d67ac34e">Pad</a>)</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ad773a034fb9983e15f3094b4c5c7c30c">Quantize</a>)</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn_utils.xhtml#af3c74017185773dd61d8ca6662d65d43">Permute</a>)</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ae2e93e304cf516841c521e3eaee025cd">Pooling2d</a>)</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(PreCompiled)</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Prelu)</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(QLstm)</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(QuantizedLstm)</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Division)</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Rank)</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a6894316aa645fd5e837739135bef04bb">Resize</a>)</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(Reshape)</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a044ea0cc993d4d1fbe4ec877b17b8d39">Slice</a>)</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#aa999ff2585ad75b95954a9323f63c32b">Softmax</a>)</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a4a180e425d4c19b2cdea4ce5760180e1">SpaceToBatchNd</a>)</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a5e1dc69443b64ad16b669388a6023f7a">SpaceToDepth</a>)</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a427c3d26d05b518b1ace407035f5920e">Splitter</a>)</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a6ef2dcac2ec0683d52df1b051404e7d6">Stack</a>)</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a26c3597a39bf385163bc2cc79d2de4a7">DECLARE_LAYER_POLICY_EXCEPTION_2_PARAM</a>(StandIn)</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#a86d7a7168ac00b75b4971f9aad623698">StridedSlice</a>)</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Subtraction)</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn.xhtml#ad64b7a275169ba1b1ba2d15679f7e8b1">Reduce</a>)</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a>(Switch)</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(<a class="code" href="namespacearmnn_utils.xhtml#a405d5f966ec992d1717711e5a2d7909d">Transpose</a>)</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a>(TransposeConvolution2d)</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<a class="code" href="_is_layer_supported_test_impl_8hpp.xhtml#a50f261c1d954aee96c5e283bec9b3736">DECLARE_LAYER_POLICY_MAP_PARAM</a>(Unmap, <span class="keywordtype">void</span>)</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="comment">// Generic implementation to get the number of input slots for a given layer type;</span></div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type&gt;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetNumInputs(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>&amp; layer)</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;{</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordflow">return</span> layer.<a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>();</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;}</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="comment">// Generic implementation to get the number of output slots for a given layer type;</span></div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type&gt;</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetNumOutputs(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>&amp; layer)</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;{</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <span class="keywordflow">return</span> layer.<a class="code" href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>();</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;}</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetNumInputs&lt;armnn::LayerType::Concat&gt;(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>&amp; layer)</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;{</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(layer);</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    <span class="keywordflow">return</span> 2;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;}</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="comment">// Tests that the IsLayerSupported() function returns the correct value.</span></div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="comment">// We determined the correct value by *trying* to create the relevant workload and seeing if it matches what we expect.</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="comment">// Returns true if expectations are met, otherwise returns false.</span></div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType, armnn::LayerType Type&gt;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTest(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory, Tag&lt;Type&gt;)</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;{</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    <span class="keyword">using</span> LayerPolicy = LayerTypePolicy&lt;Type, DataType&gt;;</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> = <span class="keyword">typename</span> LayerPolicy::Type;</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="keyword">using</span> LayerDesc = <span class="keyword">typename</span> LayerPolicy::Desc;</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    DummyLayer&lt;LayerType, LayerDesc&gt; layer;</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;    <span class="keywordflow">if</span> (LayerPolicy::IsException) <span class="comment">//Don&#39;t test exceptions to the rule.</span></div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    {</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    }</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numIn = GetNumInputs&lt;Type&gt;(*layer.m_Layer);</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numOut = GetNumOutputs&lt;Type&gt;(*layer.m_Layer);</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    <span class="comment">// Make another dummy layer just to make IsLayerSupported have valid inputs.</span></div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    DummyLayer&lt;armnn::ConstantLayer, void&gt; previousLayer;</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    <span class="comment">// Set output of the previous layer to a dummy tensor.</span></div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> output = MakeDummyTensorInfo&lt;DataType&gt;();</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    previousLayer.m_Layer-&gt;GetOutputSlot(0).SetTensorInfo(output);</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    <span class="comment">// Connect all outputs of the previous layer to inputs of tested layer.</span></div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numIn; i++)</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    {</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;        <a class="code" href="classarmnn_1_1_i_output_slot.xhtml">armnn::IOutputSlot</a>&amp; previousLayerOutputSlot = previousLayer.m_Layer-&gt;GetOutputSlot(0);</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        <a class="code" href="classarmnn_1_1_i_input_slot.xhtml">armnn::IInputSlot</a>&amp; layerInputSlot = layer.m_Layer-&gt;GetInputSlot(i);</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        previousLayerOutputSlot.<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">Connect</a>(layerInputSlot);</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    }</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="comment">// Set outputs of tested layer to a dummy tensor.</span></div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numOut; i++)</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    {</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        layer.m_Layer-&gt;GetOutputSlot(0).SetTensorInfo(output);</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    }</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    std::string layerName = LayerPolicy::NameStr;</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    std::string reasonIfUnsupported;</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    <span class="keywordflow">if</span> (FactoryType::IsLayerSupported(*layer.m_Layer, <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>, reasonIfUnsupported))</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    {</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        std::string errorMsg = <span class="stringliteral">&quot; layer expected support but found none.&quot;</span>;</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keywordflow">try</span></div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        {</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;            <span class="keywordtype">bool</span> retVal = LayerPolicy::MakeDummyWorkload(factory, numIn, numOut).get() != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;            BOOST_CHECK_MESSAGE(retVal, layerName &lt;&lt; errorMsg);</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;            <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        }</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a>&amp; e)</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        {</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;            <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(e);</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;            <span class="comment">// This is ok since we throw InvalidArgumentException when creating the dummy workload.</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        }</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        <span class="keywordflow">catch</span>(<span class="keyword">const</span> std::exception&amp; e)</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        {</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;            errorMsg = e.what();</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;            BOOST_TEST_ERROR(layerName &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; errorMsg);</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        }</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        {</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;            errorMsg = <span class="stringliteral">&quot;Unexpected error while testing support for &quot;</span>;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;            BOOST_TEST_ERROR(errorMsg &lt;&lt; layerName);</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        }</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    }</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    {</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        std::string errorMsg = <span class="stringliteral">&quot;layer expected no support (giving reason: &quot;</span> + reasonIfUnsupported + <span class="stringliteral">&quot;) but found some.&quot;</span>;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        <span class="keywordflow">try</span></div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        {</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;            <span class="keywordtype">bool</span> retVal = LayerPolicy::MakeDummyWorkload(factory, numIn, numOut).get() == <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;            BOOST_CHECK_MESSAGE(retVal, layerName &lt;&lt; errorMsg);</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;            <span class="keywordflow">return</span> retVal;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;        }</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        <span class="comment">// These two exceptions are ok: For workloads that are partially supported, attempting to instantiate them</span></div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        <span class="comment">// using parameters that make IsLayerSupported() return false should throw an</span></div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;        <span class="comment">// InvalidArgumentException or UnimplementedException.</span></div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a>&amp; e)</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        {</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;            <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(e);</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        }</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_unimplemented_exception.xhtml">armnn::UnimplementedException</a>&amp; e)</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;        {</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;            <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(e);</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        }</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        <span class="keywordflow">catch</span>(<span class="keyword">const</span> std::exception&amp; e)</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        {</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;            errorMsg = e.what();</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;            BOOST_TEST_ERROR(layerName &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; errorMsg);</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        }</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        {</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;            errorMsg = <span class="stringliteral">&quot;Unexpected error while testing support for &quot;</span>;</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;            BOOST_TEST_ERROR(errorMsg &lt;&lt; layerName);</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        }</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    }</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;}</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType, armnn::LayerType Type&gt;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTest(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory, Tag&lt;armnn::LayerType::Map&gt;)</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;{</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(factory);</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;}</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType, armnn::LayerType Type&gt;</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTest(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory, Tag&lt;armnn::LayerType::Unmap&gt;)</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;{</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(factory);</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;}</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="comment">// Helper function to compute the next type in the LayerType enum.</span></div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;constexpr <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a> NextType(<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a> type)</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;{</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a><span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(type)+1);</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;}</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;<span class="comment">// Termination function for determining the end of the LayerType enumeration.</span></div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType, armnn::LayerType Type&gt;</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTestsImpl(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory, Tag&lt;armnn::LayerType::LastLayer&gt;)</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;{</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    <span class="keywordflow">return</span> IsLayerSupportedTest&lt;FactoryType, DataType, Type&gt;(factory, Tag&lt;Type&gt;());</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;}</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;<span class="comment">// Recursive function to test and enter in the LayerType enum and then iterate on the next entry.</span></div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType, armnn::LayerType Type&gt;</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTestsImpl(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory, Tag&lt;Type&gt;)</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;{</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <span class="keywordtype">bool</span> v = IsLayerSupportedTest&lt;FactoryType, DataType, Type&gt;(factory, Tag&lt;Type&gt;());</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keywordflow">return</span> v &amp;&amp;</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    IsLayerSupportedTestsImpl&lt;FactoryType, DataType, NextType(Type)&gt;</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;        (factory, Tag&lt;NextType(Type)&gt;());</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;}</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="comment">// Helper function to pass through to the test framework.</span></div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType DataType&gt;</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;<span class="keywordtype">bool</span> IsLayerSupportedTests(<a class="code" href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a> *factory)</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;{</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    <span class="keywordflow">return</span> IsLayerSupportedTestsImpl&lt;FactoryType, DataType&gt;(factory, Tag&lt;armnn::LayerType::FirstLayer&gt;());</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;}</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type&gt;</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;<span class="keywordtype">bool</span> TestLayerTypeMatches()</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;{</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <span class="keyword">using</span> LayerPolicy = LayerTypePolicy&lt;Type, armnn::DataType::Float32&gt;;</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> = <span class="keyword">typename</span> LayerPolicy::Type;</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    <span class="keyword">using</span> LayerDesc = <span class="keyword">typename</span> LayerPolicy::Desc;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    DummyLayer&lt;LayerType, LayerDesc&gt; layer;</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;    std::stringstream ss;</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    ss &lt;&lt; LayerPolicy::NameStr &lt;&lt; <span class="stringliteral">&quot; layer type mismatches expected layer type value.&quot;</span>;</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    <span class="keywordtype">bool</span> v = Type == layer.m_Layer-&gt;GetType();</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    BOOST_CHECK_MESSAGE(v, ss.str());</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="keywordflow">return</span> v;</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;}</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type&gt;</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;<span class="keywordtype">bool</span> LayerTypeMatchesTestImpl(Tag&lt;armnn::LayerType::LastLayer&gt;)</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;{</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <span class="keywordflow">return</span> TestLayerTypeMatches&lt;Type&gt;();</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;}</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;<span class="keyword">template</span>&lt;armnn::LayerType Type&gt;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;<span class="keywordtype">bool</span> LayerTypeMatchesTestImpl(Tag&lt;Type&gt;)</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;{</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    <span class="keywordflow">return</span> TestLayerTypeMatches&lt;Type&gt;() &amp;&amp;</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        LayerTypeMatchesTestImpl&lt;NextType(Type)&gt;(Tag&lt;NextType(Type)&gt;());</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;}</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, <span class="keyword">typename</span> LayerType, armnn::DataType InputDataType , armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;<span class="keywordtype">bool</span> IsConvertLayerSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;{</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&gt;(<span class="stringliteral">&quot;LayerName&quot;</span>);</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(0, <span class="stringliteral">&quot;input&quot;</span>);</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;output&quot;</span>);</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo({1, 3, 2, 3}, InputDataType);</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({1, 3, 2, 3}, OutputDataType);</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    input-&gt;GetOutputSlot(0).Connect(layer-&gt;GetInputSlot(0));</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    input-&gt;GetOutputHandler(0).SetTensorInfo(inputTensorInfo);</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    layer-&gt;GetOutputSlot(0).Connect(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    layer-&gt;GetOutputHandler(0).SetTensorInfo(outputTensorInfo);</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, InputDataType, reasonIfUnsupported);</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;}</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType InputDataType , armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;<span class="keywordtype">bool</span> IsLogicalBinaryLayerSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;{</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    <a class="code" href="structarmnn_1_1_logical_binary_descriptor.xhtml">armnn::LogicalBinaryDescriptor</a> desc(<a class="code" href="namespacearmnn.xhtml#a2da4db0140d1a6dc69c9c82e9ef5379ea74ce78827b02c650a20b149765388247">armnn::LogicalBinaryOperation::LogicalOr</a>);</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input0 = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(0, <span class="stringliteral">&quot;input0&quot;</span>);</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input1 = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(1, <span class="stringliteral">&quot;input1&quot;</span>);</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_logical_binary_layer.xhtml">armnn::LogicalBinaryLayer</a>&gt;(desc, <span class="stringliteral">&quot;logicalOrLayer&quot;</span>);</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;output1&quot;</span>);</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo0({1, 1, 1, 4}, InputDataType);</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo1({1, 1, 1, 4}, InputDataType);</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({1, 1, 1, 4}, OutputDataType);</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    input0-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">Connect</a>(layer-&gt;GetInputSlot(0));</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    input1-&gt;GetOutputSlot(0).Connect(layer-&gt;GetInputSlot(1));</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    input0-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(0).<a class="code" href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">SetTensorInfo</a>(inputTensorInfo0);</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    input1-&gt;GetOutputHandler(0).SetTensorInfo(inputTensorInfo1);</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    layer-&gt;GetOutputSlot(0).Connect(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    layer-&gt;GetOutputHandler(0).SetTensorInfo(outputTensorInfo);</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, InputDataType, reasonIfUnsupported);</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;}</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType InputDataType , armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="keywordtype">bool</span> IsLogicalBinaryLayerBroadcastSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;{</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <a class="code" href="structarmnn_1_1_logical_binary_descriptor.xhtml">armnn::LogicalBinaryDescriptor</a> desc(<a class="code" href="namespacearmnn.xhtml#a2da4db0140d1a6dc69c9c82e9ef5379ea103aa83df42877d5f9baeafdbf620b55">armnn::LogicalBinaryOperation::LogicalAnd</a>);</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input0 = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(0, <span class="stringliteral">&quot;input0&quot;</span>);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input1 = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(1, <span class="stringliteral">&quot;input1&quot;</span>);</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_logical_binary_layer.xhtml">armnn::LogicalBinaryLayer</a>&gt;(desc, <span class="stringliteral">&quot;logicalAndLayer&quot;</span>);</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;output2&quot;</span>);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo0({1, 1, 1, 4}, InputDataType);</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo1({1, 1, 1, 1}, InputDataType);</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({1, 1, 1, 4}, OutputDataType);</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    input0-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">Connect</a>(layer-&gt;GetInputSlot(0));</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    input1-&gt;GetOutputSlot(0).Connect(layer-&gt;GetInputSlot(1));</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    input0-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(0).<a class="code" href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">SetTensorInfo</a>(inputTensorInfo0);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    input1-&gt;GetOutputHandler(0).SetTensorInfo(inputTensorInfo1);</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    layer-&gt;GetOutputSlot(0).Connect(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    layer-&gt;GetOutputHandler(0).SetTensorInfo(outputTensorInfo);</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, InputDataType, reasonIfUnsupported);</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;}</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType InputDataType , armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="keywordtype">bool</span> IsMeanLayerSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;{</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;unsigned&gt; axes = {1, 0};</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    <a class="code" href="structarmnn_1_1_mean_descriptor.xhtml">armnn::MeanDescriptor</a> desc(axes, <span class="keyword">false</span>);</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_mean_layer.xhtml">armnn::MeanLayer</a>&gt;(desc, <span class="stringliteral">&quot;LayerName&quot;</span>);</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(0, <span class="stringliteral">&quot;input&quot;</span>);</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;output&quot;</span>);</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo({4, 3, 2}, InputDataType);</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({2}, OutputDataType);</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    input-&gt;GetOutputSlot(0).Connect(layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(0));</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    input-&gt;GetOutputHandler(0).SetTensorInfo(inputTensorInfo);</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">Connect</a>(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(0).<a class="code" href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">SetTensorInfo</a>(outputTensorInfo);</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, InputDataType, reasonIfUnsupported);</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;}</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="comment">// Tests that IsMeanSupported fails when input tensor dimensions</span></div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">// do not match output tensor dimensions when keepDims == true</span></div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType InputDataType , armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="keywordtype">bool</span> IsMeanLayerNotSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;{</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;unsigned&gt; axes = {};</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="comment">// Set keepDims == true</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <a class="code" href="structarmnn_1_1_mean_descriptor.xhtml">armnn::MeanDescriptor</a> desc(axes, <span class="keyword">true</span>);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_mean_layer.xhtml">armnn::MeanLayer</a>&gt;(desc, <span class="stringliteral">&quot;LayerName&quot;</span>);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> input = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a>&gt;(0, <span class="stringliteral">&quot;input&quot;</span>);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;output&quot;</span>);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <span class="comment">// Mismatching number of tensor dimensions</span></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> inputTensorInfo({1, 1, 1, 1}, InputDataType);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({1, 1}, OutputDataType);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    input-&gt;GetOutputSlot(0).Connect(layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(0));</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    input-&gt;GetOutputHandler(0).SetTensorInfo(inputTensorInfo);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">Connect</a>(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(0).<a class="code" href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">SetTensorInfo</a>(outputTensorInfo);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, InputDataType, reasonIfUnsupported);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;}</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> FactoryType, armnn::DataType OutputDataType&gt;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="keywordtype">bool</span> IsConstantLayerSupportedTests(std::string&amp; reasonIfUnsupported)</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;{</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <a class="code" href="classarmnn_1_1_graph.xhtml">armnn::Graph</a> graph;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> layer = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_constant_layer.xhtml">armnn::ConstantLayer</a>&gt;(<span class="stringliteral">&quot;ConstantLayerName&quot;</span>);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <a class="code" href="classarmnn_1_1_layer.xhtml">armnn::Layer</a>* <span class="keyword">const</span> output = graph.<a class="code" href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">AddLayer</a>&lt;<a class="code" href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a>&gt;(0, <span class="stringliteral">&quot;OutputLayerName&quot;</span>);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;    <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outputTensorInfo({1, 1}, OutputDataType);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">Connect</a>(output-&gt;GetInputSlot(0));</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    layer-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(0).<a class="code" href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">SetTensorInfo</a>(outputTensorInfo);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="keywordtype">bool</span> result = FactoryType::IsLayerSupported(*layer, OutputDataType, reasonIfUnsupported);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;}</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;} <span class="comment">//namespace</span></div><div class="ttc" id="classarmnn_1_1_constant_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_constant_layer.xhtml">armnn::ConstantLayer</a></div><div class="ttdoc">A layer that the constant data can be bound to. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_layer_8hpp_source.xhtml#l00015">ConstantLayer.hpp:15</a></div></div>
<div class="ttc" id="_ignore_unused_8hpp_xhtml"><div class="ttname"><a href="_ignore_unused_8hpp.xhtml">IgnoreUnused.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_splitter_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_splitter_layer.xhtml">armnn::SplitterLayer</a></div><div class="ttdoc">This layer represents a split operation. </div><div class="ttdef"><b>Definition:</b> <a href="_splitter_layer_8hpp_source.xhtml#l00013">SplitterLayer.hpp:13</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a855293b1be0581fb61ef6a1c5b027d0f"><div class="ttname"><a href="namespacearmnn.xhtml#a855293b1be0581fb61ef6a1c5b027d0f">armnn::Dequantize</a></div><div class="ttdeci">float Dequantize(QuantizedType value, float scale, int32_t offset)</div><div class="ttdoc">Dequantize an 8-bit data type into a floating point data type. </div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.xhtml#l00046">TypesUtils.cpp:46</a></div></div>
<div class="ttc" id="classarmnn_1_1_batch_normalization_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_batch_normalization_layer.xhtml">armnn::BatchNormalizationLayer</a></div><div class="ttdoc">This layer represents a batch normalization operation. </div><div class="ttdef"><b>Definition:</b> <a href="_batch_normalization_layer_8hpp_source.xhtml#l00015">BatchNormalizationLayer.hpp:15</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml">armnn::ViewsDescriptor</a></div><div class="ttdoc">A ViewsDescriptor for the SplitterLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00206">Descriptors.hpp:206</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a044ea0cc993d4d1fbe4ec877b17b8d39"><div class="ttname"><a href="namespacearmnn.xhtml#a044ea0cc993d4d1fbe4ec877b17b8d39">armnn::Slice</a></div><div class="ttdeci">void Slice(const TensorInfo &amp;inputInfo, const SliceDescriptor &amp;descriptor, const void *inputData, void *outputData, unsigned int dataTypeSize)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_slice_8cpp_source.xhtml#l00014">Slice.cpp:14</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml_abc0660dc440c8a285b456c9ef6383c26"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">armnn::Layer::GetNumInputSlots</a></div><div class="ttdeci">unsigned int GetNumInputSlots() const override</div><div class="ttdoc">Returns the number of connectable input slots. </div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00313">Layer.hpp:313</a></div></div>
<div class="ttc" id="_workload_factory_8hpp_xhtml"><div class="ttname"><a href="_workload_factory_8hpp.xhtml">WorkloadFactory.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00152">Tensor.hpp:152</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a88bebdfe6309aa2cd6831cfa73c296f0"><div class="ttname"><a href="namespacearmnn.xhtml#a88bebdfe6309aa2cd6831cfa73c296f0">armnn::Fill</a></div><div class="ttdeci">void Fill(Encoder&lt; float &gt; &amp;output, const TensorShape &amp;desiredOutputShape, const float value)</div><div class="ttdoc">Creates a tensor and fills it with a scalar value. </div><div class="ttdef"><b>Definition:</b> <a href="_fill_8cpp_source.xhtml#l00013">Fill.cpp:13</a></div></div>
<div class="ttc" id="classarmnn_1_1_graph_xhtml_a7563c5b899e7d0ada08fd0fdb202f205"><div class="ttname"><a href="classarmnn_1_1_graph.xhtml#a7563c5b899e7d0ada08fd0fdb202f205">armnn::Graph::AddLayer</a></div><div class="ttdeci">LayerT * AddLayer(Args &amp;&amp;... args)</div><div class="ttdoc">Adds a new layer, of type LayerType, to the graph constructed with the arguments passed. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_8hpp_source.xhtml#l00402">Graph.hpp:402</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a2da4db0140d1a6dc69c9c82e9ef5379ea103aa83df42877d5f9baeafdbf620b55"><div class="ttname"><a href="namespacearmnn.xhtml#a2da4db0140d1a6dc69c9c82e9ef5379ea103aa83df42877d5f9baeafdbf620b55">armnn::LogicalBinaryOperation::LogicalAnd</a></div></div>
<div class="ttc" id="_map_workload_8hpp_xhtml"><div class="ttname"><a href="_map_workload_8hpp.xhtml">MapWorkload.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad64b7a275169ba1b1ba2d15679f7e8b1"><div class="ttname"><a href="namespacearmnn.xhtml#ad64b7a275169ba1b1ba2d15679f7e8b1">armnn::Reduce</a></div><div class="ttdeci">void Reduce(const TensorInfo &amp;inputInfo, const TensorInfo &amp;outputInfo, Decoder&lt; float &gt; &amp;input, Encoder&lt; float &gt; &amp;output, const std::vector&lt; uint32_t &gt; axis, const ReduceOperation reduceOperation)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_reduce_8cpp_source.xhtml#l00071">Reduce.cpp:71</a></div></div>
<div class="ttc" id="classarmnn_1_1_output_slot_xhtml_adcfb97035799ea4c043f9ef370714815"><div class="ttname"><a href="classarmnn_1_1_output_slot.xhtml#adcfb97035799ea4c043f9ef370714815">armnn::OutputSlot::Connect</a></div><div class="ttdeci">int Connect(InputSlot &amp;destination)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.xhtml#l00083">Layer.cpp:83</a></div></div>
<div class="ttc" id="classarmnn_1_1_graph_xhtml_a96d76fd10af39fbfabfd0caf0d1439fa"><div class="ttname"><a href="classarmnn_1_1_graph.xhtml#a96d76fd10af39fbfabfd0caf0d1439fa">armnn::Graph::EraseLayer</a></div><div class="ttdeci">void EraseLayer(Iterator pos)</div><div class="ttdoc">Deletes the layer at the specified position. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_8hpp_source.xhtml#l00449">Graph.hpp:449</a></div></div>
<div class="ttc" id="classarmnn_1_1_unimplemented_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_unimplemented_exception.xhtml">armnn::UnimplementedException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00098">Exceptions.hpp:98</a></div></div>
<div class="ttc" id="structarmnn_1_1_logical_binary_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_logical_binary_descriptor.xhtml">armnn::LogicalBinaryDescriptor</a></div><div class="ttdoc">A LogicalBinaryDescriptor for the LogicalBinaryLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01284">Descriptors.hpp:1284</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a></div></div>
<div class="ttc" id="namespacearmnn_utils_xhtml_a405d5f966ec992d1717711e5a2d7909d"><div class="ttname"><a href="namespacearmnn_utils.xhtml#a405d5f966ec992d1717711e5a2d7909d">armnnUtils::Transpose</a></div><div class="ttdeci">void Transpose(const armnn::TensorShape &amp;dstShape, const armnn::PermutationVector &amp;mappings, const void *src, void *dst, size_t dataTypeSize)</div><div class="ttdef"><b>Definition:</b> <a href="armnn_utils_2_transpose_8cpp_source.xhtml#l00120">Transpose.cpp:120</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ab023d9a7687e35c0f108458a094c1f56"><div class="ttname"><a href="namespacearmnn.xhtml#ab023d9a7687e35c0f108458a094c1f56">armnn::DepthToSpace</a></div><div class="ttdeci">void DepthToSpace(const TensorInfo &amp;inputInfo, const DepthToSpaceDescriptor &amp;descriptor, const void *inputData, void *outputData, unsigned int dataTypeSize)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_depth_to_space_8cpp_source.xhtml#l00018">DepthToSpace.cpp:18</a></div></div>
<div class="ttc" id="classarmnn_1_1_detection_post_process_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_detection_post_process_layer.xhtml">armnn::DetectionPostProcessLayer</a></div><div class="ttdoc">This layer represents a detection postprocess operator. </div><div class="ttdef"><b>Definition:</b> <a href="_detection_post_process_layer_8hpp_source.xhtml#l00016">DetectionPostProcessLayer.hpp:16</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad441be836a142e8935e0413f4a22c9ec"><div class="ttname"><a href="namespacearmnn.xhtml#ad441be836a142e8935e0413f4a22c9ec">armnn::ArgMinMax</a></div><div class="ttdeci">void ArgMinMax(Decoder&lt; float &gt; &amp;in, OUT *out, const TensorInfo &amp;inputTensorInfo, const TensorInfo &amp;outputTensorInfo, ArgMinMaxFunction function, int axis)</div><div class="ttdef"><b>Definition:</b> <a href="_arg_min_max_8cpp_source.xhtml#l00016">ArgMinMax.cpp:16</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml"><div class="ttname"><a href="namespacearmnn.xhtml">armnn</a></div><div class="ttdoc">Copyright (c) 2021 ARM Limited and Contributors. </div><div class="ttdef"><b>Definition:</b> <a href="01__00__software__tools_8dox_source.xhtml#l00006">01_00_software_tools.dox:6</a></div></div>
<div class="ttc" id="_is_layer_supported_test_impl_8hpp_xhtml_a22fc459f237f3214c9e5efbada894a28"><div class="ttname"><a href="_is_layer_supported_test_impl_8hpp.xhtml#a22fc459f237f3214c9e5efbada894a28">DECLARE_LAYER_POLICY_CUSTOM_PARAM</a></div><div class="ttdeci">#define DECLARE_LAYER_POLICY_CUSTOM_PARAM(name, descType)</div><div class="ttdef"><b>Definition:</b> <a href="_is_layer_supported_test_impl_8hpp_source.xhtml#l00485">IsLayerSupportedTestImpl.hpp:485</a></div></div>
<div class="ttc" id="classarmnn_1_1_lstm_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_lstm_layer.xhtml">armnn::LstmLayer</a></div><div class="ttdoc">This layer represents a LSTM operation. </div><div class="ttdef"><b>Definition:</b> <a href="_lstm_layer_8hpp_source.xhtml#l00077">LstmLayer.hpp:77</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a44affeeb090c3c6a3062830562672e84"><div class="ttname"><a href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">armnn::IgnoreUnused</a></div><div class="ttdeci">void IgnoreUnused(Ts &amp;&amp;...)</div><div class="ttdef"><b>Definition:</b> <a href="_ignore_unused_8hpp_source.xhtml#l00014">IgnoreUnused.hpp:14</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ab3c0b7e1a78b1b98c24934221f36a7c3"><div class="ttname"><a href="namespacearmnn.xhtml#ab3c0b7e1a78b1b98c24934221f36a7c3">armnn::FakeQuantization</a></div><div class="ttdeci">void FakeQuantization(const float *inputData, float *outputData, uint32_t numElements, float min, float max)</div><div class="ttdef"><b>Definition:</b> <a href="_ref_fake_quantization_float32_workload_8cpp_source.xhtml#l00017">RefFakeQuantizationFloat32Workload.cpp:17</a></div></div>
<div class="ttc" id="_unmap_workload_8hpp_xhtml"><div class="ttname"><a href="_unmap_workload_8hpp.xhtml">UnmapWorkload.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml_a1594bddc87d6477df300317658f566bb"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">armnn::Layer::GetNumOutputSlots</a></div><div class="ttdeci">unsigned int GetNumOutputSlots() const override</div><div class="ttdoc">Returns the number of connectable output slots. </div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00314">Layer.hpp:314</a></div></div>
<div class="ttc" id="structarmnn_1_1_batch_to_space_nd_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_batch_to_space_nd_descriptor.xhtml">armnn::BatchToSpaceNdDescriptor</a></div><div class="ttdoc">A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00673">Descriptors.hpp:673</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a5739b990434e95ee13ff6d99824ffaf3"><div class="ttname"><a href="namespacearmnn.xhtml#a5739b990434e95ee13ff6d99824ffaf3">armnn::FullyConnected</a></div><div class="ttdeci">void FullyConnected(const TensorShape &amp;rInputShape, Decoder&lt; float &gt; &amp;rInputDecoder, const TensorShape &amp;rOutputShape, Encoder&lt; float &gt; &amp;rOutputEncoder, const TensorShape &amp;rWeightsShape, Decoder&lt; float &gt; &amp;rWeightDecoder, Decoder&lt; float &gt; &amp;rBiasDecoder, const bool biasEnabled, const unsigned int K, const bool transposeWeights)</div><div class="ttdoc">Performs a matrix multiplication and optionally adds a bias. </div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_fully_connected_8cpp_source.xhtml#l00013">FullyConnected.cpp:13</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ab8cf8f9fb6792e654c2d8d8382f6f01b"><div class="ttname"><a href="namespacearmnn.xhtml#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a></div><div class="ttdeci">int LayerBindingId</div><div class="ttdoc">Type of identifiers for bindable layers (inputs, outputs). </div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00210">Types.hpp:210</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a6ef2dcac2ec0683d52df1b051404e7d6"><div class="ttname"><a href="namespacearmnn.xhtml#a6ef2dcac2ec0683d52df1b051404e7d6">armnn::Stack</a></div><div class="ttdeci">void Stack(const StackQueueDescriptor &amp;data, std::vector&lt; std::unique_ptr&lt; Decoder&lt; float &gt;&gt;&gt; &amp;inputs, Encoder&lt; float &gt; &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_stack_8cpp_source.xhtml#l00012">Stack.cpp:12</a></div></div>
<div class="ttc" id="classarmnn_1_1_map_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_map_layer.xhtml">armnn::MapLayer</a></div><div class="ttdoc">This layer represents a memory copy operation. </div><div class="ttdef"><b>Definition:</b> <a href="_map_layer_8hpp_source.xhtml#l00013">MapLayer.hpp:13</a></div></div>
<div class="ttc" id="classarmnn_1_1_unmap_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_unmap_layer.xhtml">armnn::UnmapLayer</a></div><div class="ttdoc">This layer represents a memory copy operation. </div><div class="ttdef"><b>Definition:</b> <a href="_unmap_layer_8hpp_source.xhtml#l00013">UnmapLayer.hpp:13</a></div></div>
<div class="ttc" id="namespacearmnn_utils_xhtml_af3c74017185773dd61d8ca6662d65d43"><div class="ttname"><a href="namespacearmnn_utils.xhtml#af3c74017185773dd61d8ca6662d65d43">armnnUtils::Permute</a></div><div class="ttdeci">void Permute(const armnn::TensorShape &amp;dstShape, const armnn::PermutationVector &amp;mappings, const void *src, void *dst, size_t dataTypeSize)</div><div class="ttdef"><b>Definition:</b> <a href="_permute_8cpp_source.xhtml#l00131">Permute.cpp:131</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml_acf8b8e23bf647836592982f97088d375"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">armnn::Layer::GetInputSlot</a></div><div class="ttdeci">const InputSlot &amp; GetInputSlot(unsigned int index) const override</div><div class="ttdoc">Get a const input slot handle by slot index. </div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00316">Layer.hpp:316</a></div></div>
<div class="ttc" id="structarmnn_1_1_workload_info_xhtml_ac97905bfa0daab357b91df1347600309"><div class="ttname"><a href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">armnn::WorkloadInfo::m_InputTensorInfos</a></div><div class="ttdeci">std::vector&lt; TensorInfo &gt; m_InputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00018">WorkloadInfo.hpp:18</a></div></div>
<div class="ttc" id="classarmnn_1_1_logical_binary_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_logical_binary_layer.xhtml">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.xhtml#l00014">LogicalBinaryLayer.hpp:14</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae76ce23fa9fc18e56448d52b37dd3f32"><div class="ttname"><a href="namespacearmnn.xhtml#ae76ce23fa9fc18e56448d52b37dd3f32">armnn::DetectionPostProcess</a></div><div class="ttdeci">void DetectionPostProcess(const TensorInfo &amp;boxEncodingsInfo, const TensorInfo &amp;scoresInfo, const TensorInfo &amp;anchorsInfo, const TensorInfo &amp;detectionBoxesInfo, const TensorInfo &amp;detectionClassesInfo, const TensorInfo &amp;detectionScoresInfo, const TensorInfo &amp;numDetectionsInfo, const DetectionPostProcessDescriptor &amp;desc, Decoder&lt; float &gt; &amp;boxEncodings, Decoder&lt; float &gt; &amp;scores, Decoder&lt; float &gt; &amp;anchors, float *detectionBoxes, float *detectionClasses, float *detectionScores, float *numDetections)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_detection_post_process_8cpp_source.xhtml#l00140">DetectionPostProcess.cpp:140</a></div></div>
<div class="ttc" id="classarmnn_1_1_output_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_output_layer.xhtml">armnn::OutputLayer</a></div><div class="ttdoc">A layer user-provided data can be bound to (e.g. inputs, outputs). </div><div class="ttdef"><b>Definition:</b> <a href="_output_layer_8hpp_source.xhtml#l00013">OutputLayer.hpp:13</a></div></div>
<div class="ttc" id="_subgraph_view_selector_8cpp_xhtml_ae7fc37b88ff10e9294ed1c72f2a25ac7"><div class="ttname"><a href="_subgraph_view_selector_8cpp.xhtml#ae7fc37b88ff10e9294ed1c72f2a25ac7">m_Layer</a></div><div class="ttdeci">Layer * m_Layer</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_selector_8cpp_source.xhtml#l00243">SubgraphViewSelector.cpp:243</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">armnn::DataType</a></div><div class="ttdeci">DataType</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00032">Types.hpp:32</a></div></div>
<div class="ttc" id="classarmnn_1_1_fully_connected_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_fully_connected_layer.xhtml">armnn::FullyConnectedLayer</a></div><div class="ttdoc">This layer represents a fully connected operation. </div><div class="ttdef"><b>Definition:</b> <a href="_fully_connected_layer_8hpp_source.xhtml#l00015">FullyConnectedLayer.hpp:15</a></div></div>
<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml">armnn::LstmDescriptor</a></div><div class="ttdoc">An LstmDescriptor for the LstmLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00911">Descriptors.hpp:911</a></div></div>
<div class="ttc" id="classarmnn_1_1_quantized_lstm_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_quantized_lstm_layer.xhtml">armnn::QuantizedLstmLayer</a></div><div class="ttdoc">This layer represents a QuantizedLstm operation. </div><div class="ttdef"><b>Definition:</b> <a href="_quantized_lstm_layer_8hpp_source.xhtml#l00045">QuantizedLstmLayer.hpp:45</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml">armnn::IOutputSlot</a></div><div class="ttdoc">An output connection slot for a layer. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00038">INetwork.hpp:38</a></div></div>
<div class="ttc" id="_graph_8hpp_xhtml"><div class="ttname"><a href="_graph_8hpp.xhtml">Graph.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a38c9c1724b660b2558a19895b681a8fb"><div class="ttname"><a href="namespacearmnn.xhtml#a38c9c1724b660b2558a19895b681a8fb">armnn::Gather</a></div><div class="ttdeci">void Gather(const TensorInfo &amp;paramsInfo, const TensorInfo &amp;indicesInfo, const TensorInfo &amp;outputInfo, Decoder&lt; float &gt; &amp;params, const int32_t *indices, Encoder&lt; float &gt; &amp;output, const int32_t axis)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_gather_8cpp_source.xhtml#l00017">Gather.cpp:17</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml">armnn::OriginsDescriptor</a></div><div class="ttdoc">An OriginsDescriptor for the ConcatLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00163">Descriptors.hpp:163</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::DataType::QAsymmU8</a></div></div>
<div class="ttc" id="_is_layer_supported_test_impl_8hpp_xhtml_a26c3597a39bf385163bc2cc79d2de4a7"><div class="ttname"><a href="_is_layer_supported_test_impl_8hpp.xhtml#a26c3597a39bf385163bc2cc79d2de4a7">DECLARE_LAYER_POLICY_EXCEPTION_2_PARAM</a></div><div class="ttdeci">#define DECLARE_LAYER_POLICY_EXCEPTION_2_PARAM(name)</div><div class="ttdef"><b>Definition:</b> <a href="_is_layer_supported_test_impl_8hpp_source.xhtml#l00552">IsLayerSupportedTestImpl.hpp:552</a></div></div>
<div class="ttc" id="structarmnn_1_1_fully_connected_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_fully_connected_descriptor.xhtml">armnn::FullyConnectedDescriptor</a></div><div class="ttdoc">A FullyConnectedDescriptor for the FullyConnectedLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00389">Descriptors.hpp:389</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a5aae369ef847a00062925cea8e9be9c4"><div class="ttname"><a href="namespacearmnn.xhtml#a5aae369ef847a00062925cea8e9be9c4">armnn::Debug</a></div><div class="ttdeci">void Debug(const TensorInfo &amp;inputInfo, const T *inputData, LayerGuid guid, const std::string &amp;layerName, unsigned int slotIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_debug_8cpp_source.xhtml#l00018">Debug.cpp:18</a></div></div>
<div class="ttc" id="classarmnn_1_1_concat_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_concat_layer.xhtml">armnn::ConcatLayer</a></div><div class="ttdoc">This layer represents a merge operation. </div><div class="ttdef"><b>Definition:</b> <a href="_concat_layer_8hpp_source.xhtml#l00013">ConcatLayer.hpp:13</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a7636fbbc4f8ea2d0cf9f3ac2d12a4c62"><div class="ttname"><a href="namespacearmnn.xhtml#a7636fbbc4f8ea2d0cf9f3ac2d12a4c62">armnn::Activation</a></div><div class="ttdeci">float Activation(float in, ActivationFunction function, float a, float b)</div><div class="ttdef"><b>Definition:</b> <a href="_activation_8cpp_source.xhtml#l00013">Activation.cpp:13</a></div></div>
<div class="ttc" id="classarmnn_1_1_batch_to_space_nd_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_batch_to_space_nd_layer.xhtml">armnn::BatchToSpaceNdLayer</a></div><div class="ttdoc">This layer represents a BatchToSpaceNd operation. </div><div class="ttdef"><b>Definition:</b> <a href="_batch_to_space_nd_layer_8hpp_source.xhtml#l00013">BatchToSpaceNdLayer.hpp:13</a></div></div>
<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml">armnn::QLstmDescriptor</a></div><div class="ttdoc">A QLstmDescriptor for the QLstmLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01153">Descriptors.hpp:1153</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad773a034fb9983e15f3094b4c5c7c30c"><div class="ttname"><a href="namespacearmnn.xhtml#ad773a034fb9983e15f3094b4c5c7c30c">armnn::Quantize</a></div><div class="ttdeci">QuantizedType Quantize(float value, float scale, int32_t offset)</div><div class="ttdoc">Quantize a floating point data type into an 8-bit data type. </div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.xhtml#l00030">TypesUtils.cpp:30</a></div></div>
<div class="ttc" id="structarmnn_1_1_workload_info_xhtml_a67b178f8a836bc1e52b8de109760adfd"><div class="ttname"><a href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">armnn::WorkloadInfo::m_OutputTensorInfos</a></div><div class="ttdeci">std::vector&lt; TensorInfo &gt; m_OutputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00019">WorkloadInfo.hpp:19</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ac52e04c0e349e25bcdaa72c27395ef8f"><div class="ttname"><a href="namespacearmnn.xhtml#ac52e04c0e349e25bcdaa72c27395ef8f">armnn::LogSoftmax</a></div><div class="ttdeci">void LogSoftmax(Decoder&lt; float &gt; &amp;input, Encoder&lt; float &gt; &amp;output, const TensorInfo &amp;inputInfo, const LogSoftmaxDescriptor &amp;descriptor)</div><div class="ttdef"><b>Definition:</b> <a href="_log_softmax_8cpp_source.xhtml#l00029">LogSoftmax.cpp:29</a></div></div>
<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
<div class="ttc" id="classarmnn_1_1_graph_xhtml"><div class="ttname"><a href="classarmnn_1_1_graph.xhtml">armnn::Graph</a></div><div class="ttdef"><b>Definition:</b> <a href="_graph_8hpp_source.xhtml#l00029">Graph.hpp:29</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a4a180e425d4c19b2cdea4ce5760180e1"><div class="ttname"><a href="namespacearmnn.xhtml#a4a180e425d4c19b2cdea4ce5760180e1">armnn::SpaceToBatchNd</a></div><div class="ttdeci">void SpaceToBatchNd(const TensorInfo &amp;inputInfo, const TensorInfo &amp;outputInfo, const SpaceToBatchNdDescriptor &amp;params, Decoder&lt; float &gt; &amp;inputData, Encoder&lt; float &gt; &amp;outputData)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_space_to_batch_n_d_8cpp_source.xhtml#l00034">SpaceToBatchNd.cpp:34</a></div></div>
<div class="ttc" id="_is_layer_supported_test_impl_8hpp_xhtml_a50f261c1d954aee96c5e283bec9b3736"><div class="ttname"><a href="_is_layer_supported_test_impl_8hpp.xhtml#a50f261c1d954aee96c5e283bec9b3736">DECLARE_LAYER_POLICY_MAP_PARAM</a></div><div class="ttdeci">#define DECLARE_LAYER_POLICY_MAP_PARAM(name, descType)</div><div class="ttdef"><b>Definition:</b> <a href="_is_layer_supported_test_impl_8hpp_source.xhtml#l00504">IsLayerSupportedTestImpl.hpp:504</a></div></div>
<div class="ttc" id="_is_layer_supported_test_impl_8hpp_xhtml_a3c90603b8bd4980b6f211b07f710454a"><div class="ttname"><a href="_is_layer_supported_test_impl_8hpp.xhtml#a3c90603b8bd4980b6f211b07f710454a">DECLARE_LAYER_POLICY_1_PARAM</a></div><div class="ttdeci">#define DECLARE_LAYER_POLICY_1_PARAM(name)</div><div class="ttdef"><b>Definition:</b> <a href="_is_layer_supported_test_impl_8hpp_source.xhtml#l00527">IsLayerSupportedTestImpl.hpp:527</a></div></div>
<div class="ttc" id="classarmnn_1_1_output_handler_xhtml_a97db12c41024f5545ef5cc4153e5443b"><div class="ttname"><a href="classarmnn_1_1_output_handler.xhtml#a97db12c41024f5545ef5cc4153e5443b">armnn::OutputHandler::SetTensorInfo</a></div><div class="ttdeci">void SetTensorInfo(const TensorInfo &amp;tensorInfo)</div><div class="ttdoc">Sets the TensorInfo used by this output handler. </div><div class="ttdef"><b>Definition:</b> <a href="_output_handler_8cpp_source.xhtml#l00015">OutputHandler.cpp:15</a></div></div>
<div class="ttc" id="classarmnn_1_1_q_lstm_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_q_lstm_layer.xhtml">armnn::QLstmLayer</a></div><div class="ttdoc">This layer represents a QLstm operation. </div><div class="ttdef"><b>Definition:</b> <a href="_q_lstm_layer_8hpp_source.xhtml#l00079">QLstmLayer.hpp:79</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a86d7a7168ac00b75b4971f9aad623698"><div class="ttname"><a href="namespacearmnn.xhtml#a86d7a7168ac00b75b4971f9aad623698">armnn::StridedSlice</a></div><div class="ttdeci">void StridedSlice(const TensorInfo &amp;inputInfo, const StridedSliceDescriptor &amp;params, const void *inputData, void *outputData, unsigned int dataTypeSize)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_strided_slice_8cpp_source.xhtml#l00090">StridedSlice.cpp:90</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml_af2c0edc7ea62a8baaec4d3d9b2b09256"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">armnn::Layer::GetOutputHandler</a></div><div class="ttdeci">const OutputHandler &amp; GetOutputHandler(unsigned int i=0) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00225">Layer.hpp:225</a></div></div>
<div class="ttc" id="_cl_layer_tests_8cpp_xhtml_a255d08081b372809a176b588529296aa"><div class="ttname"><a href="_cl_layer_tests_8cpp.xhtml#a255d08081b372809a176b588529296aa">FactoryType</a></div><div class="ttdeci">ClWorkloadFactory FactoryType</div><div class="ttdef"><b>Definition:</b> <a href="_cl_layer_tests_8cpp_source.xhtml#l00031">ClLayerTests.cpp:31</a></div></div>
<div class="ttc" id="classarmnn_1_1_input_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_input_layer.xhtml">armnn::InputLayer</a></div><div class="ttdoc">A layer user-provided data can be bound to (e.g. inputs, outputs). </div><div class="ttdef"><b>Definition:</b> <a href="_input_layer_8hpp_source.xhtml#l00013">InputLayer.hpp:13</a></div></div>
<div class="ttc" id="structarmnn_1_1_mean_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_mean_descriptor.xhtml">armnn::MeanDescriptor</a></div><div class="ttdoc">A MeanDescriptor for the MeanLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00951">Descriptors.hpp:951</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml_a0e36688a43c35668d8db5257274c68fe"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">armnn::Layer::GetOutputSlot</a></div><div class="ttdeci">const OutputSlot &amp; GetOutputSlot(unsigned int index=0) const override</div><div class="ttdoc">Get the const output slot handle by slot index. </div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00318">Layer.hpp:318</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div></div>
<div class="ttc" id="structarmnn_1_1_workload_info_xhtml"><div class="ttname"><a href="structarmnn_1_1_workload_info.xhtml">armnn::WorkloadInfo</a></div><div class="ttdoc">Contains information about inputs and outputs to a layer. </div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00016">WorkloadInfo.hpp:16</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a5e1dc69443b64ad16b669388a6023f7a"><div class="ttname"><a href="namespacearmnn.xhtml#a5e1dc69443b64ad16b669388a6023f7a">armnn::SpaceToDepth</a></div><div class="ttdeci">void SpaceToDepth(const TensorInfo &amp;inputInfo, const TensorInfo &amp;outputInfo, const SpaceToDepthDescriptor &amp;params, Decoder&lt; float &gt; &amp;inputData, Encoder&lt; float &gt; &amp;outputData)</div><div class="ttdef"><b>Definition:</b> <a href="_space_to_depth_8cpp_source.xhtml#l00036">SpaceToDepth.cpp:36</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a></div></div>
<div class="ttc" id="_is_layer_supported_test_impl_8hpp_xhtml_a6f1733a5293675a821587ff5b022246d"><div class="ttname"><a href="_is_layer_supported_test_impl_8hpp.xhtml#a6f1733a5293675a821587ff5b022246d">DECLARE_LAYER_POLICY_2_PARAM</a></div><div class="ttdeci">#define DECLARE_LAYER_POLICY_2_PARAM(name)</div><div class="ttdef"><b>Definition:</b> <a href="_is_layer_supported_test_impl_8hpp_source.xhtml#l00531">IsLayerSupportedTestImpl.hpp:531</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a2da4db0140d1a6dc69c9c82e9ef5379ea74ce78827b02c650a20b149765388247"><div class="ttname"><a href="namespacearmnn.xhtml#a2da4db0140d1a6dc69c9c82e9ef5379ea74ce78827b02c650a20b149765388247">armnn::LogicalBinaryOperation::LogicalOr</a></div></div>
<div class="ttc" id="classarmnn_1_1_mean_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_mean_layer.xhtml">armnn::MeanLayer</a></div><div class="ttdoc">This layer represents a mean operation. </div><div class="ttdef"><b>Definition:</b> <a href="_mean_layer_8hpp_source.xhtml#l00014">MeanLayer.hpp:14</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a8746512fab5ec10c2c57800c66311ba7"><div class="ttname"><a href="namespacearmnn.xhtml#a8746512fab5ec10c2c57800c66311ba7">armnn::BatchToSpaceNd</a></div><div class="ttdeci">void BatchToSpaceNd(const DataLayoutIndexed &amp;dataLayout, const TensorInfo &amp;inputTensorInfo, const TensorInfo &amp;outputTensorInfo, const std::vector&lt; unsigned int &gt; &amp;blockShape, const std::vector&lt; std::pair&lt; unsigned int, unsigned int &gt;&gt; &amp;cropsData, Decoder&lt; float &gt; &amp;inputDecoder, Encoder&lt; float &gt; &amp;outputEncoder)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_batch_to_space_n_d_8cpp_source.xhtml#l00035">BatchToSpaceNd.cpp:35</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a3ed2cc8da6282c1c8aa19b62d67ac34e"><div class="ttname"><a href="namespacearmnn.xhtml#a3ed2cc8da6282c1c8aa19b62d67ac34e">armnn::Pad</a></div><div class="ttdeci">void Pad(const TensorInfo &amp;inputInfo, const TensorInfo &amp;outputInfo, const PadQueueDescriptor &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_pad_8cpp_source.xhtml#l00039">Pad.cpp:39</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_ac1835f8756a9f03c02fcf9664e3a0fce"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#ac1835f8756a9f03c02fcf9664e3a0fce">armnn::IOutputSlot::Connect</a></div><div class="ttdeci">virtual int Connect(IInputSlot &amp;destination)=0</div></div>
<div class="ttc" id="namespacearmnn_xhtml_ae2e93e304cf516841c521e3eaee025cd"><div class="ttname"><a href="namespacearmnn.xhtml#ae2e93e304cf516841c521e3eaee025cd">armnn::Pooling2d</a></div><div class="ttdeci">void Pooling2d(Decoder&lt; float &gt; &amp;rInputDecoder, Encoder&lt; float &gt; &amp;rOutputEncoder, const TensorInfo &amp;inputInfo, const TensorInfo &amp;outputInfo, const Pooling2dDescriptor &amp;params)</div><div class="ttdoc">Computes the Pooling2d operation. </div><div class="ttdef"><b>Definition:</b> <a href="_pooling2d_8cpp_source.xhtml#l00142">Pooling2d.cpp:142</a></div></div>
<div class="ttc" id="structarmnn_1_1_detection_post_process_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_detection_post_process_descriptor.xhtml">armnn::DetectionPostProcessDescriptor</a></div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00511">Descriptors.hpp:511</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a427c3d26d05b518b1ace407035f5920e"><div class="ttname"><a href="namespacearmnn.xhtml#a427c3d26d05b518b1ace407035f5920e">armnn::Splitter</a></div><div class="ttdeci">void Splitter(const SplitterQueueDescriptor &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="_splitter_8hpp_source.xhtml#l00017">Splitter.hpp:17</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_aa999ff2585ad75b95954a9323f63c32b"><div class="ttname"><a href="namespacearmnn.xhtml#aa999ff2585ad75b95954a9323f63c32b">armnn::Softmax</a></div><div class="ttdeci">void Softmax(Decoder&lt; float &gt; &amp;in, Encoder&lt; float &gt; &amp;out, const TensorInfo &amp;inputTensorInfo, float beta, int axis)</div><div class="ttdoc">Computes the softmax function on some inputs, into outputs, with a shape given by tensorInfo...</div><div class="ttdef"><b>Definition:</b> <a href="backends_2reference_2workloads_2_softmax_8cpp_source.xhtml#l00017">Softmax.cpp:17</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_input_slot_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_input_slot.xhtml">armnn::IInputSlot</a></div><div class="ttdoc">An input connection slot for a layer. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00025">INetwork.hpp:25</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a6894316aa645fd5e837739135bef04bb"><div class="ttname"><a href="namespacearmnn.xhtml#a6894316aa645fd5e837739135bef04bb">armnn::Resize</a></div><div class="ttdeci">void Resize(Decoder&lt; float &gt; &amp;in, const TensorInfo &amp;inputInfo, Encoder&lt; float &gt; &amp;out, const TensorInfo &amp;outputInfo, DataLayoutIndexed dataLayout, armnn::ResizeMethod resizeMethod, bool alignCorners, bool halfPixelCenters)</div><div class="ttdef"><b>Definition:</b> <a href="_resize_8cpp_source.xhtml#l00065">Resize.cpp:65</a></div></div>
<div class="ttc" id="classarmnn_1_1_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml">armnn::Layer</a></div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00210">Layer.hpp:210</a></div></div>
<div class="ttc" id="structarmnn_1_1_batch_normalization_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_batch_normalization_descriptor.xhtml">armnn::BatchNormalizationDescriptor</a></div><div class="ttdoc">A BatchNormalizationDescriptor for the BatchNormalizationLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00626">Descriptors.hpp:626</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56943a0946e5f15e5e58054b8e7a04a4"><div class="ttname"><a href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a></div><div class="ttdeci">LayerType</div><div class="ttdoc">When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00419">Types.hpp:419</a></div></div>
</div><!-- fragment --></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="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_0f3cdec46afbc61a1ded8e1687c9c9a0.xhtml">backends</a></li><li class="navelem"><a class="el" href="dir_797a213d7d01b98ef12d53b0820ea64e.xhtml">backendsCommon</a></li><li class="navelem"><a class="el" href="dir_28bfe507f7e135bdae07c2a6b7f66696.xhtml">test</a></li><li class="navelem"><a class="el" href="_is_layer_supported_test_impl_8hpp.xhtml">IsLayerSupportedTestImpl.hpp</a></li>
    <li class="footer">Generated on Thu Feb 25 2021 17:27:51 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>